From 8e81943cf9f3c048d3e9ffe948c2a8b52c0b3ab6 Mon Sep 17 00:00:00 2001 From: ooks-io Date: Wed, 23 Oct 2024 23:46:25 +1300 Subject: [PATCH] refactor: complete rewrite --- README.md | 4 - flake.lock | 1586 +++-------------- flake.nix | 129 +- home/modules/appearance/qt.nix | 26 - home/modules/base/mime-apps.nix | 6 - home/modules/console/default.nix | 8 - home/modules/console/editor/helix/default.nix | 72 - .../console/editor/helix/languages.nix | 135 -- home/modules/console/multiplexer/default.nix | 7 - .../console/multiplexer/tmux/default.nix | 66 - home/modules/console/shell/default.nix | 7 - home/modules/console/shell/fish/aliases.nix | 31 - home/modules/console/shell/fish/binds.nix | 22 - home/modules/console/shell/fish/plugins.nix | 30 - home/modules/console/shell/zsh/plugins.nix | 26 - home/modules/console/tools/bat.nix | 24 - home/modules/console/tools/sourcegraph.nix | 13 - home/modules/console/tools/utils.nix | 54 - home/modules/default.nix | 8 - .../desktop/browser/chrome/default.nix | 0 home/modules/desktop/browser/default.nix | 7 - .../browser/firefox/settings/narsilUserjs.nix | 1047 ----------- .../browser/firefox/theme/penguinFox.nix | 181 -- .../desktop/communication/discord/vesktop.nix | 176 -- home/modules/desktop/creative/audacity.nix | 13 - home/modules/desktop/creative/inkscape.nix | 13 - home/modules/desktop/file-manager/nemo.nix | 27 - home/modules/desktop/gaming/bottles.nix | 15 - home/modules/desktop/gaming/default.nix | 8 - home/modules/desktop/gaming/factorio.nix | 12 - home/modules/desktop/gaming/lutris.nix | 23 - home/modules/desktop/gaming/wine.nix | 19 - home/modules/desktop/media/default.nix | 7 - home/modules/desktop/media/music/default.nix | 6 - home/modules/desktop/media/video/default.nix | 7 - .../desktop/media/video/jellyfin-player.nix | 13 - home/modules/desktop/media/video/youtube.nix | 16 - home/modules/desktop/productivity/default.nix | 7 - .../desktop/productivity/notes/obsidian.nix | 34 - .../desktop/productivity/office/default.nix | 6 - .../productivity/office/libreoffice.nix | 14 - .../desktop/productivity/pdf/default.nix | 5 - home/modules/desktop/security/polkit.nix | 48 - home/modules/desktop/terminal/kitty.nix | 74 - home/modules/desktop/tools/ookpower.nix | 15 - home/modules/desktop/tools/zellijMenu.nix | 239 --- home/modules/desktop/wayland/bar/default.nix | 19 - .../wayland/compositor/hyprland/default.nix | 32 - .../compositor/hyprland/extras/default.nix | 6 - .../hyprland/extras/hyprcapture.nix | 35 - .../compositor/hyprland/extras/hyprshade.nix | 14 - .../hyprland/settings/appearance.nix | 55 - .../compositor/hyprland/settings/binds.nix | 122 -- .../compositor/hyprland/settings/env.nix | 15 - .../compositor/hyprland/settings/exec.nix | 22 - .../compositor/hyprland/settings/gestures.nix | 15 - .../compositor/hyprland/settings/inputs.nix | 17 - .../compositor/hyprland/settings/misc.nix | 22 - .../compositor/hyprland/settings/monitor.nix | 34 - .../compositor/hyprland/settings/rules.nix | 33 - home/modules/desktop/wayland/default.nix | 11 - .../desktop/wayland/launcher/default.nix | 6 - .../modules/desktop/wayland/launcher/tofi.nix | 46 - .../desktop/wayland/lockscreen/default.nix | 6 - .../desktop/wayland/lockscreen/swaylock.nix | 41 - .../desktop/wayland/notification/default.nix | 5 - .../desktop/wayland/utility/default.nix | 6 - .../modules/desktop/wayland/utility/tools.nix | 29 - home/options/appearance/default.nix | 6 - home/options/appearance/gtk.nix | 5 - home/options/appearance/qt.nix | 5 - home/options/console/default.nix | 8 - home/options/console/editor.nix | 8 - home/options/console/multiplexer.nix | 8 - home/options/console/shell.nix | 9 - home/options/console/tools.nix | 18 - home/options/default.nix | 8 - home/options/desktop/browser.nix | 8 - home/options/desktop/communication.nix | 7 - home/options/desktop/creative.nix | 8 - home/options/desktop/default.nix | 16 - home/options/desktop/fileManager.nix | 7 - home/options/desktop/gaming.nix | 10 - home/options/desktop/media.nix | 17 - home/options/desktop/productivity.nix | 15 - home/options/desktop/security.nix | 10 - home/options/desktop/terminal.nix | 8 - home/options/desktop/tools.nix | 7 - home/options/desktop/wayland.nix | 27 - home/options/profiles/console.nix | 19 - home/options/profiles/default.nix | 6 - home/options/profiles/desktop.nix | 46 - home/profiles/default.nix | 7 - .../profiles/desktop-environments/default.nix | 5 - .../desktop-environments/hyprland.nix | 20 - home/profiles/suites/creative.nix | 16 - home/profiles/suites/default.nix | 9 - home/profiles/suites/media.nix | 25 - home/profiles/suites/productivity.nix | 17 - home/profiles/themes/default.nix | 5 - home/profiles/themes/minimal.nix | 43 - home/profiles/themes/phone.nix | 29 - home/roles/default.nix | 7 - home/roles/ooks-desktop-workstation.nix | 26 - home/roles/ooks-laptop-workstation.nix | 26 - home/roles/ooks-micro-workstation.nix | 23 - home/roles/ooks-vm-server.nix | 17 - home/user/ooks/ooksdesk/default.nix | 11 - home/user/ooks/ooksmedia/default.nix | 24 - home/user/ooks/ooksmicro/default.nix | 22 - home/user/ooks/ooksphone/default.nix | 62 - home/user/ooks/ookst480s/default.nix | 19 - hosts/default.nix | 10 + hosts/ooknode/default.nix | 42 - hosts/ooknode/hardware-configuration.nix | 64 - hosts/ooksdesk/default.nix | 59 +- hosts/ooksdesk/file-system.nix | 34 + hosts/ooksdesk/hardware-configuration.nix | 61 - hosts/ooksdesk/hardware.nix | 18 + hosts/ooksmedia/default.nix | 54 - hosts/ooksmedia/hardware-configuration.nix | 59 - hosts/ooksmedia/modules/default.nix | 5 - hosts/ooksmedia/modules/nixarr.nix | 32 - hosts/ooksmicro/default.nix | 68 - hosts/ooksmicro/hardware-configuration.nix | 56 - hosts/ooksphone/default.nix | 46 - hosts/ooksphone/modules/default.nix | 6 - hosts/ooksphone/modules/openssh.nix | 6 - hosts/ooksphone/modules/theme.nix | 39 - hosts/ookst480s/default.nix | 58 +- ...ware-configuration.nix => file-system.nix} | 1 - .../default.nix => hosts/ookst480s/host.nix | 0 hosts/ookst480s/workstation.nix | 12 + hosts/ooksx1/default.nix | 60 - hosts/ooksx1/hardware-configuration.nix | 66 - .../modules => modules/home}/base/default.nix | 3 +- .../home}/base/home-manager.nix | 3 - .../home/base/userDirs.nix | 0 modules/home/console/default.nix | 6 + .../home}/console/shell/bash/default.nix | 3 +- .../home/console}/shell/default.nix | 2 +- modules/home/console/shell/fish/aliases.nix | 24 + modules/home/console/shell/fish/binds.nix | 10 + .../home}/console/shell/fish/default.nix | 11 +- modules/home/console/shell/fish/plugins.nix | 18 + .../home}/console/shell/zsh/default.nix | 7 +- modules/home/console/shell/zsh/plugins.nix | 14 + modules/home/console/tools/bat.nix | 29 + .../home}/console/tools/btop.nix | 4 +- .../home}/console/tools/default.nix | 16 +- .../home}/console/tools/direnv.nix | 4 +- .../home/console/tools/editor}/default.nix | 2 +- .../home/console/tools/editor/neovim.nix | 14 +- .../home}/console/tools/eza.nix | 6 +- .../home}/console/tools/ffmpeg.nix | 5 +- .../home}/console/tools/fzf.nix | 3 +- .../home}/console/tools/git.nix | 11 +- .../console/tools/multiplexer}/default.nix | 2 +- .../tools}/multiplexer/zellij/default.nix | 7 +- .../zellij/layouts/defaultLayout.nix | 1 - .../zellij/layouts/flakeLayout.nix | 0 .../zellij/layouts/scriptLayout.nix | 0 .../home}/console/tools/nixIndex.nix | 4 +- .../home}/console/tools/ssh.nix | 3 +- .../home}/console/tools/starship.nix | 4 +- modules/home/console/tools/utils.nix | 63 + modules/home/default.nix | 8 + .../home/workstation}/appearance/cursor.nix | 0 .../home/workstation}/appearance/default.nix | 4 +- .../home/workstation}/appearance/fonts.nix | 0 .../home/workstation}/appearance/gtk.nix | 3 - .../home/workstation}/appearance/gtkCss.nix | 0 modules/home/workstation/appearance/qt.nix | 16 + .../home/workstation}/binds.nix | 0 .../home/workstation/browser}/default.nix | 2 +- .../workstation}/browser/firefox/default.nix | 13 +- .../browser/firefox/settings/ooksJs.nix | 0 .../browser/firefox/theme/ooksfox.nix | 0 .../firefox/theme/penguinFoxContent.nix | 0 .../browser/firefox/tridactyl.nix | 7 +- .../workstation/communication}/default.nix | 2 +- .../communication/vesktop/default.nix | 171 ++ .../vesktop}/vesktop-patch.patch | 0 .../home/workstation}/creative/default.nix | 1 - .../home/workstation/creative/inkscape.nix | 13 + .../home/workstation}/default.nix | 16 +- modules/home/workstation/gaming/bottles.nix | 19 + .../home/workstation/gaming/default.nix | 16 +- modules/home/workstation/gaming/wine.nix | 22 + modules/home/workstation/gaming/wow.nix | 19 + .../hyprland/components/default.nix | 13 + .../hyprland/components}/gammastep.nix | 12 +- .../hyprland/components/hypridle.nix | 31 + .../hyprland/components}/hyprlock.nix | 11 +- .../hyprland/components}/hyprpaper.nix | 5 +- .../workstation/hyprland/components}/mako.nix | 11 +- .../hyprland/components/polkit.nix | 31 + .../workstation/hyprland/components}/rofi.nix | 4 +- .../workstation/hyprland/components/tools.nix | 33 + .../hyprland/components/waybar.nix | 9 +- .../home/workstation/hyprland/default.nix | 26 +- .../hyprland/settings/appearance.nix | 46 + .../workstation/hyprland/settings/binds.nix | 114 ++ .../hyprland/settings/default.nix | 10 +- .../workstation/hyprland/settings/exec.nix | 12 + .../hyprland/settings/gestures.nix | 6 + .../workstation/hyprland/settings/input.nix | 8 + .../workstation/hyprland/settings/misc.nix | 15 + .../workstation/hyprland/settings/monitor.nix | 30 + .../workstation/hyprland/settings/rules.nix | 24 + modules/home/workstation/media/default.nix | 7 + .../home/workstation/media/image.nix | 8 +- .../home/workstation/media/music.nix | 130 +- .../home/workstation/media/video.nix | 10 +- .../workstation/productivity}/default.nix | 1 + .../workstation/productivity/obsidian.nix | 30 + .../workstation/productivity}/zathura.nix | 16 +- .../home/workstation}/terminal/default.nix | 1 - .../home/workstation}/terminal/foot.nix | 9 +- .../home/workstation}/tools/1password.nix | 2 +- .../home/workstation}/tools/default.nix | 9 +- .../home/workstation}/tools/kdeconnect.nix | 2 +- .../home/workstation}/tools/ookbrightness.nix | 2 +- modules/home/workstation/tools/ookpower.nix | 14 + .../home/workstation}/tools/ookvolume.nix | 2 +- .../nixos/appearance}/default.nix | 2 +- .../nixos/appearance/options.nix | 8 +- .../palettes/gruvbox-material-medium-dark.nix | 0 .../host => modules/nixos/base}/admin.nix | 23 +- modules/nixos/base/boot.nix | 31 + modules/nixos/base/default.nix | 14 + modules/nixos/base/locale.nix | 9 + modules/nixos/base/networking.nix | 45 + modules/nixos/base/nix.nix | 69 + modules/nixos/base/openssh.nix | 82 + modules/nixos/base/options.nix | 48 + .../nixos}/base/secrets.nix | 2 +- modules/nixos/base/security/apparmor.nix | 68 + modules/nixos/base/security/auditing.nix | 9 + modules/nixos/base/security/default.nix | 10 + modules/nixos/base/security/firewall.nix | 8 + .../nixos}/base/security/kernel.nix | 6 +- modules/nixos/base/security/sudo.nix | 15 + modules/nixos/base/security/tcp.nix | 76 + modules/nixos/base/tailscale.nix | 50 + modules/nixos/console/default.nix | 19 + modules/nixos/console/options.nix | 39 + modules/nixos/console/profile/default.nix | 5 + .../nixos/console/profile/standard.nix | 22 +- .../nixos/console/shell}/default.nix | 2 +- .../nixos/console/shell/fish.nix | 0 modules/nixos/hardware/common.nix | 6 + .../nixos}/hardware/cpu/amd.nix | 5 +- .../nixos}/hardware/cpu/default.nix | 0 .../nixos}/hardware/cpu/intel.nix | 7 +- .../nixos}/hardware/default.nix | 1 + modules/nixos/hardware/features/audio.nix | 70 + .../nixos}/hardware/features/backlight.nix | 2 +- modules/nixos/hardware/features/battery.nix | 44 + .../nixos}/hardware/features/bluetooth.nix | 12 +- .../nixos}/hardware/features/default.nix | 11 +- modules/nixos/hardware/features/printing.nix | 24 + .../nixos}/hardware/features/ssd.nix | 2 +- modules/nixos/hardware/features/video.nix | 19 + .../nixos}/hardware/gpu/amd.nix | 24 +- .../nixos}/hardware/gpu/default.nix | 0 modules/nixos/hardware/gpu/intel.nix | 39 + .../nixos}/hardware/gpu/nvidia.nix | 38 +- modules/nixos/hardware/options.nix | 101 ++ {home => modules/nixos/server}/default.nix | 5 +- modules/nixos/server/options/default.nix | 5 + modules/nixos/server/options/server.nix | 22 + modules/nixos/server/profiles/default.nix | 5 + modules/nixos/server/profiles/linode.nix | 59 + modules/nixos/server/services/default.nix | 2 + modules/nixos/workstation/default.nix | 22 + .../nixos/workstation/environment/default.nix | 3 + .../environment/hyprland/default.nix | 67 + .../nixos/workstation}/gaming/default.nix | 2 - modules/nixos/workstation/gaming/gamemode.nix | 50 + modules/nixos/workstation/gaming/steam.nix | 17 + modules/nixos/workstation/options.nix | 33 + .../nixos/workstation/programs/1password.nix | 11 + modules/nixos/workstation/programs/dconf.nix | 3 + .../nixos/workstation}/programs/default.nix | 2 +- .../nixos/workstation/programs/kdeconnect.nix | 3 + modules/nixos/workstation/services/dbus.nix | 11 + .../nixos/workstation/services/default.nix | 6 + .../workstation/services/gnome-services.nix | 10 + .../nixos/workstation/themes}/default.nix | 0 .../themes/generated-wallpaper.nix | 2 +- .../nixos/workstation/themes}/minimal.nix | 5 +- nixos/default.nix | 8 - nixos/modules/base/boot/default.nix | 6 - nixos/modules/base/boot/loader/default.nix | 12 - nixos/modules/base/boot/loader/systemd.nix | 18 - nixos/modules/base/boot/plymouth.nix | 19 - nixos/modules/base/default.nix | 12 - nixos/modules/base/displayManager/default.nix | 5 - .../modules/base/displayManager/tuigreet.nix | 33 - nixos/modules/base/locale.nix | 13 - nixos/modules/base/networking/default.nix | 29 - nixos/modules/base/networking/firewall.nix | 18 - nixos/modules/base/networking/resolved.nix | 19 - nixos/modules/base/networking/ssh.nix | 42 - nixos/modules/base/networking/tailscale.nix | 38 - nixos/modules/base/networking/tcp.nix | 79 - nixos/modules/base/networking/tools.nix | 12 - nixos/modules/base/nix/default.nix | 56 - nixos/modules/base/nix/nh.nix | 19 - nixos/modules/base/nix/nixpkgs.nix | 26 - nixos/modules/base/nix/subs.nix | 30 - nixos/modules/base/security/audit.nix | 8 - nixos/modules/base/security/default.nix | 9 - nixos/modules/base/security/pam.nix | 23 - nixos/modules/base/security/polkit.nix | 18 - nixos/modules/base/security/sudo.nix | 60 - nixos/modules/base/shell/bash/default.nix | 15 - nixos/modules/base/shell/zsh/default.nix | 20 - nixos/modules/default.nix | 10 - nixos/modules/gaming/gamemode.nix | 25 - nixos/modules/gaming/gamescope.nix | 17 - nixos/modules/gaming/openPorts.nix | 22 - nixos/modules/gaming/steam.nix | 37 - nixos/modules/host/default.nix | 7 - nixos/modules/host/hardware/common.nix | 15 - .../modules/host/hardware/features/audio.nix | 119 -- .../host/hardware/features/battery.nix | 65 - .../modules/host/hardware/features/video.nix | 33 - nixos/modules/host/hardware/gpu/intel.nix | 36 - nixos/modules/host/name.nix | 8 - nixos/modules/programs/1password.nix | 19 - nixos/modules/programs/dconf.nix | 12 - nixos/modules/programs/kdeconnect.nix | 14 - nixos/modules/services/dbus.nix | 17 - nixos/modules/services/default.nix | 9 - nixos/modules/services/flatpak.nix | 12 - nixos/modules/services/gnome.nix | 19 - nixos/modules/services/gvfs.nix | 12 - nixos/modules/services/system76Scheduler.nix | 19 - nixos/modules/virtualization/default.nix | 34 - nixos/options/appearance/palettes/default.nix | 3 - .../appearance/palettes/hozen-dark.nix | 50 - nixos/options/default.nix | 9 - nixos/options/gaming.nix | 10 - nixos/options/host.nix | 216 --- nixos/options/programs.nix | 9 - nixos/options/services.nix | 12 - nixos/profiles/default.nix | 6 - nixos/profiles/gaming.nix | 18 - nixos/profiles/media-server.nix | 13 - nixos/roles/default.nix | 6 - nixos/roles/desktop-workstation.nix | 25 - nixos/roles/laptop-workstation.nix | 25 - outputs/apps.nix | 10 + outputs/default.nix | 6 +- outputs/formatter.nix | 5 - .../editor => outputs/hosts}/default.nix | 3 +- outputs/hosts/workstations.nix | 22 + outputs/keys.nix | 6 + outputs/lib/builders.nix | 23 +- outputs/lib/default.nix | 12 +- outputs/lib/mkNeovim.nix | 12 + outputs/nixos.nix | 48 - outputs/overlays/default.nix | 29 - outputs/pkgs/default.nix | 10 +- outputs/pkgs/live-buds-cli/default.nix | 8 +- outputs/pkgs/ook-vim/default.nix | 9 + outputs/pkgs/ook-vim/keymaps.nix | 5 + outputs/pkgs/ook-vim/modules/default.nix | 5 + .../pkgs/ook-vim/modules/plugins/default.nix | 6 + .../plugins/gruvbox-material/config.nix | 80 + .../plugins/gruvbox-material/default.nix | 5 + .../modules/plugins/telescope/config.nix | 55 + .../modules/plugins/telescope/default.nix | 5 + outputs/pkgs/ook-vim/plugins/cmp.nix | 5 + outputs/pkgs/ook-vim/plugins/comments.nix | 5 + outputs/pkgs/ook-vim/plugins/default.nix | 15 + outputs/pkgs/ook-vim/plugins/filetree.nix | 17 + outputs/pkgs/ook-vim/plugins/git.nix | 9 + .../pkgs/ook-vim/plugins/languages/bash.nix | 5 + .../pkgs/ook-vim/plugins/languages/css.nix | 6 + .../ook-vim/plugins/languages/default.nix | 19 + .../pkgs/ook-vim/plugins/languages/html.nix | 5 + .../pkgs/ook-vim/plugins/languages/lsp.nix | 8 + .../ook-vim/plugins/languages/markdown.nix | 11 + .../pkgs/ook-vim/plugins/languages/nix.nix | 5 + .../ook-vim/plugins/languages/treesitter.nix | 11 + outputs/pkgs/ook-vim/plugins/languages/ts.nix | 5 + outputs/pkgs/ook-vim/plugins/projects.nix | 16 + outputs/pkgs/ook-vim/plugins/snippets.nix | 5 + outputs/pkgs/ook-vim/plugins/statusline.nix | 52 + outputs/pkgs/ook-vim/plugins/telescope.nix | 16 + outputs/pkgs/ook-vim/plugins/terminal.nix | 11 + outputs/pkgs/ook-vim/plugins/ui.nix | 35 + outputs/pkgs/ook-vim/plugins/utility.nix | 5 + outputs/pkgs/ook-vim/settings.nix | 23 + outputs/pkgs/ook-vim/theme.nix | 20 + outputs/sshKeys.nix | 6 - 399 files changed, 3396 insertions(+), 8042 deletions(-) delete mode 100644 README.md delete mode 100644 home/modules/appearance/qt.nix delete mode 100644 home/modules/base/mime-apps.nix delete mode 100644 home/modules/console/default.nix delete mode 100644 home/modules/console/editor/helix/default.nix delete mode 100644 home/modules/console/editor/helix/languages.nix delete mode 100644 home/modules/console/multiplexer/default.nix delete mode 100644 home/modules/console/multiplexer/tmux/default.nix delete mode 100644 home/modules/console/shell/default.nix delete mode 100644 home/modules/console/shell/fish/aliases.nix delete mode 100644 home/modules/console/shell/fish/binds.nix delete mode 100644 home/modules/console/shell/fish/plugins.nix delete mode 100644 home/modules/console/shell/zsh/plugins.nix delete mode 100644 home/modules/console/tools/bat.nix delete mode 100644 home/modules/console/tools/sourcegraph.nix delete mode 100644 home/modules/console/tools/utils.nix delete mode 100644 home/modules/default.nix delete mode 100644 home/modules/desktop/browser/chrome/default.nix delete mode 100644 home/modules/desktop/browser/default.nix delete mode 100644 home/modules/desktop/browser/firefox/settings/narsilUserjs.nix delete mode 100644 home/modules/desktop/browser/firefox/theme/penguinFox.nix delete mode 100644 home/modules/desktop/communication/discord/vesktop.nix delete mode 100644 home/modules/desktop/creative/audacity.nix delete mode 100644 home/modules/desktop/creative/inkscape.nix delete mode 100644 home/modules/desktop/file-manager/nemo.nix delete mode 100644 home/modules/desktop/gaming/bottles.nix delete mode 100644 home/modules/desktop/gaming/default.nix delete mode 100644 home/modules/desktop/gaming/factorio.nix delete mode 100644 home/modules/desktop/gaming/lutris.nix delete mode 100644 home/modules/desktop/gaming/wine.nix delete mode 100644 home/modules/desktop/media/default.nix delete mode 100644 home/modules/desktop/media/music/default.nix delete mode 100644 home/modules/desktop/media/video/default.nix delete mode 100644 home/modules/desktop/media/video/jellyfin-player.nix delete mode 100644 home/modules/desktop/media/video/youtube.nix delete mode 100644 home/modules/desktop/productivity/default.nix delete mode 100644 home/modules/desktop/productivity/notes/obsidian.nix delete mode 100644 home/modules/desktop/productivity/office/default.nix delete mode 100644 home/modules/desktop/productivity/office/libreoffice.nix delete mode 100644 home/modules/desktop/productivity/pdf/default.nix delete mode 100644 home/modules/desktop/security/polkit.nix delete mode 100644 home/modules/desktop/terminal/kitty.nix delete mode 100644 home/modules/desktop/tools/ookpower.nix delete mode 100644 home/modules/desktop/tools/zellijMenu.nix delete mode 100644 home/modules/desktop/wayland/bar/default.nix delete mode 100644 home/modules/desktop/wayland/compositor/hyprland/default.nix delete mode 100644 home/modules/desktop/wayland/compositor/hyprland/extras/default.nix delete mode 100644 home/modules/desktop/wayland/compositor/hyprland/extras/hyprcapture.nix delete mode 100644 home/modules/desktop/wayland/compositor/hyprland/extras/hyprshade.nix delete mode 100644 home/modules/desktop/wayland/compositor/hyprland/settings/appearance.nix delete mode 100644 home/modules/desktop/wayland/compositor/hyprland/settings/binds.nix delete mode 100644 home/modules/desktop/wayland/compositor/hyprland/settings/env.nix delete mode 100644 home/modules/desktop/wayland/compositor/hyprland/settings/exec.nix delete mode 100644 home/modules/desktop/wayland/compositor/hyprland/settings/gestures.nix delete mode 100644 home/modules/desktop/wayland/compositor/hyprland/settings/inputs.nix delete mode 100644 home/modules/desktop/wayland/compositor/hyprland/settings/misc.nix delete mode 100644 home/modules/desktop/wayland/compositor/hyprland/settings/monitor.nix delete mode 100644 home/modules/desktop/wayland/compositor/hyprland/settings/rules.nix delete mode 100644 home/modules/desktop/wayland/default.nix delete mode 100644 home/modules/desktop/wayland/launcher/default.nix delete mode 100644 home/modules/desktop/wayland/launcher/tofi.nix delete mode 100644 home/modules/desktop/wayland/lockscreen/default.nix delete mode 100644 home/modules/desktop/wayland/lockscreen/swaylock.nix delete mode 100644 home/modules/desktop/wayland/notification/default.nix delete mode 100644 home/modules/desktop/wayland/utility/default.nix delete mode 100644 home/modules/desktop/wayland/utility/tools.nix delete mode 100644 home/options/appearance/default.nix delete mode 100644 home/options/appearance/gtk.nix delete mode 100644 home/options/appearance/qt.nix delete mode 100644 home/options/console/default.nix delete mode 100644 home/options/console/editor.nix delete mode 100644 home/options/console/multiplexer.nix delete mode 100644 home/options/console/shell.nix delete mode 100644 home/options/console/tools.nix delete mode 100644 home/options/default.nix delete mode 100644 home/options/desktop/browser.nix delete mode 100644 home/options/desktop/communication.nix delete mode 100644 home/options/desktop/creative.nix delete mode 100644 home/options/desktop/default.nix delete mode 100644 home/options/desktop/fileManager.nix delete mode 100644 home/options/desktop/gaming.nix delete mode 100644 home/options/desktop/media.nix delete mode 100644 home/options/desktop/productivity.nix delete mode 100644 home/options/desktop/security.nix delete mode 100644 home/options/desktop/terminal.nix delete mode 100644 home/options/desktop/tools.nix delete mode 100644 home/options/desktop/wayland.nix delete mode 100644 home/options/profiles/console.nix delete mode 100644 home/options/profiles/default.nix delete mode 100644 home/options/profiles/desktop.nix delete mode 100644 home/profiles/default.nix delete mode 100644 home/profiles/desktop-environments/default.nix delete mode 100644 home/profiles/desktop-environments/hyprland.nix delete mode 100644 home/profiles/suites/creative.nix delete mode 100644 home/profiles/suites/default.nix delete mode 100644 home/profiles/suites/media.nix delete mode 100644 home/profiles/suites/productivity.nix delete mode 100644 home/profiles/themes/default.nix delete mode 100644 home/profiles/themes/minimal.nix delete mode 100644 home/profiles/themes/phone.nix delete mode 100644 home/roles/default.nix delete mode 100644 home/roles/ooks-desktop-workstation.nix delete mode 100644 home/roles/ooks-laptop-workstation.nix delete mode 100644 home/roles/ooks-micro-workstation.nix delete mode 100644 home/roles/ooks-vm-server.nix delete mode 100644 home/user/ooks/ooksdesk/default.nix delete mode 100644 home/user/ooks/ooksmedia/default.nix delete mode 100644 home/user/ooks/ooksmicro/default.nix delete mode 100644 home/user/ooks/ooksphone/default.nix delete mode 100644 home/user/ooks/ookst480s/default.nix create mode 100644 hosts/default.nix delete mode 100644 hosts/ooknode/default.nix delete mode 100644 hosts/ooknode/hardware-configuration.nix create mode 100644 hosts/ooksdesk/file-system.nix delete mode 100644 hosts/ooksdesk/hardware-configuration.nix create mode 100644 hosts/ooksdesk/hardware.nix delete mode 100644 hosts/ooksmedia/default.nix delete mode 100644 hosts/ooksmedia/hardware-configuration.nix delete mode 100644 hosts/ooksmedia/modules/default.nix delete mode 100644 hosts/ooksmedia/modules/nixarr.nix delete mode 100644 hosts/ooksmicro/default.nix delete mode 100644 hosts/ooksmicro/hardware-configuration.nix delete mode 100644 hosts/ooksphone/default.nix delete mode 100644 hosts/ooksphone/modules/default.nix delete mode 100644 hosts/ooksphone/modules/openssh.nix delete mode 100644 hosts/ooksphone/modules/theme.nix rename hosts/ookst480s/{hardware-configuration.nix => file-system.nix} (97%) rename home/modules/desktop/browser/brave/default.nix => hosts/ookst480s/host.nix (100%) create mode 100644 hosts/ookst480s/workstation.nix delete mode 100644 hosts/ooksx1/default.nix delete mode 100644 hosts/ooksx1/hardware-configuration.nix rename {home/modules => modules/home}/base/default.nix (53%) rename {home/modules => modules/home}/base/home-manager.nix (89%) rename home/modules/base/user-dirs.nix => modules/home/base/userDirs.nix (100%) create mode 100644 modules/home/console/default.nix rename {home/modules => modules/home}/console/shell/bash/default.nix (81%) rename {nixos/modules/base => modules/home/console}/shell/default.nix (100%) create mode 100644 modules/home/console/shell/fish/aliases.nix create mode 100644 modules/home/console/shell/fish/binds.nix rename {home/modules => modules/home}/console/shell/fish/default.nix (91%) create mode 100644 modules/home/console/shell/fish/plugins.nix rename {home/modules => modules/home}/console/shell/zsh/default.nix (80%) create mode 100644 modules/home/console/shell/zsh/plugins.nix create mode 100644 modules/home/console/tools/bat.nix rename {home/modules => modules/home}/console/tools/btop.nix (70%) rename {home/modules => modules/home}/console/tools/default.nix (78%) rename {home/modules => modules/home}/console/tools/direnv.nix (74%) rename {home/modules/desktop/security => modules/home/console/tools/editor}/default.nix (57%) rename home/modules/console/editor/nvim/default.nix => modules/home/console/tools/editor/neovim.nix (50%) rename {home/modules => modules/home}/console/tools/eza.nix (66%) rename {home/modules => modules/home}/console/tools/ffmpeg.nix (59%) rename {home/modules => modules/home}/console/tools/fzf.nix (92%) rename {home/modules => modules/home}/console/tools/git.nix (71%) rename {home/modules/desktop/media/image => modules/home/console/tools/multiplexer}/default.nix (62%) rename {home/modules/console => modules/home/console/tools}/multiplexer/zellij/default.nix (99%) rename {home/modules/console => modules/home/console/tools}/multiplexer/zellij/layouts/defaultLayout.nix (99%) rename {home/modules/console => modules/home/console/tools}/multiplexer/zellij/layouts/flakeLayout.nix (100%) rename {home/modules/console => modules/home/console/tools}/multiplexer/zellij/layouts/scriptLayout.nix (100%) rename {home/modules => modules/home}/console/tools/nixIndex.nix (86%) rename {home/modules => modules/home}/console/tools/ssh.nix (90%) rename {home/modules => modules/home}/console/tools/starship.nix (96%) create mode 100644 modules/home/console/tools/utils.nix create mode 100644 modules/home/default.nix rename {home/modules => modules/home/workstation}/appearance/cursor.nix (100%) rename {home/modules => modules/home/workstation}/appearance/default.nix (100%) rename {home/modules => modules/home/workstation}/appearance/fonts.nix (100%) rename {home/modules => modules/home/workstation}/appearance/gtk.nix (96%) rename {home/modules => modules/home/workstation}/appearance/gtkCss.nix (100%) create mode 100644 modules/home/workstation/appearance/qt.nix rename {home/options/desktop => modules/home/workstation}/binds.nix (100%) rename {home/modules/desktop/communication => modules/home/workstation/browser}/default.nix (62%) rename {home/modules/desktop => modules/home/workstation}/browser/firefox/default.nix (88%) rename {home/modules/desktop => modules/home/workstation}/browser/firefox/settings/ooksJs.nix (100%) rename {home/modules/desktop => modules/home/workstation}/browser/firefox/theme/ooksfox.nix (100%) rename {home/modules/desktop => modules/home/workstation}/browser/firefox/theme/penguinFoxContent.nix (100%) rename {home/modules/desktop => modules/home/workstation}/browser/firefox/tridactyl.nix (97%) rename {home/modules/desktop/wayland/compositor => modules/home/workstation/communication}/default.nix (60%) create mode 100644 modules/home/workstation/communication/vesktop/default.nix rename {home/modules/desktop/communication/discord => modules/home/workstation/communication/vesktop}/vesktop-patch.patch (100%) rename {home/modules/desktop => modules/home/workstation}/creative/default.nix (68%) create mode 100644 modules/home/workstation/creative/inkscape.nix rename {home/modules/desktop => modules/home/workstation}/default.nix (74%) create mode 100644 modules/home/workstation/gaming/bottles.nix rename home/profiles/suites/gaming.nix => modules/home/workstation/gaming/default.nix (52%) create mode 100644 modules/home/workstation/gaming/wine.nix create mode 100644 modules/home/workstation/gaming/wow.nix create mode 100644 modules/home/workstation/hyprland/components/default.nix rename {home/modules/desktop/wayland/utility => modules/home/workstation/hyprland/components}/gammastep.nix (59%) create mode 100644 modules/home/workstation/hyprland/components/hypridle.nix rename {home/modules/desktop/wayland/lockscreen => modules/home/workstation/hyprland/components}/hyprlock.nix (88%) rename {home/modules/desktop/wayland/compositor/hyprland/settings => modules/home/workstation/hyprland/components}/hyprpaper.nix (77%) rename {home/modules/desktop/wayland/notification => modules/home/workstation/hyprland/components}/mako.nix (69%) create mode 100644 modules/home/workstation/hyprland/components/polkit.nix rename {home/modules/desktop/wayland/launcher => modules/home/workstation/hyprland/components}/rofi.nix (95%) create mode 100644 modules/home/workstation/hyprland/components/tools.nix rename home/modules/desktop/wayland/bar/waybar/default.nix => modules/home/workstation/hyprland/components/waybar.nix (96%) rename home/modules/desktop/wayland/variables.nix => modules/home/workstation/hyprland/default.nix (55%) create mode 100644 modules/home/workstation/hyprland/settings/appearance.nix create mode 100644 modules/home/workstation/hyprland/settings/binds.nix rename {home/modules/desktop/wayland/compositor => modules/home/workstation}/hyprland/settings/default.nix (73%) create mode 100644 modules/home/workstation/hyprland/settings/exec.nix create mode 100644 modules/home/workstation/hyprland/settings/gestures.nix create mode 100644 modules/home/workstation/hyprland/settings/input.nix create mode 100644 modules/home/workstation/hyprland/settings/misc.nix create mode 100644 modules/home/workstation/hyprland/settings/monitor.nix create mode 100644 modules/home/workstation/hyprland/settings/rules.nix create mode 100644 modules/home/workstation/media/default.nix rename home/modules/desktop/media/image/imv.nix => modules/home/workstation/media/image.nix (66%) rename home/modules/desktop/media/music/tui.nix => modules/home/workstation/media/music.nix (51%) rename home/modules/desktop/media/video/mpv.nix => modules/home/workstation/media/video.nix (58%) rename {home/modules/desktop/productivity/notes => modules/home/workstation/productivity}/default.nix (70%) create mode 100644 modules/home/workstation/productivity/obsidian.nix rename {home/modules/desktop/productivity/pdf => modules/home/workstation/productivity}/zathura.nix (79%) rename {home/modules/desktop => modules/home/workstation}/terminal/default.nix (70%) rename {home/modules/desktop => modules/home/workstation}/terminal/foot.nix (93%) rename {home/modules/desktop => modules/home/workstation}/tools/1password.nix (75%) rename {home/modules/desktop => modules/home/workstation}/tools/default.nix (85%) rename {home/modules/desktop => modules/home/workstation}/tools/kdeconnect.nix (79%) rename {home/modules/desktop => modules/home/workstation}/tools/ookbrightness.nix (95%) create mode 100644 modules/home/workstation/tools/ookpower.nix rename {home/modules/desktop => modules/home/workstation}/tools/ookvolume.nix (94%) rename {home/modules/desktop/communication/discord => modules/nixos/appearance}/default.nix (56%) rename nixos/options/appearance/default.nix => modules/nixos/appearance/options.nix (89%) rename {nixos/options => modules/nixos}/appearance/palettes/gruvbox-material-medium-dark.nix (100%) rename {nixos/modules/host => modules/nixos/base}/admin.nix (61%) create mode 100644 modules/nixos/base/boot.nix create mode 100644 modules/nixos/base/default.nix create mode 100644 modules/nixos/base/locale.nix create mode 100644 modules/nixos/base/networking.nix create mode 100644 modules/nixos/base/nix.nix create mode 100644 modules/nixos/base/openssh.nix create mode 100644 modules/nixos/base/options.nix rename {nixos/modules => modules/nixos}/base/secrets.nix (93%) create mode 100644 modules/nixos/base/security/apparmor.nix create mode 100644 modules/nixos/base/security/auditing.nix create mode 100644 modules/nixos/base/security/default.nix create mode 100644 modules/nixos/base/security/firewall.nix rename {nixos/modules => modules/nixos}/base/security/kernel.nix (97%) create mode 100644 modules/nixos/base/security/sudo.nix create mode 100644 modules/nixos/base/security/tcp.nix create mode 100644 modules/nixos/base/tailscale.nix create mode 100644 modules/nixos/console/default.nix create mode 100644 modules/nixos/console/options.nix create mode 100644 modules/nixos/console/profile/default.nix rename home/profiles/suites/console-tools.nix => modules/nixos/console/profile/standard.nix (62%) rename {home/modules/desktop/file-manager => modules/nixos/console/shell}/default.nix (60%) rename nixos/modules/base/shell/fish/default.nix => modules/nixos/console/shell/fish.nix (100%) create mode 100644 modules/nixos/hardware/common.nix rename {nixos/modules/host => modules/nixos}/hardware/cpu/amd.nix (90%) rename {nixos/modules/host => modules/nixos}/hardware/cpu/default.nix (100%) rename {nixos/modules/host => modules/nixos}/hardware/cpu/intel.nix (62%) rename {nixos/modules/host => modules/nixos}/hardware/default.nix (80%) create mode 100644 modules/nixos/hardware/features/audio.nix rename {nixos/modules/host => modules/nixos}/hardware/features/backlight.nix (77%) create mode 100644 modules/nixos/hardware/features/battery.nix rename {nixos/modules/host => modules/nixos}/hardware/features/bluetooth.nix (59%) rename {nixos/modules/host => modules/nixos}/hardware/features/default.nix (70%) create mode 100644 modules/nixos/hardware/features/printing.nix rename {nixos/modules/host => modules/nixos}/hardware/features/ssd.nix (88%) create mode 100644 modules/nixos/hardware/features/video.nix rename {nixos/modules/host => modules/nixos}/hardware/gpu/amd.nix (54%) rename {nixos/modules/host => modules/nixos}/hardware/gpu/default.nix (100%) create mode 100644 modules/nixos/hardware/gpu/intel.nix rename {nixos/modules/host => modules/nixos}/hardware/gpu/nvidia.nix (73%) create mode 100644 modules/nixos/hardware/options.nix rename {home => modules/nixos/server}/default.nix (66%) create mode 100644 modules/nixos/server/options/default.nix create mode 100644 modules/nixos/server/options/server.nix create mode 100644 modules/nixos/server/profiles/default.nix create mode 100644 modules/nixos/server/profiles/linode.nix create mode 100644 modules/nixos/server/services/default.nix create mode 100644 modules/nixos/workstation/default.nix create mode 100644 modules/nixos/workstation/environment/default.nix create mode 100644 modules/nixos/workstation/environment/hyprland/default.nix rename {nixos/modules => modules/nixos/workstation}/gaming/default.nix (59%) create mode 100644 modules/nixos/workstation/gaming/gamemode.nix create mode 100644 modules/nixos/workstation/gaming/steam.nix create mode 100644 modules/nixos/workstation/options.nix create mode 100644 modules/nixos/workstation/programs/1password.nix create mode 100644 modules/nixos/workstation/programs/dconf.nix rename {nixos/modules => modules/nixos/workstation}/programs/default.nix (100%) create mode 100644 modules/nixos/workstation/programs/kdeconnect.nix create mode 100644 modules/nixos/workstation/services/dbus.nix create mode 100644 modules/nixos/workstation/services/default.nix create mode 100644 modules/nixos/workstation/services/gnome-services.nix rename {nixos/modules/theme => modules/nixos/workstation/themes}/default.nix (100%) rename nixos/modules/theme/generatedWallpaper.nix => modules/nixos/workstation/themes/generated-wallpaper.nix (98%) rename {nixos/modules/theme => modules/nixos/workstation/themes}/minimal.nix (84%) delete mode 100644 nixos/default.nix delete mode 100644 nixos/modules/base/boot/default.nix delete mode 100644 nixos/modules/base/boot/loader/default.nix delete mode 100644 nixos/modules/base/boot/loader/systemd.nix delete mode 100644 nixos/modules/base/boot/plymouth.nix delete mode 100644 nixos/modules/base/default.nix delete mode 100644 nixos/modules/base/displayManager/default.nix delete mode 100644 nixos/modules/base/displayManager/tuigreet.nix delete mode 100644 nixos/modules/base/locale.nix delete mode 100644 nixos/modules/base/networking/default.nix delete mode 100644 nixos/modules/base/networking/firewall.nix delete mode 100644 nixos/modules/base/networking/resolved.nix delete mode 100644 nixos/modules/base/networking/ssh.nix delete mode 100644 nixos/modules/base/networking/tailscale.nix delete mode 100644 nixos/modules/base/networking/tcp.nix delete mode 100644 nixos/modules/base/networking/tools.nix delete mode 100644 nixos/modules/base/nix/default.nix delete mode 100644 nixos/modules/base/nix/nh.nix delete mode 100644 nixos/modules/base/nix/nixpkgs.nix delete mode 100644 nixos/modules/base/nix/subs.nix delete mode 100644 nixos/modules/base/security/audit.nix delete mode 100644 nixos/modules/base/security/default.nix delete mode 100644 nixos/modules/base/security/pam.nix delete mode 100644 nixos/modules/base/security/polkit.nix delete mode 100644 nixos/modules/base/security/sudo.nix delete mode 100644 nixos/modules/base/shell/bash/default.nix delete mode 100644 nixos/modules/base/shell/zsh/default.nix delete mode 100644 nixos/modules/default.nix delete mode 100644 nixos/modules/gaming/gamemode.nix delete mode 100644 nixos/modules/gaming/gamescope.nix delete mode 100644 nixos/modules/gaming/openPorts.nix delete mode 100644 nixos/modules/gaming/steam.nix delete mode 100644 nixos/modules/host/default.nix delete mode 100644 nixos/modules/host/hardware/common.nix delete mode 100644 nixos/modules/host/hardware/features/audio.nix delete mode 100644 nixos/modules/host/hardware/features/battery.nix delete mode 100644 nixos/modules/host/hardware/features/video.nix delete mode 100644 nixos/modules/host/hardware/gpu/intel.nix delete mode 100644 nixos/modules/host/name.nix delete mode 100644 nixos/modules/programs/1password.nix delete mode 100644 nixos/modules/programs/dconf.nix delete mode 100644 nixos/modules/programs/kdeconnect.nix delete mode 100644 nixos/modules/services/dbus.nix delete mode 100644 nixos/modules/services/default.nix delete mode 100644 nixos/modules/services/flatpak.nix delete mode 100644 nixos/modules/services/gnome.nix delete mode 100644 nixos/modules/services/gvfs.nix delete mode 100644 nixos/modules/services/system76Scheduler.nix delete mode 100644 nixos/modules/virtualization/default.nix delete mode 100644 nixos/options/appearance/palettes/default.nix delete mode 100644 nixos/options/appearance/palettes/hozen-dark.nix delete mode 100644 nixos/options/default.nix delete mode 100644 nixos/options/gaming.nix delete mode 100644 nixos/options/host.nix delete mode 100644 nixos/options/programs.nix delete mode 100644 nixos/options/services.nix delete mode 100644 nixos/profiles/default.nix delete mode 100644 nixos/profiles/gaming.nix delete mode 100644 nixos/profiles/media-server.nix delete mode 100644 nixos/roles/default.nix delete mode 100644 nixos/roles/desktop-workstation.nix delete mode 100644 nixos/roles/laptop-workstation.nix create mode 100644 outputs/apps.nix delete mode 100644 outputs/formatter.nix rename {home/modules/console/editor => outputs/hosts}/default.nix (50%) create mode 100644 outputs/hosts/workstations.nix create mode 100644 outputs/keys.nix create mode 100644 outputs/lib/mkNeovim.nix delete mode 100644 outputs/nixos.nix delete mode 100644 outputs/overlays/default.nix create mode 100644 outputs/pkgs/ook-vim/default.nix create mode 100644 outputs/pkgs/ook-vim/keymaps.nix create mode 100644 outputs/pkgs/ook-vim/modules/default.nix create mode 100644 outputs/pkgs/ook-vim/modules/plugins/default.nix create mode 100644 outputs/pkgs/ook-vim/modules/plugins/gruvbox-material/config.nix create mode 100644 outputs/pkgs/ook-vim/modules/plugins/gruvbox-material/default.nix create mode 100644 outputs/pkgs/ook-vim/modules/plugins/telescope/config.nix create mode 100644 outputs/pkgs/ook-vim/modules/plugins/telescope/default.nix create mode 100644 outputs/pkgs/ook-vim/plugins/cmp.nix create mode 100644 outputs/pkgs/ook-vim/plugins/comments.nix create mode 100644 outputs/pkgs/ook-vim/plugins/default.nix create mode 100644 outputs/pkgs/ook-vim/plugins/filetree.nix create mode 100644 outputs/pkgs/ook-vim/plugins/git.nix create mode 100644 outputs/pkgs/ook-vim/plugins/languages/bash.nix create mode 100644 outputs/pkgs/ook-vim/plugins/languages/css.nix create mode 100644 outputs/pkgs/ook-vim/plugins/languages/default.nix create mode 100644 outputs/pkgs/ook-vim/plugins/languages/html.nix create mode 100644 outputs/pkgs/ook-vim/plugins/languages/lsp.nix create mode 100644 outputs/pkgs/ook-vim/plugins/languages/markdown.nix create mode 100644 outputs/pkgs/ook-vim/plugins/languages/nix.nix create mode 100644 outputs/pkgs/ook-vim/plugins/languages/treesitter.nix create mode 100644 outputs/pkgs/ook-vim/plugins/languages/ts.nix create mode 100644 outputs/pkgs/ook-vim/plugins/projects.nix create mode 100644 outputs/pkgs/ook-vim/plugins/snippets.nix create mode 100644 outputs/pkgs/ook-vim/plugins/statusline.nix create mode 100644 outputs/pkgs/ook-vim/plugins/telescope.nix create mode 100644 outputs/pkgs/ook-vim/plugins/terminal.nix create mode 100644 outputs/pkgs/ook-vim/plugins/ui.nix create mode 100644 outputs/pkgs/ook-vim/plugins/utility.nix create mode 100644 outputs/pkgs/ook-vim/settings.nix create mode 100644 outputs/pkgs/ook-vim/theme.nix delete mode 100644 outputs/sshKeys.nix diff --git a/README.md b/README.md deleted file mode 100644 index f81eb60..0000000 --- a/README.md +++ /dev/null @@ -1,4 +0,0 @@ -## written by a literal ape - -_ooknet_ is where all my ooks* hosts are configured and built. always a work in -progress, will write a proper readme one day... diff --git a/flake.lock b/flake.lock index f395d29..454f4e5 100644 --- a/flake.lock +++ b/flake.lock @@ -41,11 +41,11 @@ ] }, "locked": { - "lastModified": 1728326504, - "narHash": "sha256-dQXAj+4d6neY7ldCiH6gNym3upP49PVxRzEPxXlD9Aw=", + "lastModified": 1728902391, + "narHash": "sha256-44bnoY0nAvbBQ/lVjmn511yL39Sv7SknV0BDxn34P3Q=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "65dd97b5d21e917295159bbef1d52e06963f4eb0", + "rev": "9874e08eec85b5542ca22494e127b0cdce46b786", "type": "github" }, "original": { @@ -54,44 +54,7 @@ "type": "github" } }, - "base16-schemes": { - "flake": false, - "locked": { - "lastModified": 1696158499, - "narHash": "sha256-5yIHgDTPjoX/3oDEfLSQ0eJZdFL1SaCfb9d6M0RmOTM=", - "owner": "tinted-theming", - "repo": "base16-schemes", - "rev": "a9112eaae86d9dd8ee6bb9445b664fba2f94037a", - "type": "github" - }, - "original": { - "owner": "tinted-theming", - "repo": "base16-schemes", - "type": "github" - } - }, "crane": { - "inputs": { - "nixpkgs": [ - "helix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1709610799, - "narHash": "sha256-5jfLQx0U9hXbi2skYMGodDJkIgffrjIOgMRjZqms2QE=", - "owner": "ipetkov", - "repo": "crane", - "rev": "81c393c776d5379c030607866afef6406ca1be57", - "type": "github" - }, - "original": { - "owner": "ipetkov", - "repo": "crane", - "type": "github" - } - }, - "crane_2": { "locked": { "lastModified": 1727974419, "narHash": "sha256-WD0//20h+2/yPGkO88d2nYbb23WMWYvnRyDQ9Dx4UHg=", @@ -128,27 +91,6 @@ "type": "github" } }, - "devshell": { - "inputs": { - "nixpkgs": [ - "nixarr", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1722113426, - "narHash": "sha256-Yo/3loq572A8Su6aY5GP56knpuKYRvM2a1meP9oJZCw=", - "owner": "numtide", - "repo": "devshell", - "rev": "67cce7359e4cd3c45296fb4aaf6a19e2a9c757ae", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "devshell", - "type": "github" - } - }, "firefox-addons": { "inputs": { "flake-utils": "flake-utils", @@ -158,11 +100,11 @@ }, "locked": { "dir": "pkgs/firefox-addons", - "lastModified": 1728446599, - "narHash": "sha256-uRCq3v4xdTUnA03/eLq1UrXdihwwdnTCIPpujEAQUa4=", + "lastModified": 1729553509, + "narHash": "sha256-rt0zKilb27nWP/+H4kj94D4axdGpSEQdXp4DU2bJJOM=", "owner": "rycee", "repo": "nur-expressions", - "rev": "2f52d2883c2e6e85949a0ec9be00509e52adb53d", + "rev": "b87a5c6f09e2c64b53dc3b19a42e7ef9352ec360", "type": "gitlab" }, "original": { @@ -190,9 +132,7 @@ }, "flake-parts": { "inputs": { - "nixpkgs-lib": [ - "nixpkgs" - ] + "nixpkgs-lib": "nixpkgs-lib" }, "locked": { "lastModified": 1727826117, @@ -209,70 +149,9 @@ } }, "flake-parts_2": { - "inputs": { - "nixpkgs-lib": [ - "nixarr", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1726153070, - "narHash": "sha256-HO4zgY0ekfwO5bX0QH/3kJ/h4KvUDFZg8YpkNwIbg1U=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "bcef6817a8b2aa20a5a6dbb19b43e63c5bf8619a", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_3": { - "inputs": { - "nixpkgs-lib": [ - "nixarr", - "vpnconfinement", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1717285511, - "narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_4": { "inputs": { "nixpkgs-lib": "nixpkgs-lib_2" }, - "locked": { - "lastModified": 1727826117, - "narHash": "sha256-K5ZLCyfO/Zj9mPFldf3iwS6oZStJcU4tSpiXTMYaaL0=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "3d04084d54bedc3d6b8b736c70ef449225c361b1", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_5": { - "inputs": { - "nixpkgs-lib": "nixpkgs-lib_3" - }, "locked": { "lastModified": 1715865404, "narHash": "sha256-/GJvTdTpuDjNn84j82cU6bXztE0MSkdnTWClUCRub78=", @@ -287,21 +166,6 @@ "type": "github" } }, - "flake-root": { - "locked": { - "lastModified": 1723604017, - "narHash": "sha256-rBtQ8gg+Dn4Sx/s+pvjdq3CB2wQNzx9XGFq/JVGCB6k=", - "owner": "srid", - "repo": "flake-root", - "rev": "b759a56851e10cb13f6b8e5698af7b59c44be26e", - "type": "github" - }, - "original": { - "owner": "srid", - "repo": "flake-root", - "type": "github" - } - }, "flake-utils": { "locked": { "lastModified": 1629284811, @@ -319,14 +183,14 @@ }, "flake-utils_2": { "inputs": { - "systems": "systems_2" + "systems": "systems_3" }, "locked": { - "lastModified": 1709126324, - "narHash": "sha256-q6EQdSeUZOG26WelxqkmR7kArjgWCdw5sfJVHPH/7j8=", + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "d465f4819400de7c8d874d50b982301f28a84605", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "type": "github" }, "original": { @@ -337,43 +201,7 @@ }, "flake-utils_3": { "inputs": { - "systems": "systems_7" - }, - "locked": { - "lastModified": 1710146030, - "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_4": { - "inputs": { - "systems": "systems_8" - }, - "locked": { - "lastModified": 1710146030, - "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_5": { - "inputs": { - "systems": "systems_13" + "systems": "systems_6" }, "locked": { "lastModified": 1726560853, @@ -411,29 +239,6 @@ "type": "github" } }, - "helix": { - "inputs": { - "crane": "crane", - "flake-utils": "flake-utils_2", - "nixpkgs": [ - "nixpkgs-small" - ], - "rust-overlay": "rust-overlay" - }, - "locked": { - "lastModified": 1728372216, - "narHash": "sha256-amGNilpQ/vohlgerF/5D4QNsXCRbh2H06nmWyz/xyS8=", - "owner": "helix-editor", - "repo": "helix", - "rev": "761f70d61179f38152e76c1f224589a53b62d00f", - "type": "github" - }, - "original": { - "owner": "helix-editor", - "repo": "helix", - "type": "github" - } - }, "home-manager": { "inputs": { "nixpkgs": [ @@ -462,29 +267,11 @@ ] }, "locked": { - "lastModified": 1728337164, - "narHash": "sha256-VdRTjJFyq4Q9U7Z/UoC2Q5jK8vSo6E86lHc2OanXtvc=", + "lastModified": 1729321331, + "narHash": "sha256-KVyQq+ez/oB30/WbdNgVD8g/bda34z8NiU187QKQb74=", "owner": "nix-community", "repo": "home-manager", - "rev": "038630363e7de57c36c417fd2f5d7c14773403e4", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "home-manager", - "type": "github" - } - }, - "home-manager_3": { - "inputs": { - "nixpkgs": "nixpkgs_10" - }, - "locked": { - "lastModified": 1728791962, - "narHash": "sha256-nr5QiXwQcZmf6/auC1UpX8iAtINMtdi2mH+OkqJQVmU=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "64c6325b28ebd708653dd41d88f306023f296184", + "rev": "122f70545b29ccb922e655b08acfe05bfb44ec68", "type": "github" }, "original": { @@ -509,11 +296,11 @@ ] }, "locked": { - "lastModified": 1727821604, - "narHash": "sha256-hNw5J6xatedqytYowx0mJKgctjA4lQARZFdgnzM2RpM=", + "lastModified": 1728669738, + "narHash": "sha256-EDNAU9AYcx8OupUzbTbWE1d3HYdeG0wO6Msg3iL1muk=", "owner": "hyprwm", "repo": "hyprcursor", - "rev": "d60e1e01e6e6633ef1c87148b9137cc1dd39263d", + "rev": "0264e698149fcb857a66a53018157b41f8d97bb0", "type": "github" }, "original": { @@ -524,17 +311,29 @@ }, "hypridle": { "inputs": { - "hyprlang": "hyprlang", - "hyprutils": "hyprutils", - "nixpkgs": "nixpkgs_2", - "systems": "systems_3" + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] }, "locked": { - "lastModified": 1727257269, - "narHash": "sha256-b/j875k6RrxQLtbW+NCLw7NLToMd9KDYywjtUoihpq4=", + "lastModified": 1729534085, + "narHash": "sha256-4EgQyprji92cmhGaQQsw6eN6cmEkQKs0+MeD7YLgHlg=", "owner": "hyprwm", "repo": "hypridle", - "rev": "cc23f97836adbba1abc8edd48169fb1f1f698c32", + "rev": "918fd78dec258923094ecddc4e317c5b29ec2486", "type": "github" }, "original": { @@ -548,40 +347,41 @@ "aquamarine": "aquamarine", "hyprcursor": "hyprcursor", "hyprland-protocols": "hyprland-protocols", - "hyprlang": "hyprlang_2", - "hyprutils": "hyprutils_2", + "hyprlang": "hyprlang", + "hyprutils": "hyprutils", "hyprwayland-scanner": "hyprwayland-scanner", - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_2", "pre-commit-hooks": "pre-commit-hooks", - "systems": "systems_4", + "systems": "systems_2", "xdph": "xdph" }, "locked": { - "lastModified": 1728467929, - "narHash": "sha256-lqUWXwhO2jpbi1lDFXnEwUzE/c8C8TOE7UNObI+qqxM=", - "ref": "refs/heads/main", - "rev": "6ae89940c761d4ed4317df0af29e8df41d472091", - "revCount": 5323, - "submodules": true, - "type": "git", - "url": "https://github.com/hyprwm/Hyprland" + "lastModified": 1729553322, + "narHash": "sha256-CjdhWsojvgZEr2t8eK6HaaWmLxirnaEckeXt/kveQNs=", + "owner": "hyprwm", + "repo": "hyprland", + "rev": "5e96d738e698f22969ca502d042d5751711c6d8a", + "type": "github" }, "original": { - "submodules": true, - "type": "git", - "url": "https://github.com/hyprwm/Hyprland" + "owner": "hyprwm", + "repo": "hyprland", + "type": "github" } }, "hyprland-contrib": { "inputs": { - "nixpkgs": "nixpkgs_4" + "nixpkgs": [ + "hyprland", + "nixpkgs" + ] }, "locked": { - "lastModified": 1725551787, - "narHash": "sha256-6LgsZHz8w3g4c9bRUwRAR+WIMwFGGf3P1VZQcKNRf2o=", + "lastModified": 1729224425, + "narHash": "sha256-w9dNUedNe2qnhHuhcRf7A1l29+/6DxdMfwN6g4U3c/w=", "owner": "hyprwm", "repo": "contrib", - "rev": "1e531dc49ad36c88b45bf836081a7a2c8927e072", + "rev": "d72bc8b1cd30d448bd438e8328f8eeb4c0f2ddb6", "type": "github" }, "original": { @@ -590,6 +390,36 @@ "type": "github" } }, + "hyprland-plugins": { + "inputs": { + "hyprland": [ + "hyprland" + ], + "nixpkgs": [ + "hyprland-plugins", + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland-plugins", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1729534626, + "narHash": "sha256-Qb0PiZuQFH68Kb21ZT3Se1gUUohsfmaBzuBYy7OOM90=", + "owner": "hyprwm", + "repo": "hyprland-plugins", + "rev": "082d5c1007b601eccdc882d42530ecb468a40142", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-plugins", + "type": "github" + } + }, "hyprland-protocols": { "inputs": { "nixpkgs": [ @@ -615,61 +445,7 @@ "type": "github" } }, - "hyprland-protocols_2": { - "inputs": { - "nixpkgs": [ - "xdg-portal-hyprland", - "nixpkgs" - ], - "systems": [ - "xdg-portal-hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1721326555, - "narHash": "sha256-zCu4R0CSHEactW9JqYki26gy8h9f6rHmSwj4XJmlHgg=", - "owner": "hyprwm", - "repo": "hyprland-protocols", - "rev": "5a11232266bf1a1f5952d5b179c3f4b2facaaa84", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprland-protocols", - "type": "github" - } - }, "hyprlang": { - "inputs": { - "hyprutils": [ - "hypridle", - "hyprutils" - ], - "nixpkgs": [ - "hypridle", - "nixpkgs" - ], - "systems": [ - "hypridle", - "systems" - ] - }, - "locked": { - "lastModified": 1721324361, - "narHash": "sha256-BiJKO0IIdnSwHQBSrEJlKlFr753urkLE48wtt0UhNG4=", - "owner": "hyprwm", - "repo": "hyprlang", - "rev": "adbefbf49664a6c2c8bf36b6487fd31e3eb68086", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprlang", - "type": "github" - } - }, - "hyprlang_2": { "inputs": { "hyprutils": [ "hyprland", @@ -698,103 +474,31 @@ "type": "github" } }, - "hyprlang_3": { - "inputs": { - "hyprutils": [ - "hyprlock", - "hyprutils" - ], - "nixpkgs": [ - "hyprlock", - "nixpkgs" - ], - "systems": [ - "hyprlock", - "systems" - ] - }, - "locked": { - "lastModified": 1721324361, - "narHash": "sha256-BiJKO0IIdnSwHQBSrEJlKlFr753urkLE48wtt0UhNG4=", - "owner": "hyprwm", - "repo": "hyprlang", - "rev": "adbefbf49664a6c2c8bf36b6487fd31e3eb68086", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprlang", - "type": "github" - } - }, - "hyprlang_4": { - "inputs": { - "hyprutils": [ - "hyprpaper", - "hyprutils" - ], - "nixpkgs": [ - "hyprpaper", - "nixpkgs" - ], - "systems": [ - "hyprpaper", - "systems" - ] - }, - "locked": { - "lastModified": 1725188252, - "narHash": "sha256-yBH8c4GDaEAtBrh+BqIlrx5vp6gG/Gu8fQQK63KAQgs=", - "owner": "hyprwm", - "repo": "hyprlang", - "rev": "c12ab785ce1982f82594aff03b3104c598186ddd", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprlang", - "type": "github" - } - }, - "hyprlang_5": { - "inputs": { - "hyprutils": "hyprutils_5", - "nixpkgs": [ - "xdg-portal-hyprland", - "nixpkgs" - ], - "systems": [ - "xdg-portal-hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1725997860, - "narHash": "sha256-d/rZ/fHR5l1n7PeyLw0StWMNLXVU9c4HFyfskw568so=", - "owner": "hyprwm", - "repo": "hyprlang", - "rev": "dfeb5811dd6485490cce18d6cc1e38a055eea876", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprlang", - "type": "github" - } - }, "hyprlock": { "inputs": { - "hyprlang": "hyprlang_3", - "hyprutils": "hyprutils_3", - "nixpkgs": "nixpkgs_5", - "systems": "systems_5" + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] }, "locked": { - "lastModified": 1728135019, - "narHash": "sha256-OCUyEfD9g5232OILgW+BpjFVPM8AHl2WM59yRabJvSE=", + "lastModified": 1729555766, + "narHash": "sha256-sUIsjWpZLplSJXWyJcDZdvDweksXLH5r9GSkwg0kgBw=", "owner": "hyprwm", "repo": "hyprlock", - "rev": "eb63207ef051c62fa2ab010b3f89da263a397329", + "rev": "a093a9eefda2db2430dd1612b2858a55daf14738", "type": "github" }, "original": { @@ -805,11 +509,23 @@ }, "hyprpaper": { "inputs": { - "hyprlang": "hyprlang_4", - "hyprutils": "hyprutils_4", + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "hyprutils": [ + "hyprland", + "hyprutils" + ], "hyprwayland-scanner": "hyprwayland-scanner_2", - "nixpkgs": "nixpkgs_6", - "systems": "systems_6" + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] }, "locked": { "lastModified": 1725200438, @@ -826,31 +542,6 @@ } }, "hyprutils": { - "inputs": { - "nixpkgs": [ - "hypridle", - "nixpkgs" - ], - "systems": [ - "hypridle", - "systems" - ] - }, - "locked": { - "lastModified": 1721324102, - "narHash": "sha256-WAZ0X6yJW1hFG6otkHBfyJDKRpNP5stsRqdEuHrFRpk=", - "owner": "hyprwm", - "repo": "hyprutils", - "rev": "962582a090bc233c4de9d9897f46794280288989", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprutils", - "type": "github" - } - }, - "hyprutils_2": { "inputs": { "nixpkgs": [ "hyprland", @@ -862,113 +553,11 @@ ] }, "locked": { - "lastModified": 1727300645, - "narHash": "sha256-OvAtVLaSRPnbXzOwlR1fVqCXR7i+ICRX3aPMCdIiv+c=", + "lastModified": 1728941256, + "narHash": "sha256-WRypmcZ2Bw94lLmcmxYokVOHPJSZ7T06V49QZ4tkZeQ=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "3f5293432b6dc6a99f26aca2eba3876d2660665c", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprutils", - "type": "github" - } - }, - "hyprutils_3": { - "inputs": { - "nixpkgs": [ - "hyprlock", - "nixpkgs" - ], - "systems": [ - "hyprlock", - "systems" - ] - }, - "locked": { - "lastModified": 1721324102, - "narHash": "sha256-WAZ0X6yJW1hFG6otkHBfyJDKRpNP5stsRqdEuHrFRpk=", - "owner": "hyprwm", - "repo": "hyprutils", - "rev": "962582a090bc233c4de9d9897f46794280288989", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprutils", - "type": "github" - } - }, - "hyprutils_4": { - "inputs": { - "nixpkgs": [ - "hyprpaper", - "nixpkgs" - ], - "systems": [ - "hyprpaper", - "systems" - ] - }, - "locked": { - "lastModified": 1724966483, - "narHash": "sha256-WXDgKIbzjYKczxSZOsJplCS1i1yrTUpsDPuJV/xpYLo=", - "owner": "hyprwm", - "repo": "hyprutils", - "rev": "8976e3f6a5357da953a09511d0c7f6a890fb6ec2", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprutils", - "type": "github" - } - }, - "hyprutils_5": { - "inputs": { - "nixpkgs": [ - "xdg-portal-hyprland", - "hyprlang", - "nixpkgs" - ], - "systems": [ - "xdg-portal-hyprland", - "hyprlang", - "systems" - ] - }, - "locked": { - "lastModified": 1721324102, - "narHash": "sha256-WAZ0X6yJW1hFG6otkHBfyJDKRpNP5stsRqdEuHrFRpk=", - "owner": "hyprwm", - "repo": "hyprutils", - "rev": "962582a090bc233c4de9d9897f46794280288989", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprutils", - "type": "github" - } - }, - "hyprutils_6": { - "inputs": { - "nixpkgs": [ - "xdg-portal-hyprland", - "nixpkgs" - ], - "systems": [ - "xdg-portal-hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1724966483, - "narHash": "sha256-WXDgKIbzjYKczxSZOsJplCS1i1yrTUpsDPuJV/xpYLo=", - "owner": "hyprwm", - "repo": "hyprutils", - "rev": "8976e3f6a5357da953a09511d0c7f6a890fb6ec2", + "rev": "fd4be8b9ca932f7384e454bcd923c5451ef2aa85", "type": "github" }, "original": { @@ -1027,31 +616,6 @@ "type": "github" } }, - "hyprwayland-scanner_3": { - "inputs": { - "nixpkgs": [ - "xdg-portal-hyprland", - "nixpkgs" - ], - "systems": [ - "xdg-portal-hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1726840673, - "narHash": "sha256-HIPEXyRRVZoqD6U+lFS1B0tsIU7p83FaB9m7KT/x6mQ=", - "owner": "hyprwm", - "repo": "hyprwayland-scanner", - "rev": "b68dab23fc922eae99306988133ee80a40b39ca5", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprwayland-scanner", - "type": "github" - } - }, "mnw": { "locked": { "lastModified": 1726188505, @@ -1070,7 +634,6 @@ "naersk": { "inputs": { "nixpkgs": [ - "ooks-vim", "nvf", "rnix-lsp", "nixpkgs" @@ -1090,61 +653,17 @@ "type": "github" } }, - "nh": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1728371783, - "narHash": "sha256-ufI7115ims2PPxggpWQhigAUrwlwu155wVgngZzzyZ0=", - "owner": "viperML", - "repo": "nh", - "rev": "afdff9ab4fdb9c329b5d97c5b742242b97f8754d", - "type": "github" - }, - "original": { - "owner": "viperML", - "repo": "nh", - "type": "github" - } - }, "nil": { - "inputs": { - "flake-utils": "flake-utils_3", - "nixpkgs": [ - "nixpkgs-small" - ], - "rust-overlay": "rust-overlay_2" - }, - "locked": { - "lastModified": 1726716330, - "narHash": "sha256-mIuOP4I51eFLquRaxMKx67pHmhatZrcVPjfHL98v/M8=", - "owner": "oxalica", - "repo": "nil", - "rev": "c8e8ce72442a164d89d3fdeaae0bcc405f8c015a", - "type": "github" - }, - "original": { - "owner": "oxalica", - "repo": "nil", - "type": "github" - } - }, - "nil_2": { "inputs": { "flake-utils": [ - "ooks-vim", "nvf", "flake-utils" ], "nixpkgs": [ - "ooks-vim", "nvf", "nixpkgs" ], - "rust-overlay": "rust-overlay_4" + "rust-overlay": "rust-overlay" }, "locked": { "lastModified": 1714571717, @@ -1160,48 +679,6 @@ "type": "github" } }, - "nix-colors": { - "inputs": { - "base16-schemes": "base16-schemes", - "nixpkgs-lib": "nixpkgs-lib" - }, - "locked": { - "lastModified": 1707825078, - "narHash": "sha256-hTfge2J2W+42SZ7VHXkf4kjU+qzFqPeC9k66jAUBMHk=", - "owner": "misterio77", - "repo": "nix-colors", - "rev": "b01f024090d2c4fc3152cd0cf12027a7b8453ba1", - "type": "github" - }, - "original": { - "owner": "misterio77", - "repo": "nix-colors", - "type": "github" - } - }, - "nix-formatter-pack": { - "inputs": { - "nixpkgs": [ - "nix-on-droid", - "nixpkgs" - ], - "nmd": "nmd", - "nmt": "nmt" - }, - "locked": { - "lastModified": 1705252799, - "narHash": "sha256-HgSTREh7VoXjGgNDwKQUYcYo13rPkltW7IitHrTPA5c=", - "owner": "Gerschtli", - "repo": "nix-formatter-pack", - "rev": "2de39dedd79aab14c01b9e2934842051a160ffa5", - "type": "github" - }, - "original": { - "owner": "Gerschtli", - "repo": "nix-formatter-pack", - "type": "github" - } - }, "nix-index-db": { "inputs": { "nixpkgs": [ @@ -1209,11 +686,11 @@ ] }, "locked": { - "lastModified": 1728263287, - "narHash": "sha256-GJDtsxz2/zw6g/Nrp4XVWBS5IaZ7ZUkuvxPOBEDe7pg=", + "lastModified": 1729394935, + "narHash": "sha256-2ntUG+NJKdfhlrh/tF+jOU0fOesO7lm5ZZVSYitsvH8=", "owner": "nix-community", "repo": "nix-index-database", - "rev": "5fce10c871bab6d7d5ac9e5e7efbb3a2783f5259", + "rev": "04f8a11f247ba00263b060fbcdc95484fd046104", "type": "github" }, "original": { @@ -1222,58 +699,6 @@ "type": "github" } }, - "nix-on-droid": { - "inputs": { - "home-manager": [ - "home-manager" - ], - "nix-formatter-pack": "nix-formatter-pack", - "nixpkgs": [ - "nixpkgs" - ], - "nixpkgs-docs": "nixpkgs-docs", - "nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap", - "nmd": "nmd_2" - }, - "locked": { - "lastModified": 1709879753, - "narHash": "sha256-zEpy3eweBus/cW/oRMBINps6Bnlazpa7TadonwWibHA=", - "owner": "nix-community", - "repo": "nix-on-droid", - "rev": "7b3cc6e3f9919b2d23003cfafb60c146c3f45793", - "type": "github" - }, - "original": { - "owner": "nix-community", - "ref": "release-23.11", - "repo": "nix-on-droid", - "type": "github" - } - }, - "nixarr": { - "inputs": { - "devshell": "devshell", - "flake-parts": "flake-parts_2", - "flake-root": "flake-root", - "nixpkgs": "nixpkgs_7", - "submerger": "submerger", - "treefmt-nix": "treefmt-nix", - "vpnconfinement": "vpnconfinement" - }, - "locked": { - "lastModified": 1726847117, - "narHash": "sha256-fBxizpL5SJIgzh5mIeUWghHr5437jUc+BLu8dOwnDZo=", - "owner": "rasmus-kirk", - "repo": "nixarr", - "rev": "a3fad60dd2f5110536eb13f24e7529b2506ade6d", - "type": "github" - }, - "original": { - "owner": "rasmus-kirk", - "repo": "nixarr", - "type": "github" - } - }, "nixpkgs": { "locked": { "lastModified": 1703013332, @@ -1290,54 +715,7 @@ "type": "github" } }, - "nixpkgs-docs": { - "locked": { - "lastModified": 1705957679, - "narHash": "sha256-Q8LJaVZGJ9wo33wBafvZSzapYsjOaNjP/pOnSiKVGHY=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "9a333eaa80901efe01df07eade2c16d183761fa3", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-for-bootstrap": { - "locked": { - "lastModified": 1708105575, - "narHash": "sha256-sS4AItZeUnAei6v8FqxNlm+/27MPlfoGym/TZP0rmH0=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "1d1817869c47682a6bee85b5b0a6537b6c0fba26", - "type": "github" - }, - "original": { - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "1d1817869c47682a6bee85b5b0a6537b6c0fba26", - "type": "github" - } - }, "nixpkgs-lib": { - "locked": { - "lastModified": 1697935651, - "narHash": "sha256-qOfWjQ2JQSQL15KLh6D7xQhx0qgZlYZTYlcEiRuAMMw=", - "owner": "nix-community", - "repo": "nixpkgs.lib", - "rev": "e1e11fdbb01113d85c7f41cada9d2847660e3902", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixpkgs.lib", - "type": "github" - } - }, - "nixpkgs-lib_2": { "locked": { "lastModified": 1727825735, "narHash": "sha256-0xHYkMkeLVQAMa7gvkddbPqpxph+hDzdu1XdGPJR+Os=", @@ -1349,7 +727,7 @@ "url": "https://github.com/NixOS/nixpkgs/archive/fb192fec7cc7a4c26d51779e9bab07ce6fa5597a.tar.gz" } }, - "nixpkgs-lib_3": { + "nixpkgs-lib_2": { "locked": { "lastModified": 1714640452, "narHash": "sha256-QBx10+k6JWz6u7VsohfSw8g8hjdBZEf8CFzXH1/1Z94=", @@ -1361,22 +739,6 @@ "url": "https://github.com/NixOS/nixpkgs/archive/50eb7ecf4cd0a5756d7275c8ba36790e5bd53e33.tar.gz" } }, - "nixpkgs-small": { - "locked": { - "lastModified": 1728441728, - "narHash": "sha256-AagfCcvaiWXmSCB00ukTLvKEziK+kMtY5pLa4oUAPK8=", - "owner": "Nixos", - "repo": "nixpkgs", - "rev": "358723c0294d406f54c5d5c0736637f20552ee53", - "type": "github" - }, - "original": { - "owner": "Nixos", - "ref": "nixos-unstable-small", - "repo": "nixpkgs", - "type": "github" - } - }, "nixpkgs-stable": { "locked": { "lastModified": 1720386169, @@ -1393,13 +755,13 @@ "type": "github" } }, - "nixpkgs_10": { + "nixpkgs_2": { "locked": { - "lastModified": 1728492678, - "narHash": "sha256-9UTxR8eukdg+XZeHgxW5hQA9fIKHsKCdOIUycTryeVw=", + "lastModified": 1728888510, + "narHash": "sha256-nsNdSldaAyu6PE3YUA+YQLqUDJh+gRbBooMMekZJwvI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "rev": "a3c0b3b21515f74fd2665903d4ce6bc4dc81c77c", "type": "github" }, "original": { @@ -1409,23 +771,23 @@ "type": "github" } }, - "nixpkgs_11": { + "nixpkgs_3": { "locked": { - "lastModified": 1728492678, - "narHash": "sha256-9UTxR8eukdg+XZeHgxW5hQA9fIKHsKCdOIUycTryeVw=", - "owner": "nixos", + "lastModified": 1729256560, + "narHash": "sha256-/uilDXvCIEs3C9l73JTACm4quuHUsIHcns1c+cHUJwA=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "rev": "4c2fcb090b1f3e5b47eaa7bd33913b574a11e0a0", "type": "github" }, "original": { - "owner": "nixos", + "owner": "NixOS", "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_12": { + "nixpkgs_4": { "locked": { "lastModified": 1726871744, "narHash": "sha256-V5LpfdHyQkUF7RfOaDPrZDP+oqz88lTJrMT1+stXNwo=", @@ -1441,7 +803,7 @@ "type": "github" } }, - "nixpkgs_13": { + "nixpkgs_5": { "locked": { "lastModified": 1656753965, "narHash": "sha256-BCrB3l0qpJokOnIVc3g2lHiGhnjUi0MoXiw6t1o8H1E=", @@ -1457,23 +819,7 @@ "type": "github" } }, - "nixpkgs_14": { - "locked": { - "lastModified": 1726463316, - "narHash": "sha256-gI9kkaH0ZjakJOKrdjaI/VbaMEo9qBbSUl93DnU7f4c=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "99dc8785f6a0adac95f5e2ab05cc2e1bf666d172", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_15": { + "nixpkgs_6": { "locked": { "lastModified": 1728061008, "narHash": "sha256-qjyJDtwmJckqDyXHmBIiN04kzby/TX/kPYmclBXlROA=", @@ -1489,158 +835,8 @@ "type": "github" } }, - "nixpkgs_2": { - "locked": { - "lastModified": 1721138476, - "narHash": "sha256-+W5eZOhhemLQxelojLxETfbFbc19NWawsXBlapYpqIA=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "ad0b5eed1b6031efaed382844806550c3dcb4206", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_3": { - "locked": { - "lastModified": 1728018373, - "narHash": "sha256-NOiTvBbRLIOe5F6RbHaAh6++BNjsb149fGZd1T4+KBg=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "bc947f541ae55e999ffdb4013441347d83b00feb", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_4": { - "locked": { - "lastModified": 1712163089, - "narHash": "sha256-Um+8kTIrC19vD4/lUCN9/cU9kcOsD1O1m+axJqQPyMM=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "fd281bd6b7d3e32ddfa399853946f782553163b5", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_5": { - "locked": { - "lastModified": 1721138476, - "narHash": "sha256-+W5eZOhhemLQxelojLxETfbFbc19NWawsXBlapYpqIA=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "ad0b5eed1b6031efaed382844806550c3dcb4206", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_6": { - "locked": { - "lastModified": 1725103162, - "narHash": "sha256-Ym04C5+qovuQDYL/rKWSR+WESseQBbNAe5DsXNx5trY=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "12228ff1752d7b7624a54e9c1af4b222b3c1073b", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_7": { - "locked": { - "lastModified": 1726583932, - "narHash": "sha256-zACxiQx8knB3F8+Ze+1BpiYrI+CbhxyWpcSID9kVhkQ=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "658e7223191d2598641d50ee4e898126768fe847", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_8": { - "locked": { - "lastModified": 1728241625, - "narHash": "sha256-yumd4fBc/hi8a9QgA9IT8vlQuLZ2oqhkJXHPKxH/tRw=", - "owner": "Nixos", - "repo": "nixpkgs", - "rev": "c31898adf5a8ed202ce5bea9f347b1c6871f32d1", - "type": "github" - }, - "original": { - "owner": "Nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_9": { - "locked": { - "lastModified": 1718318537, - "narHash": "sha256-4Zu0RYRcAY/VWuu6awwq4opuiD//ahpc2aFHg2CWqFY=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "e9ee548d90ff586a6471b4ae80ae9cfcbceb3420", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "nmd": { "flake": false, - "locked": { - "lastModified": 1666190571, - "narHash": "sha256-Z1hc7M9X6L+H83o9vOprijpzhTfOBjd0KmUTnpHAVjA=", - "owner": "rycee", - "repo": "nmd", - "rev": "b75d312b4f33bd3294cd8ae5c2ca8c6da2afc169", - "type": "gitlab" - }, - "original": { - "owner": "rycee", - "repo": "nmd", - "type": "gitlab" - } - }, - "nmd_2": { - "inputs": { - "nixpkgs": [ - "nix-on-droid", - "nixpkgs-docs" - ], - "scss-reset": "scss-reset" - }, "locked": { "lastModified": 1705050560, "narHash": "sha256-x3zzcdvhJpodsmdjqB4t5mkVW22V3wqHLOun0KRBzUI=", @@ -1655,46 +851,14 @@ "type": "sourcehut" } }, - "nmd_3": { - "flake": false, - "locked": { - "lastModified": 1705050560, - "narHash": "sha256-x3zzcdvhJpodsmdjqB4t5mkVW22V3wqHLOun0KRBzUI=", - "owner": "~rycee", - "repo": "nmd", - "rev": "66d9334933119c36f91a78d565c152a4fdc8d3d3", - "type": "sourcehut" - }, - "original": { - "owner": "~rycee", - "repo": "nmd", - "type": "sourcehut" - } - }, - "nmt": { - "flake": false, - "locked": { - "lastModified": 1648075362, - "narHash": "sha256-u36WgzoA84dMVsGXzml4wZ5ckGgfnvS0ryzo/3zn/Pc=", - "owner": "rycee", - "repo": "nmt", - "rev": "d83601002c99b78c89ea80e5e6ba21addcfe12ae", - "type": "gitlab" - }, - "original": { - "owner": "rycee", - "repo": "nmt", - "type": "gitlab" - } - }, "nvf": { "inputs": { - "flake-parts": "flake-parts_5", - "flake-utils": "flake-utils_4", + "flake-parts": "flake-parts_2", + "flake-utils": "flake-utils_2", "mnw": "mnw", - "nil": "nil_2", - "nixpkgs": "nixpkgs_12", - "nmd": "nmd_3", + "nil": "nil", + "nixpkgs": "nixpkgs_4", + "nmd": "nmd", "plugin-alpha-nvim": "plugin-alpha-nvim", "plugin-base16": "plugin-base16", "plugin-bufdelete-nvim": "plugin-bufdelete-nvim", @@ -1737,6 +901,7 @@ "plugin-lsp-signature": "plugin-lsp-signature", "plugin-lspkind": "plugin-lspkind", "plugin-lspsaga": "plugin-lspsaga", + "plugin-lua-utils-nvim": "plugin-lua-utils-nvim", "plugin-lualine": "plugin-lualine", "plugin-luasnip": "plugin-luasnip", "plugin-mind-nvim": "plugin-mind-nvim", @@ -1745,6 +910,8 @@ "plugin-neo-tree-nvim": "plugin-neo-tree-nvim", "plugin-neocord": "plugin-neocord", "plugin-neodev-nvim": "plugin-neodev-nvim", + "plugin-neorg": "plugin-neorg", + "plugin-neorg-telescope": "plugin-neorg-telescope", "plugin-new-file-template-nvim": "plugin-new-file-template-nvim", "plugin-noice-nvim": "plugin-noice-nvim", "plugin-none-ls": "plugin-none-ls", @@ -1777,6 +944,7 @@ "plugin-orgmode-nvim": "plugin-orgmode-nvim", "plugin-otter-nvim": "plugin-otter-nvim", "plugin-oxocarbon": "plugin-oxocarbon", + "plugin-pathlib-nvim": "plugin-pathlib-nvim", "plugin-plenary-nvim": "plugin-plenary-nvim", "plugin-project-nvim": "plugin-project-nvim", "plugin-registers": "plugin-registers", @@ -1800,14 +968,14 @@ "plugin-vim-startify": "plugin-vim-startify", "plugin-which-key": "plugin-which-key", "rnix-lsp": "rnix-lsp", - "systems": "systems_9" + "systems": "systems_4" }, "locked": { - "lastModified": 1728704613, - "narHash": "sha256-6WYwAty/tM0lDrPMiP0ktYucWlKnAIrLSfbk3iH9rUM=", + "lastModified": 1729633458, + "narHash": "sha256-5iZwH9lnFo/g3sQ2Zslbl2dbVRpysO02bi7uSOpyL3U=", "owner": "notashelf", "repo": "nvf", - "rev": "caaacbf59c2d7514fc0d633f623ad55e005d1096", + "rev": "71e2ae1db492b2c9e27ae53521a50dfbf426dc06", "type": "github" }, "original": { @@ -1819,7 +987,9 @@ }, "ooks-scripts": { "inputs": { - "nixpkgs": "nixpkgs_9" + "nixpkgs": [ + "nixpkgs" + ] }, "locked": { "lastModified": 1718496814, @@ -1835,28 +1005,6 @@ "url": "ssh://git@github.com/ooks-io/scripts" } }, - "ooks-vim": { - "inputs": { - "flake-parts": "flake-parts_4", - "home-manager": "home-manager_3", - "nixpkgs": "nixpkgs_11", - "nvf": "nvf", - "systems": "systems_10" - }, - "locked": { - "lastModified": 1728903927, - "narHash": "sha256-dWvfKZVFXNwtGiqVauCBlCc19VZaEBdvBcSi6huWrL4=", - "ref": "refs/heads/master", - "rev": "72812fc29d8b2351cc62d793495aa467e03b7b93", - "revCount": 25, - "type": "git", - "url": "ssh://git@github.com/ooks-io/ooks-vim" - }, - "original": { - "type": "git", - "url": "ssh://git@github.com/ooks-io/ooks-vim" - } - }, "plugin-alpha-nvim": { "flake": false, "locked": { @@ -2529,6 +1677,22 @@ "type": "github" } }, + "plugin-lua-utils-nvim": { + "flake": false, + "locked": { + "lastModified": 1708177208, + "narHash": "sha256-9ildzQEMkXKZ3LHq+khGFgRQFxlIXQclQ7QU3fcU1C4=", + "owner": "nvim-neorg", + "repo": "lua-utils.nvim", + "rev": "e565749421f4bbb5d2e85e37c3cef9d56553d8bd", + "type": "github" + }, + "original": { + "owner": "nvim-neorg", + "repo": "lua-utils.nvim", + "type": "github" + } + }, "plugin-lualine": { "flake": false, "locked": { @@ -2657,6 +1821,38 @@ "type": "github" } }, + "plugin-neorg": { + "flake": false, + "locked": { + "lastModified": 1727821831, + "narHash": "sha256-yfWQ6yKytu1jkWUtRZTVICslUWej6jVYv7frmSB7/6Q=", + "owner": "nvim-neorg", + "repo": "neorg", + "rev": "afc9a37bf021acb0853e95714c4c6436e1588286", + "type": "github" + }, + "original": { + "owner": "nvim-neorg", + "repo": "neorg", + "type": "github" + } + }, + "plugin-neorg-telescope": { + "flake": false, + "locked": { + "lastModified": 1722358034, + "narHash": "sha256-ei4uUqpIQjGKzu5ryu0Hlmis9TS9FJsYnjt4J4QdWlw=", + "owner": "nvim-neorg", + "repo": "neorg-telescope", + "rev": "ddb2556644cae922699a239bbb0fe16e25b084b7", + "type": "github" + }, + "original": { + "owner": "nvim-neorg", + "repo": "neorg-telescope", + "type": "github" + } + }, "plugin-new-file-template-nvim": { "flake": false, "locked": { @@ -3170,6 +2366,22 @@ "type": "github" } }, + "plugin-pathlib-nvim": { + "flake": false, + "locked": { + "lastModified": 1724943804, + "narHash": "sha256-YhCJeNKlcjgg3q51UWFhuIEPzNueC8YTpeuPPJDndvw=", + "owner": "pysan3", + "repo": "pathlib.nvim", + "rev": "57e5598af6fe253761c1b48e0b59b7cd6699e2c1", + "type": "github" + }, + "original": { + "owner": "pysan3", + "repo": "pathlib.nvim", + "type": "github" + } + }, "plugin-plenary-nvim": { "flake": false, "locked": { @@ -3533,11 +2745,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1728092656, - "narHash": "sha256-eMeCTJZ5xBeQ0f9Os7K8DThNVSo9gy4umZLDfF5q6OM=", + "lastModified": 1728778939, + "narHash": "sha256-WybK5E3hpGxtCYtBwpRj1E9JoiVxe+8kX83snTNaFHE=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "1211305a5b237771e13fcca0c51e60ad47326a9a", + "rev": "ff68f91754be6f3427e4986d7949e6273659be1d", "type": "github" }, "original": { @@ -3549,7 +2761,7 @@ "rnix-lsp": { "inputs": { "naersk": "naersk", - "nixpkgs": "nixpkgs_13", + "nixpkgs": "nixpkgs_5", "utils": "utils" }, "locked": { @@ -3571,106 +2783,29 @@ "agenix": "agenix", "firefox-addons": "firefox-addons", "flake-parts": "flake-parts", - "helix": "helix", "home-manager": "home-manager_2", "hypridle": "hypridle", "hyprland": "hyprland", "hyprland-contrib": "hyprland-contrib", + "hyprland-plugins": "hyprland-plugins", "hyprlock": "hyprlock", "hyprpaper": "hyprpaper", - "nh": "nh", - "nil": "nil", - "nix-colors": "nix-colors", "nix-index-db": "nix-index-db", - "nix-on-droid": "nix-on-droid", - "nixarr": "nixarr", - "nixpkgs": "nixpkgs_8", - "nixpkgs-small": "nixpkgs-small", + "nixpkgs": "nixpkgs_3", + "nvf": "nvf", "ooks-scripts": "ooks-scripts", - "ooks-vim": "ooks-vim", - "systems": "systems_11", - "xdg-portal-hyprland": "xdg-portal-hyprland", + "systems": "systems_5", "zjstatus": "zjstatus" } }, "rust-overlay": { "inputs": { "flake-utils": [ - "helix", - "flake-utils" - ], - "nixpkgs": [ - "helix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1709604635, - "narHash": "sha256-le4fwmWmjGRYWwkho0Gr7mnnZndOOe4XGbLw68OvF40=", - "owner": "oxalica", - "repo": "rust-overlay", - "rev": "e86c0fb5d3a22a5f30d7f64ecad88643fe26449d", - "type": "github" - }, - "original": { - "owner": "oxalica", - "repo": "rust-overlay", - "type": "github" - } - }, - "rust-overlay_2": { - "inputs": { - "nixpkgs": [ - "nil", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1726453838, - "narHash": "sha256-pupsow4L79SBfNwT6vh/5RAbVZuhngIA0RTCZksXmZY=", - "owner": "oxalica", - "repo": "rust-overlay", - "rev": "ca2e79cd22625d214b8437c2c4080ce79bd9f7d2", - "type": "github" - }, - "original": { - "owner": "oxalica", - "repo": "rust-overlay", - "type": "github" - } - }, - "rust-overlay_3": { - "inputs": { - "nixpkgs": [ - "nixarr", - "submerger", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1726626348, - "narHash": "sha256-sYV7e1B1yLcxo8/h+/hTwzZYmaju2oObNiy5iRI0C30=", - "owner": "oxalica", - "repo": "rust-overlay", - "rev": "6fd52ad8bd88f39efb2c999cc971921c2fb9f3a2", - "type": "github" - }, - "original": { - "owner": "oxalica", - "repo": "rust-overlay", - "type": "github" - } - }, - "rust-overlay_4": { - "inputs": { - "flake-utils": [ - "ooks-vim", "nvf", "nil", "flake-utils" ], "nixpkgs": [ - "ooks-vim", "nvf", "nil", "nixpkgs" @@ -3690,7 +2825,7 @@ "type": "github" } }, - "rust-overlay_5": { + "rust-overlay_2": { "inputs": { "nixpkgs": [ "zjstatus", @@ -3711,44 +2846,6 @@ "type": "github" } }, - "scss-reset": { - "flake": false, - "locked": { - "lastModified": 1631450058, - "narHash": "sha256-muDlZJPtXDIGevSEWkicPP0HQ6VtucbkMNygpGlBEUM=", - "owner": "andreymatin", - "repo": "scss-reset", - "rev": "0cf50e27a4e95e9bb5b1715eedf9c54dee1a5a91", - "type": "github" - }, - "original": { - "owner": "andreymatin", - "repo": "scss-reset", - "type": "github" - } - }, - "submerger": { - "inputs": { - "nixpkgs": [ - "nixarr", - "nixpkgs" - ], - "rust-overlay": "rust-overlay_3" - }, - "locked": { - "lastModified": 1726842908, - "narHash": "sha256-sn3oWKcdXmy42wsBg1yCFBHHRCKVkQ+D8YnlLY/RX3A=", - "owner": "rasmus-kirk", - "repo": "submerger", - "rev": "6ffa3b28017d9d67c48a2f9de98788da05aa5ba2", - "type": "github" - }, - "original": { - "owner": "rasmus-kirk", - "repo": "submerger", - "type": "github" - } - }, "systems": { "locked": { "lastModified": 1681028828, @@ -3764,67 +2861,22 @@ "type": "github" } }, - "systems_10": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "systems_11": { - "locked": { - "lastModified": 1689347949, - "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", - "owner": "nix-systems", - "repo": "default-linux", - "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default-linux", - "type": "github" - } - }, - "systems_12": { - "locked": { - "lastModified": 1689347949, - "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", - "owner": "nix-systems", - "repo": "default-linux", - "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default-linux", - "type": "github" - } - }, - "systems_13": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, "systems_2": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + }, + "systems_3": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -3839,33 +2891,18 @@ "type": "github" } }, - "systems_3": { - "locked": { - "lastModified": 1689347949, - "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", - "owner": "nix-systems", - "repo": "default-linux", - "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default-linux", - "type": "github" - } - }, "systems_4": { "locked": { - "lastModified": 1689347949, - "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "owner": "nix-systems", - "repo": "default-linux", - "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "type": "github" }, "original": { "owner": "nix-systems", - "repo": "default-linux", + "repo": "default", "type": "github" } }, @@ -3885,21 +2922,6 @@ } }, "systems_6": { - "locked": { - "lastModified": 1689347949, - "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", - "owner": "nix-systems", - "repo": "default-linux", - "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default-linux", - "type": "github" - } - }, - "systems_7": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -3914,57 +2936,6 @@ "type": "github" } }, - "systems_8": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "systems_9": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "treefmt-nix": { - "inputs": { - "nixpkgs": [ - "nixarr", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1726734507, - "narHash": "sha256-VUH5O5AcOSxb0uL/m34dDkxFKP6WLQ6y4I1B4+N3L2w=", - "owner": "numtide", - "repo": "treefmt-nix", - "rev": "ee41a466c2255a3abe6bc50fc6be927cdee57a9f", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "treefmt-nix", - "type": "github" - } - }, "utils": { "locked": { "lastModified": 1656928814, @@ -3980,51 +2951,6 @@ "type": "github" } }, - "vpnconfinement": { - "inputs": { - "flake-parts": "flake-parts_3", - "nixpkgs": [ - "nixarr", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1725824375, - "narHash": "sha256-c0nVYn1Jcjqt7XLXRM7jBmkvwMu+qcUVO7AL8+ZwiaQ=", - "owner": "Maroka-chan", - "repo": "VPN-Confinement", - "rev": "0fc1023446e906094fef69ccd6991d8659b34d42", - "type": "github" - }, - "original": { - "owner": "Maroka-chan", - "repo": "VPN-Confinement", - "type": "github" - } - }, - "xdg-portal-hyprland": { - "inputs": { - "hyprland-protocols": "hyprland-protocols_2", - "hyprlang": "hyprlang_5", - "hyprutils": "hyprutils_6", - "hyprwayland-scanner": "hyprwayland-scanner_3", - "nixpkgs": "nixpkgs_14", - "systems": "systems_12" - }, - "locked": { - "lastModified": 1728166987, - "narHash": "sha256-w6dVTguAn9zJ+7aPOhBQgDz8bn6YZ7b56cY8Kg5HJRI=", - "owner": "hyprwm", - "repo": "xdg-desktop-portal-hyprland", - "rev": "fb9c8d665af0588bb087f97d0f673ddf0d501787", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "xdg-desktop-portal-hyprland", - "type": "github" - } - }, "xdph": { "inputs": { "hyprland-protocols": [ @@ -4068,10 +2994,10 @@ }, "zjstatus": { "inputs": { - "crane": "crane_2", - "flake-utils": "flake-utils_5", - "nixpkgs": "nixpkgs_15", - "rust-overlay": "rust-overlay_5" + "crane": "crane", + "flake-utils": "flake-utils_3", + "nixpkgs": "nixpkgs_6", + "rust-overlay": "rust-overlay_2" }, "locked": { "lastModified": 1728141581, diff --git a/flake.nix b/flake.nix index a7a655c..f3deb21 100644 --- a/flake.nix +++ b/flake.nix @@ -1,102 +1,79 @@ { - # ooknet - description = "a nix configuration written by an orangutan"; + description = "Description for the project"; outputs = {flake-parts, ...} @ inputs: flake-parts.lib.mkFlake {inherit inputs;} { - systems = import inputs.systems; imports = [./outputs]; + systems = import inputs.systems; }; - # External inputs we depend on inputs = { - # unstable because why not - nixpkgs.url = "github:Nixos/nixpkgs/nixos-unstable"; - nixpkgs-small.url = "github:Nixos/nixpkgs/nixos-unstable-small"; - - # contains more up-to-date wayland related packages. no need enabling atm - # nixpkgs-wayland.url = "github:nix-community/nixpkgs-wayland"; - - # default system see - systems.url = "github:nix-systems/default-linux"; - # split your flake into... parts? - flake-parts = { - url = "github:hercules-ci/flake-parts"; - inputs.nixpkgs-lib.follows = "nixpkgs"; - }; - - # dotfile configuration + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + flake-parts.url = "github:hercules-ci/flake-parts"; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; - + agenix.url = "github:ryantm/agenix"; nix-index-db = { url = "github:nix-community/nix-index-database"; inputs.nixpkgs.follows = "nixpkgs"; }; + zjstatus.url = "github:dj95/zjstatus"; + systems.url = "github:nix-systems/default-linux"; - # nix shell environment on android - nix-on-droid = { - url = "github:nix-community/nix-on-droid/release-23.11"; - inputs.nixpkgs.follows = "nixpkgs"; - inputs.home-manager.follows = "home-manager"; - }; - - # wrapper for nix rebuild - nh = { - url = "github:viperML/nh"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - - # nix language server that berates me for my mistakes - nil = { - url = "github:oxalica/nil"; - inputs.nixpkgs.follows = "nixpkgs-small"; - }; - - # colorschemes library - nix-colors.url = "github:misterio77/nix-colors"; - - # secret management - agenix.url = "github:ryantm/agenix"; - - # hyprland "ecosystem". hyprDE perhaps? - hyprland = { - url = "git+https://github.com/hyprwm/Hyprland?submodules=1"; - }; - hyprlock.url = "github:hyprwm/hyprlock"; - hypridle.url = "github:hyprwm/hypridle"; - hyprpaper.url = "github:hyprwm/hyprpaper"; - hyprland-contrib.url = "github:hyprwm/contrib"; - xdg-portal-hyprland.url = "github:hyprwm/xdg-desktop-portal-hyprland"; - # hyprland-plugins = { - # url = "github:hyprwm/hyprland-plugins"; - # inputs.hyprland.follows = "hyprland"; - # }; - - # helix because noun -> verb helps scratches my ape brain in the right spot - helix = { - url = "github:helix-editor/helix"; - inputs.nixpkgs.follows = "nixpkgs-small"; - }; - - # neovim configured with nix - ooks-vim.url = "git+ssh://git@github.com/ooks-io/ooks-vim"; - - # packaged firefox addons firefox-addons = { url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons"; inputs.nixpkgs.follows = "nixpkgs"; }; + ooks-scripts = { + url = "git+ssh://git@github.com/ooks-io/scripts"; + inputs.nixpkgs.follows = "nixpkgs"; + }; - # zellij status bar - zjstatus.url = "github:dj95/zjstatus"; + nvf.url = "github:notashelf/nvf/v0.7"; - # media server module for hosting my legally purchased linux isos - nixarr.url = "github:rasmus-kirk/nixarr"; + # hypr* ecosystem + hyprland.url = "github:hyprwm/hyprland"; - # personal scripts repo - ooks-scripts.url = "git+ssh://git@github.com/ooks-io/scripts"; + hypridle = { + url = "github:hyprwm/hypridle"; + inputs = { + hyprlang.follows = "hyprland/hyprlang"; + hyprutils.follows = "hyprland/hyprutils"; + nixpkgs.follows = "hyprland/nixpkgs"; + systems.follows = "hyprland/systems"; + }; + }; + + hyprland-contrib = { + url = "github:hyprwm/contrib"; + inputs.nixpkgs.follows = "hyprland/nixpkgs"; + }; + + hyprland-plugins = { + url = "github:hyprwm/hyprland-plugins"; + inputs.hyprland.follows = "hyprland"; + }; + + hyprlock = { + url = "github:hyprwm/hyprlock"; + inputs = { + hyprlang.follows = "hyprland/hyprlang"; + hyprutils.follows = "hyprland/hyprutils"; + nixpkgs.follows = "hyprland/nixpkgs"; + systems.follows = "hyprland/systems"; + }; + }; + + hyprpaper = { + url = "github:hyprwm/hyprpaper"; + inputs = { + hyprlang.follows = "hyprland/hyprlang"; + hyprutils.follows = "hyprland/hyprutils"; + nixpkgs.follows = "hyprland/nixpkgs"; + systems.follows = "hyprland/systems"; + }; + }; }; } diff --git a/home/modules/appearance/qt.nix b/home/modules/appearance/qt.nix deleted file mode 100644 index b2e9c7a..0000000 --- a/home/modules/appearance/qt.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: let - inherit (lib) mkIf; - cfg = config.ooknet.qt; -in { - config = mkIf cfg.enable { - qt = { - enable = true; - style.name = "gtk2"; - platformTheme.name = "gtk2"; - }; - - home.packages = with pkgs; [ - libsForQt5.qt5.qtwayland - kdePackages.qtwayland - qt6.qtwayland - kdePackages.qqc2-desktop-style - libsForQt5.qtstyleplugins - qt6Packages.qt6gtk2 - ]; - }; -} diff --git a/home/modules/base/mime-apps.nix b/home/modules/base/mime-apps.nix deleted file mode 100644 index f9f985e..0000000 --- a/home/modules/base/mime-apps.nix +++ /dev/null @@ -1,6 +0,0 @@ -{pkgs, ...}: { - home.packages = [pkgs.xdg-utils]; - xdg.mimeApps = { - enable = true; - }; -} diff --git a/home/modules/console/default.nix b/home/modules/console/default.nix deleted file mode 100644 index 33daef5..0000000 --- a/home/modules/console/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ - imports = [ - ./editor # Still need to implement nvim - ./multiplexer # Still need to implement tmux and screen - ./shell - ./tools - ]; -} diff --git a/home/modules/console/editor/helix/default.nix b/home/modules/console/editor/helix/default.nix deleted file mode 100644 index cf8c7a8..0000000 --- a/home/modules/console/editor/helix/default.nix +++ /dev/null @@ -1,72 +0,0 @@ -{ - inputs, - config, - osConfig, - pkgs, - lib, - ... -}: let - inherit (osConfig.ooknet.appearance) colorscheme; - inherit (config.ooknet) console; - inherit (lib) mkIf; - cfg = config.ooknet.editor.helix; -in { - imports = [ - ./languages.nix - ]; - - config = mkIf (cfg.enable || console.editor == "helix") { - programs.helix = { - enable = true; - defaultEditor = mkIf (console.editor == "helix") true; - package = inputs.helix.packages.${pkgs.system}.default.overrideAttrs (old: { - makeWrapperArgs = with pkgs; - old.makeWrapperArgs - or [] - ++ [ - "--suffix" - "PATH" - ":" - (lib.makeBinPath [ - clang-tools - marksman - nil - nodePackages.bash-language-server - nodePackages.vscode-langservers-extracted - shellcheck - ]) - ]; - }); - settings = { - theme = "base16_transparent"; - editor = { - color-modes = true; - middle-click-paste = false; - line-number = "relative"; - indent-guides.render = true; - true-color = true; - cursorline = true; - cursor-shape = { - normal = "block"; - insert = "bar"; - select = "underline"; - }; - statusline = { - left = ["mode" "spinner"]; - center = ["file-name"]; - right = ["diagnostics" "selections" "position" "file-encoding" "file-line-ending" "file-type"]; - }; - lsp = { - display-messages = true; - display-inlay-hints = true; - }; - }; - keys.normal.space.u = { - f = ":format"; - w = ":set whitespace.render all"; - W = ":set whitespace.render none"; - }; - }; - }; - }; -} diff --git a/home/modules/console/editor/helix/languages.nix b/home/modules/console/editor/helix/languages.nix deleted file mode 100644 index d23a828..0000000 --- a/home/modules/console/editor/helix/languages.nix +++ /dev/null @@ -1,135 +0,0 @@ -{ - pkgs, - lib, - config, - ... -}: let - inherit (lib) mkIf getExe; - cfg = config.ooknet.editor.helix; - inherit (config.ooknet) console; -in { - config = mkIf (cfg.enable || console.editor == "helix") { - programs.helix.languages = { - language = let - deno = lang: { - command = "${pkgs.deno}/bin/deno"; - args = ["fmt" "-" "--ext" lang]; - }; - - prettier = lang: { - command = "${pkgs.nodePackages.prettier}/bin/prettier"; - args = ["--parser" lang]; - }; - prettierLangs = map (e: { - name = e; - formatter = prettier e; - }); - langs = ["css" "scss" "html"]; - in - [ - { - name = "bash"; - auto-format = true; - formatter = { - command = "${pkgs.shfmt}/bin/shfmt"; - args = ["-i" "2"]; - }; - } - { - name = "clojure"; - injection-regex = "(clojure|clj|edn|boot|yuck)"; - file-types = ["clj" "cljs" "cljc" "clje" "cljr" "cljx" "edn" "boot" "yuck"]; - } - { - name = "javascript"; - auto-format = true; - language-servers = ["dprint" "typescript-language-server"]; - } - { - name = "json"; - formatter = deno "json"; - } - { - name = "markdown"; - auto-format = true; - formatter = deno "md"; - } - ] - ++ prettierLangs langs; - - language-server = { - bash-language-server = { - command = "${pkgs.nodePackages.bash-language-server}/bin/bash-language-server"; - args = ["start"]; - }; - - clangd = { - command = "${pkgs.clang-tools}/bin/clangd"; - clangd.fallbackFlags = ["-std=c++2b"]; - }; - - deno-lsp = { - command = "${pkgs.deno}/bin/deno"; - args = ["lsp"]; - environment.NO_COLOR = "1"; - config.deno = { - enable = true; - lint = true; - unstable = true; - suggest = { - completeFunctionCalls = false; - imports = {hosts."https://deno.land" = true;}; - }; - inlayHints = { - enumMemberValues.enabled = true; - functionLikeReturnTypes.enabled = true; - parameterNames.enabled = "all"; - parameterTypes.enabled = true; - propertyDeclarationTypes.enabled = true; - variableTypes.enabled = true; - }; - }; - }; - - nil = { - command = getExe pkgs.nil; - config.nil.formatting.command = ["${getExe pkgs.alejandra}" "-q"]; - }; - - dprint = { - command = getExe pkgs.dprint; - args = ["lsp"]; - }; - - typescript-language-server = { - command = "${pkgs.nodePackages.typescript-language-server}/bin/typescript-language-server"; - args = ["--stdio"]; - config = let - inlayHints = { - includeInlayEnumMemberValueHints = true; - includeInlayFunctionLikeReturnTypeHints = true; - includeInlayFunctionParameterTypeHints = true; - includeInlayParameterNameHints = "all"; - includeInlayParameterNameHintsWhenArgumentMatchesName = true; - includeInlayPropertyDeclarationTypeHints = true; - includeInlayVariableTypeHints = true; - }; - in { - typescript-language-server.source = { - addMissingImports.ts = true; - fixAll.ts = true; - organizeImports.ts = true; - removeUnusedImports.ts = true; - sortImports.ts = true; - }; - - typescript = {inherit inlayHints;}; - javascript = {inherit inlayHints;}; - - hostInfo = "helix"; - }; - }; - }; - }; - }; -} diff --git a/home/modules/console/multiplexer/default.nix b/home/modules/console/multiplexer/default.nix deleted file mode 100644 index b3dfa15..0000000 --- a/home/modules/console/multiplexer/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ - imports = [ - ./zellij - #./screen - ./tmux - ]; -} diff --git a/home/modules/console/multiplexer/tmux/default.nix b/home/modules/console/multiplexer/tmux/default.nix deleted file mode 100644 index 8462e51..0000000 --- a/home/modules/console/multiplexer/tmux/default.nix +++ /dev/null @@ -1,66 +0,0 @@ -{ - config, - osConfig, - lib, - pkgs, - ... -}: let - inherit (osConfig.ooknet.appearance.colorscheme) palette; - inherit (config.ooknet) console; - inherit (lib) mkIf; - cfg = config.ooknet.multiplexer.tmux; -in { - config = mkIf (cfg.enable || console.multiplexer == "tmux") { - programs.tmux = { - enable = true; - shell = "${pkgs.fish}/bin/fish"; - prefix = "C-space"; - baseIndex = 1; - keyMode = "vi"; - escapeTime = 0; - mouse = true; - plugins = with pkgs; [ - { - plugin = tmuxPlugins.mode-indicator; - } - ]; - extraConfig = - /* - sh - */ - '' - # General Settings - set -g set-clipboard on - #Appearance - set -g status-position top - set -g status-style "fg=#${palette.base05} bg=#${palette.base00}" - #Windows - set -g status-justify "centre" - setw -g window-status-current-format "#[bg=#${palette.base0B},fg=#${palette.base00},bold] #W " - setw -g window-status-format "#[bg=#${palette.base03},fg=#${palette.base05}] #W " - #Left - set -g status-left " #{tmux_mode_indicator} #[bg=#${palette.base0B},fg=#${palette.base00}] #S" - set -g status-right '%Y-%m-%d %H:%M #{tmux_mode_indicator}' - #Move to Pane - bind -n M-Left select-pane -L - bind -n M-h select-pane -L - bind -n M-Right select-pane -R - bind -n M-l select-pane -R - bind -n M-Up select-pane -U - bind -n M-k select-pane -U - bind -n M-Down select-pane -D - bind -n M-j select-pane -D - #Split Pane - bind -n M-- split-window -h - bind -n M-= split-window -v - #Resize Pane - bind -n C-M-Up resize-pane -U 5 - bind -n C-M-Down resize-pane -D 5 - bind -n C-M-Left resize-pane -L 5 - bind -n C-M-Right resize-pane -R 5 - #Move to Window - bind -n M-1 - ''; - }; - }; -} diff --git a/home/modules/console/shell/default.nix b/home/modules/console/shell/default.nix deleted file mode 100644 index 296c71d..0000000 --- a/home/modules/console/shell/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ - imports = [ - ./fish - ./bash - ./zsh - ]; -} diff --git a/home/modules/console/shell/fish/aliases.nix b/home/modules/console/shell/fish/aliases.nix deleted file mode 100644 index 2e4667f..0000000 --- a/home/modules/console/shell/fish/aliases.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ - lib, - config, - osConfig, - pkgs, - ... -}: let - inherit (lib) mkIf getExe; - inherit (pkgs) bat eza dust nh; - - cfg = config.ooknet.shell.fish; - inherit (osConfig.ooknet.host) admin; -in { - config = mkIf (cfg.enable || admin.shell == "fish") { - programs.fish = { - shellAliases = { - cat = "${getExe bat}"; - ls = "${getExe eza} -a --icons --group-directories-first"; - lst = "${getExe eza} -T -L 5 --icons --group-directories-first"; - du = "${getExe dust}"; - gitroot = "cd (git rev-parse --show-toplevel)"; - }; - shellAbbrs = { - f = "cd $FLAKE"; - fe = "$EDITOR $FLAKE"; - - nswitch = "${getExe nh} os switch"; - }; - }; - }; -} diff --git a/home/modules/console/shell/fish/binds.nix b/home/modules/console/shell/fish/binds.nix deleted file mode 100644 index 7a2ab7d..0000000 --- a/home/modules/console/shell/fish/binds.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ - lib, - config, - osConfig, - ... -}: let - inherit (lib) mkIf; - inherit (osConfig.ooknet.host) admin; - - cfg = config.ooknet.shell.fish; -in { - config = mkIf (cfg.enable || admin.shell == "fish") { - programs.fish = { - functions = { - fish_user_key_bindings = '' - bind --preset -M insert \cf nvim '+Telescope find_files' $FLAKE - bind --preset -M insert \ec fzf_cd_widget - ''; - }; - }; - }; -} diff --git a/home/modules/console/shell/fish/plugins.nix b/home/modules/console/shell/fish/plugins.nix deleted file mode 100644 index b067209..0000000 --- a/home/modules/console/shell/fish/plugins.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ - lib, - config, - pkgs, - osConfig, - ... -}: let - inherit (lib) mkIf; - cfg = config.ooknet.shell.fish; - inherit (osConfig.ooknet.host) admin; -in { - config = mkIf (cfg.enable || admin.shell == "fish") { - programs.fish = { - plugins = [ - { - name = "done"; - inherit (pkgs.fishPlugins.done) src; - } - { - name = "autopair"; - inherit (pkgs.fishPlugins.autopair) src; - } - { - name = "colored-man-pages"; - inherit (pkgs.fishPlugins.colored-man-pages) src; - } - ]; - }; - }; -} diff --git a/home/modules/console/shell/zsh/plugins.nix b/home/modules/console/shell/zsh/plugins.nix deleted file mode 100644 index 8f9dc3e..0000000 --- a/home/modules/console/shell/zsh/plugins.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - lib, - pkgs, - config, - osConfig, - ... -}: let - inherit (lib) mkIf; - cfg = config.ooknet.shell.zsh; - inherit (osConfig.ooknet.host) admin; -in { - config = mkIf (cfg.enable || admin.shell == "zsh") { - programs.zsh.plugins = [ - { - name = "fast-syntax-highlighting"; - file = "fast-syntax-highlighting"; - src = "${pkgs.zsh-fast-syntax-highlighting}/share/zsh/site-functions"; - } - { - name = "zsh-autopair"; - file = "autopair.zsh"; - src = "${pkgs.zsh-autopair}/share/zsh/zsh-autopair"; - } - ]; - }; -} diff --git a/home/modules/console/tools/bat.nix b/home/modules/console/tools/bat.nix deleted file mode 100644 index 7bb8761..0000000 --- a/home/modules/console/tools/bat.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: let - inherit (lib) mkIf; - cfg = config.ooknet.tools.bat; -in { - config = mkIf cfg.enable { - programs.bat = { - enable = true; - extraPackages = with pkgs.bat-extras; [ - batgrep - prettybat - batwatch - batman - ]; - config = { - theme = "base16"; - }; - }; - }; -} diff --git a/home/modules/console/tools/sourcegraph.nix b/home/modules/console/tools/sourcegraph.nix deleted file mode 100644 index 1c74e64..0000000 --- a/home/modules/console/tools/sourcegraph.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: let - inherit (lib) mkIf; - cfg = config.ooknet.tools.sourcegraph; -in { - config = mkIf cfg.enable { - home.packages = [pkgs.src-cli]; - }; -} diff --git a/home/modules/console/tools/utils.nix b/home/modules/console/tools/utils.nix deleted file mode 100644 index bb66efd..0000000 --- a/home/modules/console/tools/utils.nix +++ /dev/null @@ -1,54 +0,0 @@ -{ - pkgs, - lib, - config, - self, - ... -}: let - cfg = config.ooknet.tools.utils; -in { - config = lib.mkIf cfg.enable { - home.packages = with pkgs; [ - bc # Calculator - - # file utility - duf - du-dust - fd - ripgrep - - # archive - zip - unzip - unrar - - # file transfer - wget - httpie # Better curl - - # resource manager - powertop - - #shell scripting - gum - # audio ctrl - pamixer - - diffsitter # Better diff - jq # JSON pretty printer and manipulator - tldr # Community maintained help pages - progress - killall - acpi - - # Notifications - libnotify - - # Nix tooling - alejandra - - #AI - self.packages.${pkgs.system}.repopack - ]; - }; -} diff --git a/home/modules/default.nix b/home/modules/default.nix deleted file mode 100644 index d761722..0000000 --- a/home/modules/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ - imports = [ - ./base # default configuration modules for home-manager. - ./desktop # gui modules - ./console # cli modules - ./appearance # modules for configuring themes ie: fonts, wallpapers, color-schemes, etc... - ]; -} diff --git a/home/modules/desktop/browser/chrome/default.nix b/home/modules/desktop/browser/chrome/default.nix deleted file mode 100644 index e69de29..0000000 diff --git a/home/modules/desktop/browser/default.nix b/home/modules/desktop/browser/default.nix deleted file mode 100644 index be7e23d..0000000 --- a/home/modules/desktop/browser/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ - imports = [ - ./firefox - #./chrome -- still needs to be implemented - #./brave -- still needs tio be implemented - ]; -} diff --git a/home/modules/desktop/browser/firefox/settings/narsilUserjs.nix b/home/modules/desktop/browser/firefox/settings/narsilUserjs.nix deleted file mode 100644 index d3f67a1..0000000 --- a/home/modules/desktop/browser/firefox/settings/narsilUserjs.nix +++ /dev/null @@ -1,1047 +0,0 @@ -{ - # https:#git.nixnet.services/Narsil/desktop_user.js - # Author : Narsil : https:#git.nixnet.services/Narsil - - # Based on : arkenfox : https:#github.com/arkenfox/user.js - - # License : https:#git.nixnet.services/Narsil/desktop_user.js/raw/branch/master/LICENSE - - # Disable about:config warning - "browser.aboutConfig.showWarning" = false; - - # STARTUP - - # Disable default browser check - "browser.shell.checkDefaultBrowser" = false; - - # Set startup page [SETUP-CHROME] - # 0=blank = 1=home = 2=last visited page = 3=resume previous session - "browser.startup.page" = 0; - - # Set HOME+NEWWINDOW page - "browser.startup.homepage" = "about:blank"; - - # Set NEWTAB page - # true=Activity Stream (default) = false=blank page - "browser.newtabpage.enabled" = false; - - # Disable sponsored content on Firefox Home (Activity Stream) - "browser.newtabpage.activity-stream.showSponsored" = false; # [FF58+] Pocket > Sponsored Stories - "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; # [FF83+] Sponsored shortcuts - - # Clear default topsites - "browser.newtabpage.activity-stream.default.sites" = ""; - "browser.topsites.contile.enabled" = false; - "browser.topsites.useRemoteSetting" = false; - - # GEOLOCATION - - # Use Mozilla geolocation service instead of Google if permission is granted [FF74+] - "geo.provider.network.url" = ""; - #"geo.provider.network.logging.enabled" = true; # [HIDDEN PREF] - - # Disable using the OS's geolocation service - "geo.provider.use_gpsd" = false; # [LINUX] [HIDDEN PREF] - "geo.provider.geoclue.always_high_accuracy" = false; # [LINUX] - "geo.provider.use_geoclue" = false; # [FF102+] [LINUX] - - # Disable region updates - "browser.region.network.url" = ""; # [FF78+] Defense-in-depth - "browser.region.update.enabled" = false; # [FF79+] - - # QUIETER FOX - - # Disable recommendation pane in about:addons (uses Google Analytics) - "extensions.getAddons.showPane" = false; # [HIDDEN PREF] - - # Disable recommendations in about:addons' Extensions and Themes panes [FF68+] - "extensions.htmlaboutaddons.recommendations.enabled" = false; - - # Disable personalized Extension Recommendations in about:addons and AMO [FF65+] - "browser.discovery.enabled" = false; - - # Disable shopping experience [FF116+] - "browser.shopping.experience2023.enabled" = false; # [DEFAULT: false] - "browser.shopping.experience2023.opted" = 2; - "browser.shopping.experience2023.active" = false; - - # TELEMETRY - - # Disable new data submission [FF41+] - "datareporting.policy.dataSubmissionEnabled" = false; - - # Disable Health Reports - "datareporting.healthreport.uploadEnabled" = false; - - # Disable telemetry - "toolkit.telemetry.unified" = false; - "toolkit.telemetry.enabled" = false; # see [NOTE] - "toolkit.telemetry.server" = "data:,"; - "toolkit.telemetry.archive.enabled" = false; - "toolkit.telemetry.newProfilePing.enabled" = false; # [FF55+] - "toolkit.telemetry.shutdownPingSender.enabled" = false; # [FF55+] - "toolkit.telemetry.updatePing.enabled" = false; # [FF56+] - "toolkit.telemetry.bhrPing.enabled" = false; # [FF57+] Background Hang Reporter - "toolkit.telemetry.firstShutdownPing.enabled" = false; # [FF57+] - - # Skip checking omni.ja and other files - "corroborator.enabled" = false; - - # Disable Telemetry Coverage - "toolkit.telemetry.coverage.opt-out" = true; # [HIDDEN PREF] - "toolkit.coverage.opt-out" = true; # [FF64+] [HIDDEN PREF] - "toolkit.coverage.endpoint.base" = ""; - - # Disable PingCentre telemetry (used in several System Add-ons) [FF57+] - "browser.ping-centre.telemetry" = false; - - # Disable Firefox Home (Activity Stream) telemetry - "browser.newtabpage.activity-stream.feeds.telemetry" = false; - "browser.newtabpage.activity-stream.telemetry" = false; - - # Disable WebVTT logging and test events - "media.webvtt.debug.logging" = false; - "media.webvtt.testing.events" = false; - - # Disable send content blocking log to about:protections - "browser.contentblocking.database.enabled" = false; - - # Disable celebrating milestone toast when certain numbers of trackers are blocked - "browser.contentblocking.cfr-milestone.enabled" = false; - - # Disable Default Browser Agent - "default-browser-agent.enabled" = false; # [WINDOWS] - - # STUDIES - - # Disable Studies - "app.shield.optoutstudies.enabled" = false; - - # Disable Normandy/Shield [FF60+] - "app.normandy.enabled" = false; - "app.normandy.api_url" = ""; - - # CRASH REPORTS - - # Disable Crash Reports - "breakpad.reportURL" = ""; - "browser.tabs.crashReporting.sendReport" = false; # [FF44+] - #"browser.crashReports.unsubmittedCheck.enabled" = false; # [FF51+] [DEFAULT: false] - - # Enforce no submission of backlogged Crash Reports [FF58+] - "browser.crashReports.unsubmittedCheck.autoSubmit2" = false; # [DEFAULT: false] - - # OTHER - - # Disable Captive Portal detection - "captivedetect.canonicalURL" = ""; - "network.captive-portal-service.enabled" = false; # [FF52+] - - # Disable Network Connectivity checks [FF65+] - "network.connectivity-service.enabled" = false; - - # Disable contentblocking reports - "browser.contentblocking.reportBreakage.url" = ""; - "browser.contentblocking.report.cookie.url" = ""; - "browser.contentblocking.report.cryptominer.url" = ""; - "browser.contentblocking.report.fingerprinter.url" = ""; - "browser.contentblocking.report.lockwise.enabled" = false; - "browser.contentblocking.report.lockwise.how_it_works.url" = ""; - "browser.contentblocking.report.manage_devices.url" = ""; - "browser.contentblocking.report.monitor.enabled" = false; - "browser.contentblocking.report.monitor.how_it_works.url" = ""; - "browser.contentblocking.report.monitor.sign_in_url" = ""; - "browser.contentblocking.report.monitor.url" = ""; - "browser.contentblocking.report.proxy.enabled" = false; - "browser.contentblocking.report.proxy_extension.url" = ""; - "browser.contentblocking.report.social.url" = ""; - "browser.contentblocking.report.tracker.url" = ""; - "browser.contentblocking.report.endpoint_url" = ""; - "browser.contentblocking.report.monitor.home_page_url" = ""; - "browser.contentblocking.report.monitor.preferences_url" = ""; - "browser.contentblocking.report.vpn.enabled" = false; - "browser.contentblocking.report.hide_vpn_banner" = true; - "browser.contentblocking.report.show_mobile_app" = false; - "browser.vpn_promo.enabled" = false; - "browser.promo.focus.enabled" = false; - - # Block unwanted connections - "app.feedback.baseURL" = ""; - "app.support.baseURL" = ""; - "app.releaseNotesURL" = ""; - "app.update.url.details" = ""; - "app.update.url.manual" = ""; - "app.update.staging.enabled" = false; - - # Remove default handlers and translation engine - "gecko.handlerService.schemes.mailto.0.uriTemplate" = ""; - "gecko.handlerService.schemes.mailto.0.name" = ""; - "gecko.handlerService.schemes.mailto.1.uriTemplate" = ""; - "gecko.handlerService.schemes.mailto.1.name" = ""; - "gecko.handlerService.schemes.irc.0.uriTemplate" = ""; - "gecko.handlerService.schemes.irc.0.name" = ""; - "gecko.handlerService.schemes.ircs.0.uriTemplate" = ""; - "gecko.handlerService.schemes.ircs.0.name" = ""; - "browser.translation.engine" = ""; - - # Disable connections to Mozilla servers - "services.settings.server" = ""; - - # SAFE BROWSING (SB) - - # Disable SB (Safe Browsing) - "browser.safebrowsing.malware.enabled" = false; - "browser.safebrowsing.phishing.enabled" = false; - "browser.safebrowsing.passwords.enabled" = false; - "browser.safebrowsing.allowOverride" = false; - - # Disable SB checks for downloads (both local lookups + remote) - "browser.safebrowsing.downloads.enabled" = false; - - # Disable SB checks for downloads (remote) - "browser.safebrowsing.downloads.remote.enabled" = false; - "browser.safebrowsing.downloads.remote.url" = ""; - - # Disable SB checks for unwanted software - "browser.safebrowsing.downloads.remote.block_potentially_unwanted" = false; - "browser.safebrowsing.downloads.remote.block_uncommon" = false; - - # Disable "ignore this warning" on SB warnings [FF45+] - #"browser.safebrowsing.allowOverride" = false; - - # Google connections - "browser.safebrowsing.downloads.remote.block_dangerous" = false; - "browser.safebrowsing.downloads.remote.block_dangerous_host" = false; - "browser.safebrowsing.provider.google.updateURL" = ""; - "browser.safebrowsing.provider.google.gethashURL" = ""; - "browser.safebrowsing.provider.google4.updateURL" = ""; - "browser.safebrowsing.provider.google4.gethashURL" = ""; - "browser.safebrowsing.provider.google.reportURL" = ""; - "browser.safebrowsing.reportPhishURL" = ""; - "browser.safebrowsing.provider.google4.reportURL" = ""; - "browser.safebrowsing.provider.google.reportMalwareMistakeURL" = ""; - "browser.safebrowsing.provider.google.reportPhishMistakeURL" = ""; - "browser.safebrowsing.provider.google4.reportMalwareMistakeURL" = ""; - "browser.safebrowsing.provider.google4.reportPhishMistakeURL" = ""; - "browser.safebrowsing.provider.google4.dataSharing.enabled" = false; - "browser.safebrowsing.provider.google4.dataSharingURL" = ""; - "browser.safebrowsing.provider.google.advisory" = ""; - "browser.safebrowsing.provider.google.advisoryURL" = ""; - # "browser.safebrowsing.provider.google.gethashURL" = ""; - "browser.safebrowsing.provider.google4.advisoryURL" = ""; - "browser.safebrowsing.blockedURIs.enabled" = false; - "browser.safebrowsing.provider.mozilla.gethashURL" = ""; - "browser.safebrowsing.provider.mozilla.updateURL" = ""; - - # BLOCK IMPLICIT OUTBOUND - - # Disable link prefetching - "network.prefetch-next" = false; - - # Disable DNS prefetching - "network.dns.disablePrefetch" = true; - #"network.dns.disablePrefetchFromHTTPS" = true; # [DEFAULT: true] - - # Disable predictor / prefetching - "network.predictor.enabled" = false; - "network.predictor.enable-prefetch" = false; # [FF48+] [DEFAULT: false] - - # Disable link-mouseover opening connection to linked server - "network.http.speculative-parallel-limit" = 0; - - # Disable mousedown speculative connections on bookmarks and history [FF98+] - "browser.places.speculativeConnect.enabled" = false; - - # Enforce no "Hyperlink Auditing" (click tracking) - #"browser.send_pings" = false; # [DEFAULT: false] - - # DNS / DoH / PROXY / SOCKS - - # Set the proxy server to do any DNS lookups when using SOCKS - "network.proxy.socks_remote_dns" = true; - - # Disable using UNC (Uniform Naming Convention) paths [FF61+] - "network.file.disable_unc_paths" = true; # [HIDDEN PREF] - - # Disable GIO as a potential proxy bypass vector - "network.gio.supported-protocols" = ""; # [HIDDEN PREF] [DEFAULT: "" FF118+] - - # Disable proxy direct failover for system requests [FF91+] - #"network.proxy.failover_direct" = false; - - # Disable proxy bypass for system request failures [FF95+] - #"network.proxy.allow_bypass" = false; - - # Disable DNS-over-HTTPS (DoH)[FF60+] - "network.trr.mode" = 5; - "network.trr.confirmationNS" = ""; - - # Disable skipping DoH when parental controls are enabled - "network.trr.uri" = ""; - "network.trr.custom_uri" = ""; - - # LOCATION BAR / SEARCH BAR / SUGGESTIONS / HISTORY / FORMS - - # Disable location bar making speculative connections [FF56+] - "browser.urlbar.speculativeConnect.enabled" = false; - - # Disable location bar contextual suggestions - "browser.urlbar.suggest.quicksuggest.nonsponsored" = false; # [FF95+] - "browser.urlbar.suggest.quicksuggest.sponsored" = false; # [FF92+] - - # Disable live search suggestions - "browser.search.suggest.enabled" = false; - "browser.urlbar.suggest.searches" = false; - - # Disable urlbar trending search suggestions [FF118+] - "browser.urlbar.trending.featureGate" = false; - - # Disable urlbar suggestions - "browser.urlbar.addons.featureGate" = false; # [FF115+] - "browser.urlbar.mdn.featureGate" = false; # [FF117+] [HIDDEN PREF] - "browser.urlbar.pocket.featureGate" = false; # [FF116+] [DEFAULT: false] - "browser.urlbar.weather.featureGate" = false; # [FF108+] [DEFAULT: false] - - # Disable urlbar clipboard suggestions [FF118+] - #"browser.urlbar.clipboard.featureGate" = false; # [DEFAULT: false] - - # Disable search and form history - "browser.formfill.enable" = false; - - # Disable tab-to-search [FF85+] - "browser.urlbar.suggest.engines" = false; - - # Disable coloring of visited links - "layout.css.visited_links_enabled" = false; - - # Enable separate default search engine in Private Windows and its UI setting - "browser.search.separatePrivateDefault" = true; # [FF70+] - "browser.search.separatePrivateDefault.ui.enabled" = true; # [FF71+] - - # Disable merino - "browser.urlbar.merino.enabled" = false; - - # PASSWORDS - # - # Disable saving passwords and password alerts. - "signon.rememberSignons" = false; - "signon.generation.enabled" = false; - "signon.management.page.breach-alerts.enabled" = false; - "signon.management.page.breachAlertUrl" = ""; - - # Set when Firefox should prompt for the primary password - # 0=once per session (default) = 1=every time it's needed = 2=after n minutes - "security.ask_for_password" = 2; - - # Set how long in minutes Firefox should remember the primary password (0901) - "security.password_lifetime" = 5; # [DEFAULT: 30] - - # Disable auto-filling username & password form fields - "signon.autofillForms" = false; - - # Disable formless login capture for Password Manager [FF51+] - "signon.formlessCapture.enabled" = false; - - # Limit (or disable) HTTP authentication credentials dialogs triggered by sub-resources [FF41+] - # 0 = don't allow sub-resources to open HTTP authentication credentials dialogs - # 1 = don't allow cross-origin sub-resources to open HTTP authentication credentials dialogs - # 2 = allow sub-resources to open HTTP authentication credentials dialogs (default) - "network.auth.subresource-http-auth-allow" = 1; - - # DISK AVOIDANCE - - # Disable disk cache - "browser.cache.disk.enable" = false; - - # Disable media cache from writing to disk in Private Browsing - "browser.privatebrowsing.forceMediaMemoryCache" = true; # [FF75+] - "media.memory_cache_max_size" = 65536; - - # Disable storing extra session data [SETUP-CHROME] - # 0=everywhere = 1=unencrypted sites = 2=nowhere - "browser.sessionstore.privacy_level" = 2; - - # HTTPS (SSL/TLS / OCSP / CERTS / HPKP) - - # Require safe negotiation - "security.ssl.require_safe_negotiation" = true; - - # Disable TLS1.3 0-RTT (round-trip time) [FF51+] - "security.tls.enable_0rtt_data" = false; - - # OCSP (Online Certificate Status Protocol) - - # Enforce OCSP fetching to confirm current validity of certificates - # 0=disabled = 1=enabled (default) = 2=enabled for EV certificates only - "security.OCSP.enabled" = 0; # [DEFAULT: 1] - - # Set OCSP fetch failures (non-stapled) to hard-fail [SETUP-WEB] - "security.OCSP.require" = false; - - # CERTS / HPKP (HTTP Public Key Pinning) - - # Enable strict PKP (Public Key Pinning) - # 0=disabled = 1=allow user MiTM (default; such as your antivirus) = 2=strict - "security.cert_pinning.enforcement_level" = 2; - - # Disable CRLite [FF73+] - # 0 = disabled - # 1 = consult CRLite but only collect telemetry (default) - # 2 = consult CRLite and enforce both "Revoked" and "Not Revoked" results - # 3 = consult CRLite and enforce "Not Revoked" results = but defer to OCSP for "Revoked" (default) - "security.remote_settings.intermediates.enabled" = false; - "security.remote_settings.intermediates.bucket" = ""; - "security.remote_settings.intermediates.collection" = ""; - "security.remote_settings.intermediates.signer" = ""; - "security.remote_settings.crlite_filters.enabled" = false; - "security.remote_settings.crlite_filters.bucket" = ""; - "security.remote_settings.crlite_filters.collection" = ""; - "security.remote_settings.crlite_filters.signer" = ""; - "security.pki.crlite_mode" = 0; - - # MIXED CONTENT - - # Disable insecure passive content (such as images) on https pages [SETUP-WEB] - #"security.mixed_content.block_display_content" = true; # Defense-in-depth - - # Enable HTTPS-Only mode in all windows - "dom.security.https_only_mode" = true; # [FF76+] - #"dom.security.https_only_mode_pbm" = true; # [FF80+] - - # Enable HTTPS-Only mode for local resources [FF77+] - #"dom.security.https_only_mode.upgrade_local" = true; - - # Disable HTTP background requests [FF82+] - "dom.security.https_only_mode_send_http_background_request" = false; - - # Disable ping to Mozilla for Man-in-the-Middle detection - "security.certerrors.mitm.priming.enabled" = false; - "security.certerrors.mitm.priming.endpoint" = ""; - "security.pki.mitm_canary_issuer" = ""; - "security.pki.mitm_canary_issuer.enabled" = false; - "security.pki.mitm_detected" = false; - - # UI (User Interface) - - # Display warning on the padlock for "broken security" - "security.ssl.treat_unsafe_negotiation_as_broken" = true; - - # Display advanced information on Insecure Connection warning pages - "browser.xul.error_pages.expert_bad_cert" = true; - - # REFERERS - - # Control the amount of cross-origin information to send [FF52+] - # 0=send full URI (default) = 1=scheme+host+port+path = 2=scheme+host+port - "network.http.referer.XOriginTrimmingPolicy" = 2; - - # CONTAINERS - - # Enable Container Tabs and its UI setting [FF50+] - "privacy.userContext.enabled" = true; - "privacy.userContext.ui.enabled" = true; - - # Set behavior on "+ Tab" button to display container menu on left click [FF74+] - #"privacy.userContext.newTabContainerOnLeftClick.enabled" = true; - - # PLUGINS / MEDIA / WEBRTC - - # Force WebRTC inside the proxy [FF70+] - "media.peerconnection.ice.proxy_only_if_behind_proxy" = true; - - # Force a single network interface for ICE candidates generation [FF42+] - "media.peerconnection.ice.default_address_only" = true; - - # Force exclusion of private IPs from ICE candidates [FF51+] - #"media.peerconnection.ice.no_host" = true; - - # Disable GMP (Gecko Media Plugins) - "media.gmp-provider.enabled" = false; - "media.gmp-manager.url" = ""; - "media.gmp-gmpopenh264.enabled" = false; - - # DOM (DOCUMENT OBJECT MODEL) - - # Prevent scripts from moving and resizing open windows - "dom.disable_window_move_resize" = true; - - # MISCELLANEOUS - - # Remove temp files opened from non-PB windows with an external application - "browser.download.start_downloads_in_tmp_dir" = true; # [FF102+] - - # Disable sending additional analytics to web servers - "beacon.enabled" = false; - - # Remove temp files opened with an external application - "browser.helperApps.deleteTempFileOnExit" = true; - - # Disable UITour backend so there is no chance that a remote page can use it - "browser.uitour.enabled" = false; - "browser.uitour.url" = ""; # Defense-in-depth - - # Reset remote debugging to disabled - "devtools.debugger.remote-enabled" = false; # [DEFAULT: false] - - # Disable websites overriding Firefox's keyboard shortcuts [FF58+] - # 0 (default) or 1=allow = 2=block - #"permissions.default.shortcuts" = 2; - - # Remove special permissions for certain mozilla domains [FF35+] - "permissions.manager.defaultsUrl" = ""; - - # Remove webchannel whitelist - "webchannel.allowObject.urlWhitelist" = ""; - - # Use Punycode in Internationalized Domain Names to eliminate possible spoofing - "network.IDN_show_punycode" = true; - - # Enforce PDFJS = disable PDFJS scripting - "pdfjs.disabled" = false; # [DEFAULT: false] - "pdfjs.enableScripting" = false; # [FF86+] - - # Disable middle click on new tab button opening URLs or searches using clipboard [FF115+] - "browser.tabs.searchclipboardfor.middleclick" = false; # [DEFAULT: false NON-LINUX] - - # Disable the default checkedness for "Save card and address to Firefox" checkboxes - "dom.payments.defaults.saveAddress" = false; - "dom.payments.defaults.saveCreditCard" = false; - - # Disable Displaying Javascript in History URLs - "browser.urlbar.filter.javascript" = true; - - # DOWNLOADS - - # Enable user interaction for security by always asking where to download - "browser.download.useDownloadDir" = false; - - # Disable downloads panel opening on every download [FF96+] - "browser.download.alwaysOpenPanel" = false; - - # Disable adding downloads to the system's "recent documents" list - "browser.download.manager.addToRecentDocs" = false; - - # Enable user interaction for security by always asking how to handle new mimetypes [FF101+] - "browser.download.always_ask_before_handling_new_types" = true; - - # EXTENSIONS - - # Limit allowed extension directories - "extensions.enabledScopes" = 5; # [HIDDEN PREF] - #"extensions.autoDisableScopes" = 15; # [DEFAULT: 15] - - # Disable bypassing 3rd party extension install prompts [FF82+] - "extensions.postDownloadThirdPartyPrompt" = false; - - # Disable webextension restrictions on certain mozilla domains [FF60+] - #"extensions.webextensions.restrictedDomains" = ""; - - # Disable extensions suggestions - "extensions.webservice.discoverURL" = ""; - - # ETP (ENHANCED TRACKING PROTECTION) - - # Enable ETP Strict Mode [FF86+] - "browser.contentblocking.category" = "strict"; # [HIDDEN PREF] - - # Disable ETP web compat features [FF93+] - #"privacy.antitracking.enableWebcompat" = false; - - # SHUTDOWN & SANITIZING - - # Enable Firefox to clear items on shutdown - "privacy.sanitize.sanitizeOnShutdown" = true; - - # SANITIZE ON SHUTDOWN: IGNORES "ALLOW" SITE EXCEPTIONS - - # Set/enforce what items to clear on shutdown [SETUP-CHROME] - "privacy.clearOnShutdown.cache" = true; - "privacy.clearOnShutdown.downloads" = true; # [DEFAULT: true] - "privacy.clearOnShutdown.formdata" = true; # [DEFAULT: true] - "privacy.clearOnShutdown.history" = true; # [DEFAULT: true] - "privacy.clearOnShutdown.sessions" = true; # [DEFAULT: true] - #"privacy.clearOnShutdown.siteSettings" = false; # [DEFAULT: false] - - # Set Session Restore to clear on shutdown [FF34+] - #"privacy.clearOnShutdown.openWindows" = true; - - # SANITIZE ON SHUTDOWN: RESPECTS "ALLOW" SITE EXCEPTIONS FF103+ - - # Set "Cookies" and "Site Data" to clear on shutdown - "privacy.clearOnShutdown.cookies" = true; # Cookies - "privacy.clearOnShutdown.offlineApps" = true; # Site Data - - # SANITIZE MANUAL: IGNORES "ALLOW" SITE EXCEPTIONS - - # Reset default items to clear with Ctrl-Shift-Del - "privacy.cpd.cache" = true; # [DEFAULT: true] - "privacy.cpd.formdata" = true; # Form & Search History - "privacy.cpd.history" = true; # Browsing & Download History - "privacy.cpd.offlineApps" = true; # Offline Website Data - "privacy.cpd.sessions" = true; # [DEFAULT: true] - # "privacy.cpd.offlineApps" = true; # [DEFAULT: false] - "privacy.cpd.cookies" = true; - #"privacy.cpd.downloads" = true; # not used - #"privacy.cpd.openWindows" = false; # Session Restore - #"privacy.cpd.passwords" = false; - #"privacy.cpd.siteSettings" = false; - - # Clear Session Restore data when sanitizing on shutdown or manually [FF34+] - #"privacy.clearOnShutdown.openWindows" = true; - #"privacy.cpd.openWindows" = true; - - # Reset default "Time range to clear" for "Clear Recent History" - # 0=everything = 1=last hour = 2=last two hours = 3=last four hours = 4=today - "privacy.sanitize.timeSpan" = 0; - - # FPP (fingerprintingProtection) - - # Enable FPP in PB mode [FF114+] - #"privacy.fingerprintingProtection.pbmode" = true; # [DEFAULT: true FF118+] - - # Set global FPP overrides [FF114+] - #"privacy.fingerprintingProtection.overrides" = ""; - - # RFP (resistFingerprinting) - - # Enable RFP - "privacy.resistFingerprinting" = true; # [FF41+] - #"privacy.resistFingerprinting.pbmode" = true; # [FF114+] - - # Set new window size rounding max values [FF55+] - "privacy.window.maxInnerWidth" = 1400; - "privacy.window.maxInnerHeight" = 900; - - # Disable mozAddonManager Web API [FF57+] - "privacy.resistFingerprinting.block_mozAddonManager" = true; - - # Enable RFP letterboxing [FF67+] - #"privacy.resistFingerprinting.letterboxing" = true; # [HIDDEN PREF] - #"privacy.resistFingerprinting.letterboxing.dimensions" = ""; # [HIDDEN PREF] - - # Experimental RFP [FF91+] - #"privacy.resistFingerprinting.exemptedDomains" = "*.example.invalid"; - - # Disable using system colors - "browser.display.use_system_colors" = false; # [DEFAULT: false NON-WINDOWS] - - # Enforce non-native widget theme - "widget.non-native-theme.enabled" = true; # [DEFAULT: true] - - # Enforce links targeting new windows to open in a new tab instead - # 1=most recent window or tab = 2=new window = 3=new tab - "browser.link.open_newwindow" = 3; # [DEFAULT: 3] - - # Set all open window methods to abide by "browser.link.open_newwindow" - "browser.link.open_newwindow.restriction" = 0; - - # Disable WebGL (Web Graphics Library) - "webgl.disabled" = true; - - # OPTIONAL OPSEC - - # Start Firefox in PB (Private Browsing) mode - #"browser.privatebrowsing.autostart" = true; - - # Disable memory cache - # capacity: -1=determine dynamically (default) = 0=none = n=memory capacity in kibibytes - #"browser.cache.memory.enable" = false; - #"browser.cache.memory.capacity" = 0; - - # Disable saving passwords - #"signon.rememberSignons" = false; - - # Disable permissions manager from writing to disk [FF41+] [RESTART] - #"permissions.memory_only" = true; # [HIDDEN PREF] - - # Disable intermediate certificate caching [FF41+] [RESTART] - #"security.nocertdb" = true; # - - # Disable favicons in history and bookmarks - "browser.chrome.site_icons" = false; - - # Exclude "Undo Closed Tabs" in Session Restore - #"browser.sessionstore.max_tabs_undo" = 0; - - # Disable resuming session from crash - #"browser.sessionstore.resume_from_crash" = false; - - # Disable "open with" in download dialog [FF50+] - #"browser.download.forbid_open_with" = true; - - # Disable location bar suggestion types - "browser.urlbar.suggest.history" = false; - "browser.urlbar.suggest.bookmark" = false; - "browser.urlbar.suggest.openpage" = false; - "browser.urlbar.suggest.topsites" = false; # [FF78+] - "browser.urlbar.suggest.weather" = false; - - # Disable location bar dropdown - #"browser.urlbar.maxRichResults" = 0; - - # Disable location bar autofill - "browser.urlbar.autoFill" = false; - - # Disable browsing and download history - "places.history.enabled" = false; - - # Discourage downloading to desktop - # 0=desktop = 1=downloads (default) = 2=custom - #"browser.download.folderList" = 2; - - # Disable Form Autofill - "extensions.formautofill.addresses.enabled" = false; # [FF55+] - "extensions.formautofill.creditCards.enabled" = false; # [FF56+] - - # Limit events that can cause a pop-up - #"dom.popup_allowed_events" = "click dblclick mousedown pointerdown"; - - # Disable page thumbnail collection - #"browser.pagethumbnails.capturing_disabled" = true; # [HIDDEN PREF] - - # Disable location bar using search - "keyword.enabled" = false; - - # Force GPU sandboxing (Linux = default on Windows) - "security.sandbox.gpu.level" = 1; - - # Enable Site Isolation - "fission.autostart" = true; - "gfx.webrender.all" = true; - - # OPTIONAL HARDENING - - # Disable MathML (Mathematical Markup Language) [FF51+] - "mathml.disabled" = true; - - # Disable in-content SVG (Scalable Vector Graphics) [FF53+] - #"svg.disabled" = true; - - # Disable graphite - "gfx.font_rendering.graphite.enabled" = false; - - # Disable asm.js [FF22+] - "javascript.options.asmjs" = false; - - # Disable Ion and baseline JIT to harden against JS exploits - "javascript.options.ion" = false; - "javascript.options.baselinejit" = false; - "javascript.options.jit_trustedprincipals" = true; # [FF75+] [HIDDEN PREF] - - # Disable WebAssembly [FF52+] - "javascript.options.wasm" = false; - - # Disable rendering of SVG OpenType fonts - "gfx.font_rendering.opentype_svg.enabled" = false; - - # Disable widevine CDM (Content Decryption Module) - "media.gmp-widevinecdm.enabled" = false; - - # Disable all DRM content (EME: Encryption Media Extension) - "media.eme.enabled" = false; - "browser.eme.ui.enabled" = false; - - # Disable IPv6 if using a VPN - #"network.dns.disableIPv6" = true; - - # Control when to send a cross-origin referer - # * 0=always (default) = 1=only if base domains match = 2=only if hosts match - #"network.http.referer.XOriginPolicy" = 2; - - # Set DoH bootstrap address [FF89+] - #"network.trr.bootstrapAddr" = "10.0.0.1"; # [HIDDEN PREF] - - # DON'T TOUCH - - # Disable Firefox blocklist - "extensions.blocklist.enabled" = false; # [DEFAULT: true] - "extensions.blocklist.addonItemURL" = ""; - "extensions.blocklist.detailsURL" = ""; - "extensions.blocklist.itemURL" = ""; - "services.blocklist.addons.collection" = ""; - "services.blocklist.addons.signer" = ""; - "services.blocklist.plugins.collection" = ""; - "services.blocklist.plugins.signer" = ""; - "services.blocklist.gfx.collection" = ""; - "services.blocklist.gfx.signer" = ""; - - # Enforce no referer spoofing - "network.http.referer.spoofSource" = true; # [DEFAULT: false] - - # Enforce a security delay on some confirmation dialogs such as install = open/save - "security.dialog_enable_delay" = 1000; # [DEFAULT: 1000] - - # Enforce no First Party Isolation [FF51+] - "privacy.firstparty.isolate" = false; # [DEFAULT: false] - - # Enforce SmartBlock shims (about:compat) [FF81+] - "extensions.webcompat.enable_shims" = true; # [HIDDEN PREF] [DEFAULT: true] - - # Enforce no TLS 1.0/1.1 downgrades - "security.tls.version.enable-deprecated" = false; # [DEFAULT: false] - - # Enforce disabling of Web Compatibility Reporter [FF56+] - "extensions.webcompat-reporter.enabled" = false; # [DEFAULT: false] - - # Disable Quarantined Domains [FF115+] - "extensions.quarantinedDomains.enabled" = false; # [DEFAULT: true] - - # prefsCleaner: previously active items removed from arkenfox 115-117 - #"accessibility.force_disabled" = ""; - #"browser.urlbar.dnsResolveSingleWordsAfterSearch" = ""; - #"network.protocol-handler.external.ms-windows-store" = ""; - #"privacy.partition.always_partition_third_party_non_cookie_storage" = ""; - #"privacy.partition.always_partition_third_party_non_cookie_storage.exempt_sessionstorage" = ""; - #"privacy.partition.serviceWorkers" = ""; - - # DON'T BOTHER - - # Disable APIs - "geo.enabled" = false; - #"full-screen-api.enabled" = false; - - # Set default permissions - # 0=always ask (default) = 1=allow = 2=block - "permissions.default.geo" = 2; - "permissions.default.camera" = 2; - "permissions.default.microphone" = 2; - "permissions.default.desktop-notification" = 2; - "permissions.default.xr" = 2; # Virtual Reality - - # Disable canvas capture stream - "canvas.capturestream.enabled" = false; - - # Disable offscreen canvas - "gfx.offscreencanvas.enabled" = false; - - # Disable non-modern cipher suites - #"security.ssl3.ecdhe_ecdsa_aes_128_sha" = false; - #"security.ssl3.ecdhe_ecdsa_aes_256_sha" = false; - #"security.ssl3.ecdhe_rsa_aes_128_sha" = false; - #"security.ssl3.ecdhe_rsa_aes_256_sha" = false; - #"security.ssl3.rsa_aes_128_gcm_sha256" = false; # no PFS - #"security.ssl3.rsa_aes_256_gcm_sha384" = false; # no PFS - #"security.ssl3.rsa_aes_128_sha" = false; # no PFS - #"security.ssl3.rsa_aes_256_sha" = false; # no PFS - - # Control TLS versions - #"security.tls.version.min" = 3; # [DEFAULT: 3] - #"security.tls.version.max" = 4; - - # Disable SSL session IDs [FF36+] - #"security.ssl.disable_session_identifiers" = true; - - # Onions - #"dom.securecontext.allowlist_onions" = true; - #"network.http.referer.hideOnionSource" = true; - - # Referers - #"network.http.sendRefererHeader" = 2; - #"network.http.referer.trimmingPolicy" = 0; - - # Set the default Referrer Policy [FF59+] - # 0=no-referer = 1=same-origin = 2=strict-origin-when-cross-origin = 3=no-referrer-when-downgrade - #"network.http.referer.defaultPolicy" = 2; # [DEFAULT: 2] - #"network.http.referer.defaultPolicy.pbmode" = 2; # [DEFAULT: 2] - - # Disable HTTP Alternative Services [FF37+] - #"network.http.altsvc.enabled" = false; - - # Disable website control over browser right-click context menu - #"dom.event.contextmenu.enabled" = false; - - # Disable icon fonts (glyphs) and local fallback rendering - #"gfx.downloadable_fonts.enabled" = false; # [FF41+] - #"gfx.downloadable_fonts.fallback_delay" = -1; - - # Disable Clipboard API - #"dom.event.clipboardevents.enabled" = false; - - # Disable System Add-on updates - "extensions.systemAddon.update.enabled" = false; # [FF62+] - "extensions.systemAddon.update.url" = ""; # [FF44+] - - # Enable the DNT (Do Not Track) HTTP header - "privacy.donottrackheader.enabled" = false; - - # Customize ETP settings - #"network.cookie.cookieBehavior" = 5; # [DEFAULT: 5] - #"privacy.fingerprintingProtection" = true; # [FF114+] [ETP FF119+] - #"privacy.partition.network_state.ocsp_cache" = true; # [DEFAULT: true FF123+] - #"privacy.query_stripping.enabled" = true; # [FF101+] - "privacy.query_stripping.strip_list" = "__hsfp __hssc __hstc __s _hsenc _openstat dclid fbclid gbraid gclid hsCtaTracking igshid mc_eid ml_subscriber ml_subscriber_hash msclkid oft_c oft_ck oft_d oft_id oft_ids oft_k oft_lk oft_sk oly_anon_id oly_enc_id rb_clickid s_cid twclid vero_conv vero_id wbraid wickedid yclid"; - #"network.http.referer.disallowCrossSiteRelaxingDefault" = true; - #"network.http.referer.disallowCrossSiteRelaxingDefault.top_navigation" = true; # [FF100+] - #"privacy.trackingprotection.enabled" = true; - #"privacy.trackingprotection.socialtracking.enabled" = true; - #"privacy.trackingprotection.cryptomining.enabled" = true; # [DEFAULT: true] - #"privacy.trackingprotection.fingerprinting.enabled" = true; # [DEFAULT: true] - - # Allow embedded tweets and Reddit posts. Don't do it! - #"urlclassifier.trackingSkipURLs" = "*.reddit.com = *.twitter.com = *.twimg.com"; # [HIDDEN PREF] - #"urlclassifier.features.socialtracking.skipURLs" = "*.instagram.com = *.twitter.com = *.twimg.com"; # [HIDDEN PREF] - - # Disable service workers - #"dom.serviceWorkers.enabled" = false; - - # Disable Web Notifications [FF22+] - #"dom.webnotifications.enabled" = false; - - # Disable Push Notifications [FF44+] - "dom.push.enabled" = false; - "dom.push.connection.enabled" = false; - "dom.push.serverURL" = ""; - "dom.push.userAgentID" = ""; - - # Disable WebRTC (Web Real-Time Communication) - "media.peerconnection.enabled" = false; - - # DON'T BOTHER: FINGERPRINTING - - # prefsCleaner: reset items useless for anti-fingerprinting - #"browser.zoom.siteSpecific" = false; - #"dom.enable_performance" = false; - #"dom.enable_resource_timing" = false; - #"dom.maxHardwareConcurrency" = 2; - #"font.system.whitelist" = ""; # [HIDDEN PREF] - #"general.appname.override" = ""; # [HIDDEN PREF] - #"general.appversion.override" = ""; # [HIDDEN PREF] - #"general.buildID.override" = "20181001000000"; # [HIDDEN PREF] - #"general.oscpu.override" = ""; # [HIDDEN PREF] - #"general.platform.override" = ""; # [HIDDEN PREF] - #"general.useragent.override" = "Mozilla/5.0 (Windows NT 10.0; rv:102.0) Gecko/20100101 Firefox/102.0"; # [HIDDEN PREF] - #"media.ondevicechange.enabled" = false; - #"media.video_stats.enabled" = false; - #"webgl.enable-debug-renderer-info" = false; - "ui.use_standins_for_native_colors" = true; - "browser.display.use_document_fonts" = 0; - "device.sensors.enabled" = false; - "dom.gamepad.enabled" = false; - "dom.netinfo.enabled" = false; - "dom.vibrator.enabled" = false; - "dom.w3c_touch_events.enabled" = 0; - "dom.webaudio.enabled" = false; - "media.navigator.enabled" = false; - "media.webspeech.synth.enabled" = false; - - # Disable API for measuring text width and height. - "dom.textMetrics.actualBoundingBox.enabled" = false; - "dom.textMetrics.baselines.enabled" = false; - "dom.textMetrics.emHeight.enabled" = false; - "dom.textMetrics.fontBoundingBox.enabled" = false; - - # NON-PROJECT RELATED - - # WELCOME & WHAT'S NEW NOTICES - - "browser.startup.homepage_override.mstone" = "ignore"; # [HIDDEN PREF] - "startup.homepage_welcome_url" = ""; - "startup.homepage_welcome_url.additional" = ""; - "startup.homepage_override_url" = ""; # What's New page after updates - - # WARNINGS - - "browser.tabs.warnOnClose" = false; # [DEFAULT: false FF94+] - "browser.tabs.warnOnCloseOtherTabs" = false; - "browser.tabs.warnOnOpen" = false; - "browser.warnOnQuitShortcut" = false; # [FF94+] - "full-screen-api.warning.delay" = 0; - "full-screen-api.warning.timeout" = 0; - "browser.warnOnQuit" = false; - - # UPDATES - - # Disable auto-INSTALLING Firefox updates [NON-WINDOWS] - "app.update.auto" = false; - - # Disable auto-CHECKING for extension and theme updates - "extensions.update.enabled" = false; - - # Disable auto-INSTALLING extension and theme updates - "extensions.update.autoUpdateDefault" = false; - - # Disable extension metadata - "extensions.getAddons.cache.enabled" = false; - - # Disable search engine updates (e.g. OpenSearch) - "browser.search.update" = false; - - # CONTENT BEHAVIOR - - "accessibility.typeaheadfind" = false; # enable "Find As You Type" - "clipboard.autocopy" = false; # disable autocopy default [LINUX] - "layout.spellcheckDefault" = 0; # 0=none = 1-multi-line = 2=multi-line & single-line - - # FIREFOX HOME CONTENT - - "browser.newtabpage.activity-stream.feeds.section.topstories" = false; # Recommended by Pocket - "browser.newtabpage.activity-stream.section.highlights.includePocket" = false; - "browser.newtabpage.activity-stream.feeds.topsites" = false; - "browser.newtabpage.activity-stream.showSearch" = false; - "browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = false; - "browser.newtabpage.activity-stream.section.highlights.includeDownloads" = false; - "browser.newtabpage.activity-stream.section.highlights.includeVisited" = false; - - # UX FEATURES - - "extensions.pocket.enabled" = false; # Pocket Account [FF46+] - "extensions.screenshots.disabled" = true; # [FF55+] - "identity.fxaccounts.enabled" = false; # Firefox Accounts & Sync [FF60+] [RESTART] - "reader.parse-on-load.enabled" = false; # Reader View - "browser.tabs.firefox-view" = false; # Firefox-view - - # OTHER - - #"browser.bookmarks.max_backups" = 2; - "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons" = false; # disable CFR [FF67+] - "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features" = false; # disable CFR [FF67+] - "browser.messaging-system.whatsNewPanel.enabled" = false; # What's New toolbar icon [FF69+] - "browser.urlbar.showSearchTerms.enabled" = false; - "browser.sessionstore.interval" = 30000; # minimum interval between session save operations - "network.manage-offline-status" = false; - "browser.preferences.moreFromMozilla" = false; - "browser.disableResetPrompt" = true; # [HIDDEN PREF] - #"xpinstall.signatures.required" = false; # enforced extension signing (Nightly/ESR) - - # MORE - - #"security.insecure_connection_icon.enabled" = ""; # [DEFAULT: true FF70+] - #"security.mixed_content.block_active_content" = ""; # [DEFAULT: true since at least FF60] - "security.ssl.enable_ocsp_stapling" = false; # [DEFAULT: true FF26+] - #"webgl.disable-fail-if-major-performance-caveat" = ""; # [DEFAULT: true FF86+] - "webgl.enable-webgl2" = false; - #"webgl.min_capability_mode" = ""; - - # DEPRECATED / RENAMED - - # ESR115.x still uses all the following prefs - - # FF116 - - # Set RFP's font visibility level [FF94+] - #"layout.css.font-visibility.resistFingerprinting" = 1; # [DEFAULT: 1] - - # FF117 - - # Disable service worker Web Notifications [FF44+] - #"dom.webnotifications.serviceworker.enabled" = false; - - # FF118 - - # Limit font visibility (Windows = Mac = some Linux) [FF94+] - #"layout.css.font-visibility.private" = 1; - #"layout.css.font-visibility.standard" = 1; - #"layout.css.font-visibility.trackingprotection" = 1; - - # Disable permissions delegation [FF73+] - #"permissions.delegation.enabled" = false; - - # FF119 - - # Use en-US locale regardless of the system or region locale - #"javascript.use_us_english_locale" = true; # [HIDDEN PREF] - - # Disable skipping DoH when parental controls are enabled [FF70+] - "network.dns.skipTRR-when-parental-control-enabled" = false; - # -} diff --git a/home/modules/desktop/browser/firefox/theme/penguinFox.nix b/home/modules/desktop/browser/firefox/theme/penguinFox.nix deleted file mode 100644 index 3544332..0000000 --- a/home/modules/desktop/browser/firefox/theme/penguinFox.nix +++ /dev/null @@ -1,181 +0,0 @@ -/* -css -*/ -'' - /* config */ - - * { - --animation-speed: 0.2s; - --button-corner-rounding: 30px; - --urlbar-container-height: 40px !important; - --urlbar-min-height: 30px !important; - --urlbar-height: 30px !important; - --urlbar-toolbar-height: 38px !important; - --moz-hidden-unscrollable: scroll !important; - --toolbarbutton-border-radius: 3px !important; - --tabs-border-color: transparent; - } - - :root { - --window: -moz-Dialog !important; - --secondary: color-mix(in srgb, currentColor 5%, -moz-Dialog) !important; - --uc-border-radius: 0px; - --uc-status-panel-spacing: 0px; - --uc-page-action-margin: 7px; - } - - /* animation and effect */ - #nav-bar:not([customizing]) { - visibility: visible; - margin-top: -40px; - transition-delay: 0.1s; - filter: alpha(opacity=0); - opacity: 0; - transition: visibility, ease 0.1s, margin-top, ease 0.1s, opacity, ease 0.1s, - rotate, ease 0.1s !important; - } - - #nav-bar:hover, - #nav-bar:focus-within, - #urlbar[focused='true'], - #identity-box[open='true'], - #titlebar:hover + #nav-bar:not([customizing]), - #toolbar-menubar:not([inactive='true']) ~ #nav-bar:not([customizing]) { - visibility: visible; - - margin-top: 0px; - filter: alpha(opacity=100); - opacity: 100; - margin-bottom: -0.2px; - } - #PersonalToolbar { - margin-top: 0px; - } - #nav-bar .toolbarbutton-1[open='true'] { - visibility: visible; - opacity: 100; - } - - tab:not(:active) .tab-background { - transition: background-color var(--animation-speed) !important; - } - :root:not([customizing]) :hover > .tabbrowser-tab:not(:hover) { - transition: blur, ease 0.1s !important; - } - - :root:not([customizing]) :not(:hover) > .tabbrowser-tab { - transition: blur, ease 0.1s !important; - } - - #tabbrowser-tabs .tab-label-container[customizing] { - color: transparent; - transition: ease 0.1s; - transition-delay: 0.2s; - } - - .tabbrowser-tab:not([pinned]) .tab-icon-image ,.bookmark-item .toolbarbutton-icon{opacity: 0!important; transition: .15s !important; width: 0!important; padding-left: 16px!important} - .tabbrowser-tab:not([pinned]):hover .tab-icon-image,.bookmark-item:hover .toolbarbutton-icon{opacity: 100!important; transition: .15s !important; display: inline-block!important; width: 16px!important; padding-left: 0!important} - .tabbrowser-tab:not([hover]) .tab-icon-image,.bookmark-item:not([hover]) .toolbarbutton-icon{padding-left: 0!important} - - /* Removes annoying buttons and spaces */ - #firefox-view-button, .titlebar-spacer[type="pre-tabs"], .titlebar-spacer[type="post-tabs"]{display: none !important} - #tabbrowser-tabs{border-inline-start-width: 0!important} - - /* Makes some buttons nicer */ - #PanelUI-menu-button, #unified-extensions-button, #reload-button, #stop-button {padding: 2px !important} - #reload-button, #stop-button{margin: 1px !important;} - - /* Tabs colors */ - #tabbrowser-tabs:not([movingtab]) - > #tabbrowser-arrowscrollbox - > .tabbrowser-tab - > .tab-stack - > .tab-background[multiselected='true'], - #tabbrowser-tabs:not([movingtab]) - > #tabbrowser-arrowscrollbox - > .tabbrowser-tab - > .tab-stack - > .tab-background[selected='true'] { - background-image: none !important; - background-color: var(--toolbar-bgcolor) !important; - } - - /* Inactive tabs color */ - #navigator-toolbox { - background-color: var(--window) !important; - } - - /* X-button */ - :root { - --show-tab-close-button: none; - --show-tab-close-button-hover: -moz-inline-block; - } - .tabbrowser-tab:not([pinned]) .tab-close-button { display: var(--show-tab-close-button) !important; } - .tabbrowser-tab:not([pinned]):hover .tab-close-button { display: var(--show-tab-close-button-hover) !important } - - /* Window colors */ - - :root { - --lwt-sidebar-background-color: var(--window) !important; - --lwt-toolbar-field-focus: var(--secondary) !important; - } - - /* tabbar */ - - /* Hide the secondary Tab Label - * e.g. playing indicator (the text, not the icon) */ - .tab-secondary-label { display: none !important; } - - #nav-bar:not([tabs-hidden='true']) { - box-shadow: none; - } - - :root { - --toolbarbutton-border-radius: 0 !important; - --tab-border-radius: 0 !important; - --tab-block-margin: 0 !important; - } - - .tab-background { - border-right: 0px solid rgba(0, 0, 0, 0) !important; - margin-left: -4px !important; - } - - .tabbrowser-tab:is([visuallyselected='true'], [multiselected]) - > .tab-stack - > .tab-background { - box-shadow: none !important; - } - - .tabbrowser-tab[last-visible-tab='true'] { - padding-inline-end: 0 !important; - } - - #tabs-newtab-button { - padding-left: 0 !important; - } - - /* remove tab shadow */ - .tabbrowser-tab - >.tab-stack - > .tab-background { box-shadow: none !important; } - - /* multi tab selection */ - #tabbrowser-tabs:not([noshadowfortests]) .tabbrowser-tab:is([multiselected]) - > .tab-stack - > .tab-background:-moz-lwtheme { outline-color: var(--toolbarseparator-color) !important; } - - /* Hides the list-all-tabs button*/ - #alltabs-button { display: var(--uc-show-all-tabs-button) !important; } - - /* remove gap after pinned tabs */ - #tabbrowser-tabs[haspinnedtabs]:not([positionpinnedtabs]) - > #tabbrowser-arrowscrollbox - > .tabbrowser-tab:nth-child(1 of :not([pinned], [hidden])) { margin-inline-start: 0 !important; } - - /* Removes annoying border */ - #navigator-toolbox{border:none !important;} - - /* Removes the annoying rainbow thing from the hamburger */ - #appMenu-fxa-separator{border-image:none !important;} -'' diff --git a/home/modules/desktop/communication/discord/vesktop.nix b/home/modules/desktop/communication/discord/vesktop.nix deleted file mode 100644 index b894b10..0000000 --- a/home/modules/desktop/communication/discord/vesktop.nix +++ /dev/null @@ -1,176 +0,0 @@ -{ - config, - osConfig, - lib, - pkgs, - ... -}: let - inherit (osConfig.ooknet.appearance) colorscheme fonts; - inherit (colorscheme) palette; - inherit (config.ooknet.desktop) discord; - inherit (lib) mkIf mkMerge; - - cfg = config.ooknet.communication.discord; - vesktopMime = {"x-scheme-handler/discord" = ["vesktop.desktop"];}; -in { - config = mkMerge [ - (mkIf (cfg.enable || discord == "vesktop") { - # - home.packages = [ - (pkgs.vesktop.overrideAttrs (old: { - patches = (old.patches or []) ++ [./vesktop-patch.patch]; - })) - ]; - - xdg.configFile."vesktop/themes/nix.css".text = - /* - css - */ - '' - /** - * @name nix-colors-minimal - * @author aoku - * @description minimal theme designed with nix colors - */ - - :root { - --nix-bg1: #${palette.base00}; - --nix-bg2: #${palette.base01}; - --nix-bg3: #${palette.base02}; - - --nix-fg1: #${palette.base05}; - --nix-fg2: #${palette.base07}; - --nix-fg3: #${palette.base03}; - --nix-link: #${palette.base0D}; - - --nix-accent: #${palette.base08}; - --nix-hi: #${palette.base0B}; - - --font-mono: ${fonts.monospace.family}, monospace; - --font-regular: ${fonts.regular.family}, sans serif; - - /* server collapse */ - --sb-collapsed-width: 12px; - --sb-transition-duration: 0s; - } - - .theme-dark { - --background-primary: var(--nix-bg1); - --background-secondary: var(--nix-bg1); - --background-secondary-alt: var(--nix-bg1); - --background-accent: var(--nix-accent); - --background-tertiary: var(--nix-bg1); - --background-floating: var(--nix-bg1); - --background-mentioned: var(--nix-bg1); - --background-mentioned-hover: var(--nix-bg1); - --background-mobile: var(--nix-bg1); - --background-mobile-secondary: var(--nix-bg2); - --background-modifier-selected: var(--nix-bg1); - --channeltextarea-background:var(--nix-bg1); - --background-modifier-hover:var(--nix-bg1); - --activity-card-background: var(--nix-bg2); - - --header-primary: var(--nix-fg2); - --header-secondary: var(--nix-fg1); - - --text-normal: var(--nix-fg1); - --text-muted: var(--nix-fg1); - --text-link: var(--nix-link); - --text-warning: var(--nix-accent); - --font-primary: var(--font-mono); - --font-headline: var(--font-mono); - --font-display: var(--font-mono); - - --interactive-normal: var(--nix-fg1); /*base05*/ - --interactive-hover: var(--nix-hi); /*base0B*/ - --interactive-active: var(--nix-fg2); - --interactive-muted: var(--nix-fg3); /*base03*/ - --channels-default: var(--nix-fg1); - - --scrollbar-thin-thumb: transparent; - --scrollbar-thin-track: transparent; - --scrollbar-auto-thumb: var(--nix-fg1); - --scrollbar-auto-track:var(--nix-bg1); - --scrollbar-auto-scrollbar-color-thumb: var(--nix-accent); - } - - .messagesWrapper_ea2b0b { - font-family: var(--font-regular); - } - - .titleWrapper__482dc { - font-family: var(--font-mono); - } - - .link__95dc0 /* text channel*/{ - border-radius: 0px; - margin-left: -10px; - font-family: var(--font-mono); - } - - .container_ca50b9 .avatar_f8541f { /*avatar*/ - display: none; - } - - .form__13a2c /* text input box resize */ { - height: 50px; - font-family: var(--font-regular); - } - - .containerDefault__3187b .wrapper__7bcde:before /* text channel */{ - content: ""; - display:inline-block; - background: var(--nix-hi); - height: 100%; - position: absolute; - left: 0; - } - - - /* server collapse */ - .guilds__2b93a /* servers */{ - overflow: hidden !important; - width: var(--sb-collapsed-width, 75px); - transition: width var(--sb-transition-duration); - } - .guilds__2b93a:hover /* expand server bar on hover */{ - width: 70px; - overflow: visible !important; - animation: server-bar-overflow 0s linear 0ms forwards - } - .guilds__2b93a ~ .base__3e6af /* friends list, chat */{ - position: absolute; - left: var(--sb-collapsed-left, var(--sb-collapsed-width)); - top: var(--sb-collapsed-top, 0px); - bottom: var(--sb-collapsed-bottom, 0px); - right: var(--sb-collapsed-right, 0px); - transition-property: var(--sb-transition-property, left); - transition-duration: var(--sb-transition-duration); - } - .guilds__2b93a:hover ~ .base__3e6af /* friends list, chat */{ - position: absolute; - left: var(--sb-left, 70px); - top: var(--sb-top, 0px); - bottom: var(--sb-bottom, 0px); - right: var(--sb-right, 0px); - } - @keyframes server-bar-overflow{ - from{ - overflow: hidden; - } - to{ - overflow: visible; - } - } - ''; - }) - - (mkIf (discord == "vesktop") { - ooknet.binds.discord = "vesktop"; - xdg.mimeApps = { - associations.added = vesktopMime; - defaultApplications = vesktopMime; - }; - }) - ]; -} diff --git a/home/modules/desktop/creative/audacity.nix b/home/modules/desktop/creative/audacity.nix deleted file mode 100644 index e48a3b2..0000000 --- a/home/modules/desktop/creative/audacity.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: let - inherit (lib) mkIf; - cfg = config.ooknet.creative.audacity; -in { - config = mkIf cfg.enable { - home.packages = [pkgs.audacity]; - }; -} diff --git a/home/modules/desktop/creative/inkscape.nix b/home/modules/desktop/creative/inkscape.nix deleted file mode 100644 index ba30756..0000000 --- a/home/modules/desktop/creative/inkscape.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: let - inherit (lib) mkIf; - cfg = config.ooknet.creative.inkscape; -in { - config = mkIf cfg.enable { - home.packages = [pkgs.inkscape-with-extensions]; - }; -} diff --git a/home/modules/desktop/file-manager/nemo.nix b/home/modules/desktop/file-manager/nemo.nix deleted file mode 100644 index 24e1801..0000000 --- a/home/modules/desktop/file-manager/nemo.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: let - inherit (lib) mkIf mkMerge; - cfg = config.ooknet.fileManager.nemo; - inherit (config.ooknet.desktop) fileManager; - nemoMime = { - "inode/directory" = ["nemo.desktop"]; - }; -in { - config = mkMerge [ - (mkIf (cfg.enable || fileManager == "nemo") { - home.packages = [pkgs.nemo-with-extensions]; - }) - - (mkIf (fileManager == "nemo") { - ooknet.binds.fileManager = "nemo"; - xdg.mimeApps = { - associations.added = nemoMime; - defaultApplications = nemoMime; - }; - }) - ]; -} diff --git a/home/modules/desktop/gaming/bottles.nix b/home/modules/desktop/gaming/bottles.nix deleted file mode 100644 index 03b32ca..0000000 --- a/home/modules/desktop/gaming/bottles.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: let - inherit (lib) mkIf; - cfg = config.ooknet.gaming.bottles; -in { - config = mkIf cfg.enable { - home.packages = with pkgs; [ - bottles - ]; - }; -} diff --git a/home/modules/desktop/gaming/default.nix b/home/modules/desktop/gaming/default.nix deleted file mode 100644 index 1aa9b7d..0000000 --- a/home/modules/desktop/gaming/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ - imports = [ - ./factorio.nix - ./lutris.nix - ./bottles.nix - ./wine.nix - ]; -} diff --git a/home/modules/desktop/gaming/factorio.nix b/home/modules/desktop/gaming/factorio.nix deleted file mode 100644 index 80a8183..0000000 --- a/home/modules/desktop/gaming/factorio.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: let - cfg = config.ooknet.gaming.factorio; -in { - config = lib.mkIf cfg.enable { - home.packages = with pkgs; [factorio]; - }; -} diff --git a/home/modules/desktop/gaming/lutris.nix b/home/modules/desktop/gaming/lutris.nix deleted file mode 100644 index 5b429ed..0000000 --- a/home/modules/desktop/gaming/lutris.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: let - inherit (lib) mkIf; - cfg = config.ooknet.gaming.lutris; -in { - config = mkIf cfg.enable { - home.packages = with pkgs; [ - (lutris.override { - extraPkgs = p: [ - p.pixman - p.libjpeg - p.gnome.zenity - p.gamescope - ]; - }) - winetricks - ]; - }; -} diff --git a/home/modules/desktop/gaming/wine.nix b/home/modules/desktop/gaming/wine.nix deleted file mode 100644 index fbd897f..0000000 --- a/home/modules/desktop/gaming/wine.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: let - inherit (lib) mkIf; - cfg = config.ooknet.gaming.wine; -in { - config = mkIf cfg.enable { - home.packages = with pkgs; [ - winetricks - protontricks - protonup-qt - wineWowPackages.waylandFull - wowup-cf - ]; - }; -} diff --git a/home/modules/desktop/media/default.nix b/home/modules/desktop/media/default.nix deleted file mode 100644 index 2daf968..0000000 --- a/home/modules/desktop/media/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ - imports = [ - ./video - ./image - ./music - ]; -} diff --git a/home/modules/desktop/media/music/default.nix b/home/modules/desktop/media/music/default.nix deleted file mode 100644 index 1abe08b..0000000 --- a/home/modules/desktop/media/music/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ - imports = [ - #./spotify --- still needs to be implemented - ./tui.nix - ]; -} diff --git a/home/modules/desktop/media/video/default.nix b/home/modules/desktop/media/video/default.nix deleted file mode 100644 index a576fe2..0000000 --- a/home/modules/desktop/media/video/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ - imports = [ - ./youtube.nix - ./jellyfin-player.nix - ./mpv.nix - ]; -} diff --git a/home/modules/desktop/media/video/jellyfin-player.nix b/home/modules/desktop/media/video/jellyfin-player.nix deleted file mode 100644 index 5dc1597..0000000 --- a/home/modules/desktop/media/video/jellyfin-player.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ - pkgs, - lib, - config, - ... -}: let - inherit (lib) mkIf; - cfg = config.ooknet.media.video.jellyfinPlayer; -in { - config = mkIf cfg.enable { - home.packages = [pkgs.jellyfin-media-player]; - }; -} diff --git a/home/modules/desktop/media/video/youtube.nix b/home/modules/desktop/media/video/youtube.nix deleted file mode 100644 index 92c40de..0000000 --- a/home/modules/desktop/media/video/youtube.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: let - inherit (lib) mkIf; - cfg = config.ooknet.media.video.youtube; -in { - config = mkIf cfg.enable { - home.packages = [pkgs.youtube-tui]; - programs.yt-dlp = { - enable = true; - }; - }; -} diff --git a/home/modules/desktop/productivity/default.nix b/home/modules/desktop/productivity/default.nix deleted file mode 100644 index a8af9b0..0000000 --- a/home/modules/desktop/productivity/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{...}: { - imports = [ - ./office - ./notes - ./pdf - ]; -} diff --git a/home/modules/desktop/productivity/notes/obsidian.nix b/home/modules/desktop/productivity/notes/obsidian.nix deleted file mode 100644 index ee09996..0000000 --- a/home/modules/desktop/productivity/notes/obsidian.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: let - inherit (lib) mkIf mkMerge hm; - cfg = config.ooknet.productivity.notes.obsidian; - inherit (config.ooknet.desktop) notes; - # admin = osConfig.ooknet.host.admin; - # TODO: use admin.githubUsername - notesRepo = "git@github.com:ooks-io/notes.git"; - notesPath = "${config.xdg.userDirs.documents}/notes"; -in { - config = mkMerge [ - (mkIf (cfg.enable || notes == "obsidian") { - home.packages = [pkgs.obsidian]; - home.activation.cloneObsidianVault = - hm.dag.entryAfter ["installPackages"] - /* - shell - */ - '' - if ! [ -d "${notesPath}" ]; then - $DRY_RUN_CMD git clone ${notesRepo} ${notesPath} - fi - ''; - }) - - (mkIf (notes == "obsidian") { - ooknet.binds.notes = "obsidian"; - }) - ]; -} diff --git a/home/modules/desktop/productivity/office/default.nix b/home/modules/desktop/productivity/office/default.nix deleted file mode 100644 index 656754a..0000000 --- a/home/modules/desktop/productivity/office/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -# TODO: add openoffice -{ - imports = [ - ./libreoffice.nix - ]; -} diff --git a/home/modules/desktop/productivity/office/libreoffice.nix b/home/modules/desktop/productivity/office/libreoffice.nix deleted file mode 100644 index 2342ee7..0000000 --- a/home/modules/desktop/productivity/office/libreoffice.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: let - inherit (lib) mkIf mkEnableOption; - cfg = config.ooknet.desktop.productivity.office; -in { - options.ooknet.desktop.productivity.office.enable = mkEnableOption "enable office home module"; - config = mkIf cfg.enable { - home.packages = [pkgs.libreoffice]; - }; -} diff --git a/home/modules/desktop/productivity/pdf/default.nix b/home/modules/desktop/productivity/pdf/default.nix deleted file mode 100644 index 4a14fa5..0000000 --- a/home/modules/desktop/productivity/pdf/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ - imports = [ - ./zathura.nix - ]; -} diff --git a/home/modules/desktop/security/polkit.nix b/home/modules/desktop/security/polkit.nix deleted file mode 100644 index 5e430d9..0000000 --- a/home/modules/desktop/security/polkit.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: let - inherit (lib) mkIf; - inherit (config.ooknet.security) polkit; -in { - config = { - systemd.user.services = { - polkit-pantheon-authentication-agent-1 = mkIf (polkit == "pantheon") { - Unit.Description = "polkit-pantheon-authentication-agent-1"; - - Install = { - WantedBy = ["graphical-session.target"]; - Wants = ["graphical-session.target"]; - After = ["graphical-session.target"]; - }; - - Service = { - Type = "simple"; - ExecStart = "${pkgs.pantheon.pantheon-agent-polkit}/libexec/policykit-1-pantheon/io.elementary.desktop.agent-polkit"; - Restart = "on-failure"; - RestartSec = 1; - TimeoutStopSec = 10; - }; - }; - - polkit-gnome-authentication-agent-1 = mkIf (polkit == "gnome") { - Unit.Description = "polkit-pantheon-authentication-agent-1"; - Install = { - WantedBy = ["graphical-session.target"]; - Wants = ["graphical-session.target"]; - After = ["graphical-session.target"]; - }; - - Service = { - Type = "simple"; - ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"; - Restart = "on-failure"; - RestartSec = 1; - TimeoutStopSec = 10; - }; - }; - }; - }; -} diff --git a/home/modules/desktop/terminal/kitty.nix b/home/modules/desktop/terminal/kitty.nix deleted file mode 100644 index 328e1e6..0000000 --- a/home/modules/desktop/terminal/kitty.nix +++ /dev/null @@ -1,74 +0,0 @@ -{ - config, - lib, - osConfig, - ... -}: let - inherit (lib) mkIf; - inherit (osConfig.ooknet.appearance) colorscheme fonts; - inherit (colorscheme) palette; - inherit (config.ooknet) host desktop; - inherit (desktop) terminal; - inherit (host.admin) shell; - cfg = config.ooknet.terminal.kitty; -in { - config = mkIf (cfg.enable || terminal == "kitty") { - home.sessionVariables = mkIf (terminal == "kitty") { - TERMINAL = "kitty -1"; - TERM = "kitty -1"; - }; - - ooknet.binds.terminal = mkIf (terminal == "kitty") "kitty -1"; - ooknet.binds.terminalLaunch = mkIf (terminal == "kitty") "kitty -e"; - - programs.kitty = { - enable = true; - font = { - name = fonts.monospace.family; - size = 12; - }; - shellIntegration.enableFishIntegration = mkIf (shell == "fish") true; - settings = { - scrollback_lines = 4000; - scrollback_pager_history_size = 2048; - window_padding_width = 1; - foreground = "#${palette.base05}"; - background = "#${palette.base00}"; - background_opacity = "1.0"; - selection_background = "#${palette.base05}"; - selection_foreground = "#${palette.base00}"; - url_color = "#${palette.base04}"; - cursor = "#${palette.base05}"; - active_border_color = "#${palette.base03}"; - inactive_border_color = "#${palette.base01}"; - active_tab_background = "#${palette.base00}"; - active_tab_foreground = "#${palette.base05}"; - inactive_tab_background = "#${palette.base01}"; - inactive_tab_foreground = "#${palette.base04}"; - tab_bar_background = "#${palette.base01}"; - color0 = "#${palette.base00}"; - color1 = "#${palette.base08}"; - color2 = "#${palette.base0B}"; - color3 = "#${palette.base0A}"; - color4 = "#${palette.base0D}"; - color5 = "#${palette.base0E}"; - color6 = "#${palette.base0C}"; - color7 = "#${palette.base05}"; - color8 = "#${palette.base03}"; - color9 = "#${palette.base08}"; - color10 = "#${palette.base0B}"; - color11 = "#${palette.base0A}"; - color12 = "#${palette.base0D}"; - color13 = "#${palette.base0E}"; - color14 = "#${palette.base0C}"; - color15 = "#${palette.base07}"; - color16 = "#${palette.base09}"; - color17 = "#${palette.base0F}"; - color18 = "#${palette.base01}"; - color19 = "#${palette.base02}"; - color20 = "#${palette.base04}"; - color21 = "#${palette.base06}"; - }; - }; - }; -} diff --git a/home/modules/desktop/tools/ookpower.nix b/home/modules/desktop/tools/ookpower.nix deleted file mode 100644 index f067679..0000000 --- a/home/modules/desktop/tools/ookpower.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ - lib, - config, - inputs, - pkgs, - ... -}: let - inherit (lib) mkIf; - inherit (config.ooknet.wayland) launcher; -in { - config = mkIf (launcher == "rofi") { - home.packages = [inputs.ooks-scripts.packages.${pkgs.system}.powermenu]; - ooknet.binds.powerMenu = "powermenu -c dmenu"; - }; -} diff --git a/home/modules/desktop/tools/zellijMenu.nix b/home/modules/desktop/tools/zellijMenu.nix deleted file mode 100644 index 6d869dd..0000000 --- a/home/modules/desktop/tools/zellijMenu.nix +++ /dev/null @@ -1,239 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: let - inherit (lib) mkIf; - inherit (config.ooknet.console) multiplexer; - inherit (config.ooknet.wayland) launcher; - inherit (config.ooknet) binds; - zellijmenu = pkgs.writeShellApplication { - name = "zellijmenu"; - runtimeInputs = with pkgs; [coreutils rofi-wayland]; - text = - /* - bash - */ - '' - set -e - - type="" - type_dir="" - project_name="" - project_dir="" - session_name="" - layout="" - spawn_terminal=0 - - while [[ "$#" -gt 0 ]]; do - case $1 in - -n) spawn_terminal=1 ;; - *) - echo "Unknown parameter: $1" >&2 - exit 1 - ;; - esac - shift - done - - rofi_cmd() { - MSG=$1 - rofi -dmenu -i -mesg "$MSG" - } - - zellij_cmd() { - if [[ "$spawn_terminal" -eq 1 ]]; then - ${binds.terminalLaunch} zellij "$@" - else - zellij "$@" - fi - } - - session_manager() { - session_list() { - zellij ls -s | tr ' ' '\n' - } - - layout_menu() { - layout_list=$(find ~/.config/zellij/layouts -name "*.kdl" | sed 's|.*/||; s/\.kdl$//' | tr ' ' '\n') - echo -e "$layout_list" | rofi_cmd "Select layout for $session_name:" - } - - session_menu() { - echo -e "$(session_list)" | rofi_cmd "Session:" - } - - session_select() { - session_name=$(session_menu) - if [[ -z "$session_name" ]]; then - echo "Nothing selected." - exit 0 - fi - - if session_list | grep -qx "$session_name"; then - session_action="select" - else - session_action="create" - fi - } - - selection_menu() { - echo -e "Attach\nDelete\nBack" | rofi_cmd "$session_name action:" - } - - while true; do - session_select - case $session_action in - "create") - layout="$(layout_menu)" - if [ -z "$layout" ]; then - echo "No layout given" - continue - fi - zellij_cmd -s "$session_name" --layout "$layout" - break - ;; - "select") - selection=$(selection_menu) - case $selection in - "Attach") - zellij_cmd attach "$session_name" - break - ;; - "Delete") zellij delete-session --force "$session_name" ;; - "Back") echo "Going back." ;; - *) echo "Going Back." ;; - esac - ;; - *) echo "Going Back" ;; - esac - done - } - - project_manager() { - get_project_type() { - while true; do - type=$(echo -e "script\nnix" | rofi_cmd "Select project type:") - case "$type" in - script) - type_dir="$SCRIPTS" - break - ;; - nix) - type_dir="$NIX_DIR" - break - ;; - *) - echo "Invalid selection, try again." - ;; - esac - done - } - - get_project_name() { - while true; do - project_name=$(rofi_cmd "Enter project name:") - if [ -z "$project_name" ]; then - echo "No name provided, try again." - elif [ -d "$type_dir/$project_name" ]; then - echo "Project already exists, try again." - else - project_dir="$type_dir/$project_name" - break - fi - done - } - - get_session_name() { - session_name="$project_name" - if zellij ls | grep -q "^$session_name$"; then - session_name=$(rofi_cmd "Session name '$project_name' in use, enter a new session name:") - if [ -z "$session_name" ]; then - echo "No session name entered, exiting." - exit 1 - fi - fi - } - - get_layout() { - case "$type" in - script) - layout="script" - ;; - nix) - layout="nix" - ;; - *) - echo "Unknown project type, using default layout." - layout="base" - ;; - esac - } - - select_project() { - project_name=$(find "$type_dir" -maxdepth 1 -mindepth 1 -type d ! -name .git -exec basename {} \; | rofi_cmd "Select project:") - project_dir="$type_dir/$project_name" - - cd "$project_dir" || return 1 - get_session_name - get_layout - zellij_cmd -s "$session_name" --layout "$layout" - } - - create_and_start_project() { - mkdir -p "$project_dir" - cd "$project_dir" || return 1 - - case "$type" in - script) - echo -e "#!/usr/bin/env bash\necho 'hello world'" >"$project_name.sh" - chmod +x "$project_name.sh" - ;; - nix) - echo "Creating Nix project..." - # still need to implement - ;; - *) - echo "Unknown project type." - return 1 - ;; - esac - - get_session_name - get_layout - zellij_cmd -s "$session_name" --layout "$layout" - } - project_action=$(echo -e "Create Project\nSelect Project" | rofi_cmd "Project action:") - case "$project_action" in - "Create Project") - get_project_type - get_project_name - create_and_start_project - ;; - "Select Project") - get_project_type - select_project - ;; - esac - - } - - main() { - main_action=$(echo -e "Projects\nSessions" | rofi_cmd "Choose action:") - case "$main_action" in - "Projects") project_manager ;; - "Sessions") session_manager ;; - *) echo "Invalid option, exiting." ;; - esac - } - - main - ''; - }; -in { - config = mkIf (multiplexer == "zellij" && launcher == "rofi") { - home.packages = [zellijmenu]; - ooknet.binds.zellijMenu = "zellijmenu -n"; - }; -} diff --git a/home/modules/desktop/wayland/bar/default.nix b/home/modules/desktop/wayland/bar/default.nix deleted file mode 100644 index 94829c7..0000000 --- a/home/modules/desktop/wayland/bar/default.nix +++ /dev/null @@ -1,19 +0,0 @@ -{lib, ...}: { - imports = [ - #./eww - # ./ags - ./waybar - ]; - - options.ooknet.desktop.wayland.bar = { - eww = { - enable = lib.mkEnableOption "Enable Eww bar"; - }; - ags = { - enable = lib.mkEnableOption "Enable ags bar"; - }; - waybar = { - enable = lib.mkEnableOption "Enable waybar bar"; - }; - }; -} diff --git a/home/modules/desktop/wayland/compositor/hyprland/default.nix b/home/modules/desktop/wayland/compositor/hyprland/default.nix deleted file mode 100644 index c2e0a78..0000000 --- a/home/modules/desktop/wayland/compositor/hyprland/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ - inputs, - lib, - config, - pkgs, - ... -}: let - inherit (config.ooknet) wayland; - inherit (lib) mkIf; -in { - imports = [ - inputs.hyprland.homeManagerModules.default - ./settings - ./extras - ]; - - config = mkIf (wayland.compositor == "hyprland") { - home.packages = [ - pkgs.hyprpicker - ]; - - wayland.windowManager.hyprland = { - enable = true; - package = inputs.hyprland.packages.${pkgs.system}.hyprland; - xwayland.enable = true; - systemd = { - enable = true; - variables = ["--all"]; - }; - }; - }; -} diff --git a/home/modules/desktop/wayland/compositor/hyprland/extras/default.nix b/home/modules/desktop/wayland/compositor/hyprland/extras/default.nix deleted file mode 100644 index 37a3c04..0000000 --- a/home/modules/desktop/wayland/compositor/hyprland/extras/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ - imports = [ - ./hyprcapture.nix - ./hyprshade.nix - ]; -} diff --git a/home/modules/desktop/wayland/compositor/hyprland/extras/hyprcapture.nix b/home/modules/desktop/wayland/compositor/hyprland/extras/hyprcapture.nix deleted file mode 100644 index b52e2dd..0000000 --- a/home/modules/desktop/wayland/compositor/hyprland/extras/hyprcapture.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ - lib, - config, - pkgs, - inputs, - ... -}: let - inherit (lib) mkIf; - inherit (config.ooknet) wayland; -in { - config = mkIf (wayland.compositor == "hyprland") { - home.packages = with inputs; [ - # Screenshot tool - hyprland-contrib.packages.${pkgs.system}.grimblast - # Screen recording tool - ooks-scripts.packages.${pkgs.system}.hyprrecord - ]; - - # Add XDG user directories that the scripts use - xdg.userDirs.extraConfig = { - XDG_RECORDINGS_DIR = "${config.xdg.userDirs.videos}/Recordings"; - XDG_SCREENSHOTS_DIR = "${config.xdg.userDirs.pictures}/Screenshots"; - }; - - wayland.windowManager.hyprland.settings.bind = [ - # Screenshot binds - ", Print, exec, grimblast --notify --cursor copysave area" - "SUPER, Print, exec, grimblast --notify --cursor copysave screen" - # Recording binds - "SUPER, r, exec, hyprrecord -a -w video screen copysave" - "SUPER CTRL, r, exec, hyprrecord -a -w video area copysave" - "SUPER ALT, r, exec, hyprrecord -w gif area copysave" - ]; - }; -} diff --git a/home/modules/desktop/wayland/compositor/hyprland/extras/hyprshade.nix b/home/modules/desktop/wayland/compositor/hyprland/extras/hyprshade.nix deleted file mode 100644 index b8fa982..0000000 --- a/home/modules/desktop/wayland/compositor/hyprland/extras/hyprshade.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: let - inherit (lib) mkIf; - inherit (config.ooknet) wayland; -in { - config = mkIf (wayland.compositor == "hyprland") { - home.packages = [pkgs.hyprshade]; - # TODO: implement hyprshade configuration - }; -} diff --git a/home/modules/desktop/wayland/compositor/hyprland/settings/appearance.nix b/home/modules/desktop/wayland/compositor/hyprland/settings/appearance.nix deleted file mode 100644 index 3ecd897..0000000 --- a/home/modules/desktop/wayland/compositor/hyprland/settings/appearance.nix +++ /dev/null @@ -1,55 +0,0 @@ -{ - config, - osConfig, - lib, - ... -}: let - inherit (osConfig.ooknet.appearance) colorscheme cursor; - inherit (colorscheme) palette; - inherit (config.ooknet) wayland; - inherit (lib) mkIf; -in { - config = mkIf (wayland.compositor == "hyprland") { - wayland.windowManager.hyprland = { - settings = { - # cursor = { - # inactive_timeout = 4; - # }; - general = { - gaps_in = 10; - gaps_out = 10; - border_size = 2; - "col.active_border" = "0xff${palette.base05}"; - "col.inactive_border" = "0xff${palette.base02}"; - }; - - exec-once = [ - "hyprctl setcursor ${cursor.name} ${toString cursor.size}" - ]; - - decoration = { - active_opacity = 1.0; - inactive_opacity = 1.0; - fullscreen_opacity = 1.0; - - rounding = 0; - - blur = { - enabled = false; - ignore_opacity = true; - }; - - drop_shadow = true; - shadow_range = 12; - shadow_offset = "3 3"; - "col.shadow" = "0x44000000"; - "col.shadow_inactive" = "0x66000000"; - }; - - animations = { - enabled = false; - }; - }; - }; - }; -} diff --git a/home/modules/desktop/wayland/compositor/hyprland/settings/binds.nix b/home/modules/desktop/wayland/compositor/hyprland/settings/binds.nix deleted file mode 100644 index 668df83..0000000 --- a/home/modules/desktop/wayland/compositor/hyprland/settings/binds.nix +++ /dev/null @@ -1,122 +0,0 @@ -{ - lib, - config, - ... -}: let - inherit (lib) mkIf; - inherit (config.ooknet) wayland; - inherit (config.ooknet) binds; -in { - config = mkIf (wayland.compositor == "hyprland") { - wayland.windowManager.hyprland.settings = { - bind = [ - # Program Launch - "SUPER, b, exec, ${binds.browser}" - "SUPER, return, exec, ${binds.terminal}" - "SUPER, e, exec, ${binds.terminalLaunch} $EDITOR" - "SUPERSHIFT, P, exec, ${binds.password}" - "SUPER, d, exec, ${binds.discord}" - "SUPERSHIFT, e, exec, ${binds.fileManager}" - "SUPERSHIFT, S, exec, ${binds.steam}" - "SUPERSHIFT, n, exec, ${binds.notes}" - "SUPER, escape, exec, ${binds.terminalLaunch} --title=BTOP btop" - "SUPER CTRL, return, exec, ${binds.zellijMenu}" - "SUPER, delete, exec, ${binds.powerMenu}" - "SUPERSHIFT, F, exec, ${binds.factorio}" - - # Spotify PLayer Controls - "SUPER, M, exec, ${binds.spotify.launch}" - "SUPER, bracketright, exec, ${binds.spotify.next}" - "SUPER, bracketleft, exec, ${binds.spotify.previous}" - "SUPER, backslash, exec, ${binds.spotify.play}" - - # Brightness - ",XF86MonBrightnessUp, exec, ${binds.brightness.up}" - ",XF86MonBrightnessDown, exec, ${binds.brightness.down}" - - # Volume - ",XF86AudioRaiseVolume, exec, ${binds.volume.up}" - ",XF86AudioLowerVolume, exec, ${binds.volume.down}" - ",XF86AudioMute, exec, ${binds.volume.mute}" - - # Window Management - "SUPER, Q, killactive" - "SUPER CTRL, backspace, killactive" - "SUPERSHIFT ALT, delete, exec, hyprkillsession" - "SUPER, F, fullscreen" - "SUPER CTRL, F, fullscreenstate" - "SUPER, Space, togglefloating" - "SUPER, P, pseudo" # dwindle - "SUPER, S, togglesplit" # dwindle - - # Focus Arrows - "SUPER, left, movefocus,l" - "SUPER, right, movefocus,r" - "SUPER, up, movefocus,u" - "SUPER, down, movefocus,d" - - # Focus Vim - "SUPER, h, movefocus,l" - "SUPER, l, movefocus,r" - "SUPER, k, movefocus,u" - "SUPER, j, movefocus,d" - - # Move Arrows - "SUPERSHIFT, left, movewindow,l" - "SUPERSHIFT, right, movewindow,r" - "SUPERSHIFT, up, movewindow,u" - "SUPERSHIFT, down, movewindow,d" - - # Move Vim - "SUPERSHIFT, h, movewindow,l" - "SUPERSHIFT, l, movewindow,r" - "SUPERSHIFT, k, movewindow,u" - "SUPERSHIFT, j, movewindow,d" - - #Resize - "SUPER CTRL, left, resizeactive,-20 0" - "SUPERCTRL, right, resizeactive,20 0" - "SUPER CTRL, up, resizeactive,0 -20" - "SUPERCTRL, down, resizeactive,0 20" - - # Switch workspace - "SUPER, 1, workspace,1" - "SUPER, 2, workspace,2" - "SUPER, 3, workspace,3" - "SUPER, 4, workspace,4" - "SUPER, 5, workspace,5" - "SUPER, 6, workspace,6" - "SUPER, 7, workspace,7" - "SUPER, 8, workspace,8" - "SUPER, 9, workspace,9" - "SUPER, 0, workspace,10" - "SUPER, period, workspace,e+1" - "SUPER, comma, workspace,e-1" - "SUPER, tab, focusCurrentOrLast" - - # Move workspace - "SUPERSHIFT, 1, movetoworkspace,1" - "SUPERSHIFT, 2, movetoworkspace,2" - "SUPERSHIFT, 3, movetoworkspace,3" - "SUPERSHIFT, 4, movetoworkspace,4" - "SUPERSHIFT, 5, movetoworkspace,5" - "SUPERSHIFT, 6, movetoworkspace,6" - "SUPERSHIFT, 7, movetoworkspace,7" - "SUPERSHIFT, 8, movetoworkspace,8" - "SUPERSHIFT, 9, movetoworkspace,9" - "SUPERSHIFT, 0, movetoworkspace,10" - - # Lock Screen - "SUPER, Backspace, exec, ${binds.lock}" - ]; - # Mouse - bindm = [ - "SUPER, mouse:272, movewindow" - "SUPER, mouse:273, resizewindow" - ]; - # bindr = [ - # "SUPER, SUPER_L, exec, killall rofi || rofi -show drun" - # ]; - }; - }; -} diff --git a/home/modules/desktop/wayland/compositor/hyprland/settings/env.nix b/home/modules/desktop/wayland/compositor/hyprland/settings/env.nix deleted file mode 100644 index b7df48f..0000000 --- a/home/modules/desktop/wayland/compositor/hyprland/settings/env.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ - lib, - config, - ... -}: let - inherit (lib) mkIf; - inherit (config.ooknet) wayland; -in { - config = mkIf (wayland.compositor == "hyprland") { - wayland.windowManager.hyprland.settings.env = [ - "XDG_SESSION_DESKTOP,Hyprland" - "XDG_CURRENT_DESKTOP,Hyprland" - ]; - }; -} diff --git a/home/modules/desktop/wayland/compositor/hyprland/settings/exec.nix b/home/modules/desktop/wayland/compositor/hyprland/settings/exec.nix deleted file mode 100644 index 5ac3bbd..0000000 --- a/home/modules/desktop/wayland/compositor/hyprland/settings/exec.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: let - inherit (lib) mkIf; - inherit (config.ooknet) wayland; -in { - config = mkIf (wayland.compositor == "hyprland") { - wayland.windowManager.hyprland.settings = { - exec = [ - "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1" - ]; - exec-once = [ - "${pkgs._1password-gui}/bin/1password --silent" - # "${pkgs.live-buds-cli}/bin/earbuds -d" - # "waybar" - ]; - }; - }; -} diff --git a/home/modules/desktop/wayland/compositor/hyprland/settings/gestures.nix b/home/modules/desktop/wayland/compositor/hyprland/settings/gestures.nix deleted file mode 100644 index 3dbc198..0000000 --- a/home/modules/desktop/wayland/compositor/hyprland/settings/gestures.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ - lib, - config, - ... -}: let - inherit (lib) mkIf; - inherit (config.ooknet) wayland; -in { - config = mkIf (wayland.compositor == "hyprland") { - wayland.windowManager.hyprland.settings.gestures = { - workspace_swipe = true; - workspace_swipe_forever = true; - }; - }; -} diff --git a/home/modules/desktop/wayland/compositor/hyprland/settings/inputs.nix b/home/modules/desktop/wayland/compositor/hyprland/settings/inputs.nix deleted file mode 100644 index d20b4f4..0000000 --- a/home/modules/desktop/wayland/compositor/hyprland/settings/inputs.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ - lib, - config, - ... -}: let - inherit (lib) mkIf; - inherit (config.ooknet) wayland; -in { - config = mkIf (wayland.compositor == "hyprland") { - wayland.windowManager.hyprland.settings.input = { - kb_layout = "us"; - follow_mouse = 1; - touchpad.natural_scroll = "no"; - mouse_refocus = false; - }; - }; -} diff --git a/home/modules/desktop/wayland/compositor/hyprland/settings/misc.nix b/home/modules/desktop/wayland/compositor/hyprland/settings/misc.nix deleted file mode 100644 index acd4128..0000000 --- a/home/modules/desktop/wayland/compositor/hyprland/settings/misc.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ - lib, - config, - ... -}: let - inherit (lib) mkIf; - inherit (config.ooknet) wayland; -in { - config = mkIf (wayland.compositor == "hyprland") { - wayland.windowManager.hyprland.settings.misc = { - mouse_move_enables_dpms = true; - key_press_enables_dpms = true; - disable_hyprland_logo = true; - disable_splash_rendering = true; - - enable_swallow = true; - swallow_regex = "foot|nemo"; - - focus_on_activate = true; - }; - }; -} diff --git a/home/modules/desktop/wayland/compositor/hyprland/settings/monitor.nix b/home/modules/desktop/wayland/compositor/hyprland/settings/monitor.nix deleted file mode 100644 index fb03e3a..0000000 --- a/home/modules/desktop/wayland/compositor/hyprland/settings/monitor.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ - lib, - config, - osConfig, - ... -}: let - inherit (lib) mkIf concatMap; - inherit (config.ooknet) wayland; - inherit (osConfig.ooknet.host.hardware) monitors; -in { - config = mkIf (wayland.compositor == "hyprland") { - wayland.windowManager.hyprland.settings = { - monitor = - concatMap ( - m: let - resolution = "${toString m.width}x${toString m.height}@${toString m.refreshRate}"; - position = "${toString m.x}x${toString m.y}"; - basicConfig = "${m.name},${ - if m.enabled - then "${resolution},${position},1" - else "disable" - }"; - in - [basicConfig] - ++ ( - if m.transform != 0 - then ["${m.name},transform,${toString m.transform}"] - else [] - ) - ) - monitors; - }; - }; -} diff --git a/home/modules/desktop/wayland/compositor/hyprland/settings/rules.nix b/home/modules/desktop/wayland/compositor/hyprland/settings/rules.nix deleted file mode 100644 index 79dc686..0000000 --- a/home/modules/desktop/wayland/compositor/hyprland/settings/rules.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ - lib, - config, - ... -}: let - inherit (lib) mkIf; - inherit (config.ooknet) wayland; -in { - config = mkIf (wayland.compositor == "hyprland") { - wayland.windowManager.hyprland.settings = { - windowrulev2 = [ - "float,move 191 15,size 924 396,class:^(1Password)$" - - "float, title:^(Picture-in-Picture)$" - "pin, title:^(Picture-in-Picture)$" - - "float,move 237 175, size 1200 720,title:^(File Upload)$" - - "workspace 4, title:^(Vesktop)$" - - # Floating BTOP - "float,title:^(BTOP)$" - "size 85%,title:^(BTOP)$" - "pin,title:^(BTOP)$" - "center,title:^(BTOP)$" - "stayfocused,title:^(BTOP)$" - - # Tearing - "immediate, title:^(TEKKEN™8)$" - ]; - }; - }; -} diff --git a/home/modules/desktop/wayland/default.nix b/home/modules/desktop/wayland/default.nix deleted file mode 100644 index 49e58aa..0000000 --- a/home/modules/desktop/wayland/default.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ - imports = [ - ./bar - ./compositor - ./launcher - ./lockscreen - ./notification - ./utility - ./variables.nix - ]; -} diff --git a/home/modules/desktop/wayland/launcher/default.nix b/home/modules/desktop/wayland/launcher/default.nix deleted file mode 100644 index a887b6e..0000000 --- a/home/modules/desktop/wayland/launcher/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ - imports = [ - ./rofi.nix - ./tofi.nix - ]; -} diff --git a/home/modules/desktop/wayland/launcher/tofi.nix b/home/modules/desktop/wayland/launcher/tofi.nix deleted file mode 100644 index bfc81c6..0000000 --- a/home/modules/desktop/wayland/launcher/tofi.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ - lib, - config, - osConfig, - pkgs, - ... -}: let - inherit (osConfig.ooknet.appearance) colorscheme fonts; - inherit (colorscheme) palette; - inherit (config.ooknet) wayland; - inherit (lib) mkIf; -in { - config = mkIf (wayland.launcher == "tofi") { - home.packages = [pkgs.tofi]; - xdg.configFile."tofi/config".text = - /* - config - */ - '' - history = false - clip-to-padding = false - horizontal = true - width = 40% - height = 35 - anchor = top-left - margin-top = 5 - margin-left = 25% - num-results = 1 - border-width = 0 - outline-width = 0 - result-spacing = 10 - selection-background-padding = 30 - prompt-padding = 10 - font = "${fonts.monospace.family}" - font-size = 14 - prompt-text = "  " - background-color = #0000 - prompt-background = #0000 - prompt-color = ${palette.base0B} - input-color = ${palette.base05} - placeholder-color = ${palette.base03} - default-result-color = ${palette.base03} - selection-color = ${palette.base04} - ''; - }; -} diff --git a/home/modules/desktop/wayland/lockscreen/default.nix b/home/modules/desktop/wayland/lockscreen/default.nix deleted file mode 100644 index 769c934..0000000 --- a/home/modules/desktop/wayland/lockscreen/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ - imports = [ - ./swaylock.nix - ./hyprlock.nix - ]; -} diff --git a/home/modules/desktop/wayland/lockscreen/swaylock.nix b/home/modules/desktop/wayland/lockscreen/swaylock.nix deleted file mode 100644 index 4f46663..0000000 --- a/home/modules/desktop/wayland/lockscreen/swaylock.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ - config, - osConfig, - lib, - ... -}: let - inherit (osConfig.ooknet.appearance) wallpaper colorscheme fonts; - inherit (colorscheme) palette; - inherit (config.ooknet) wayland; - inherit (lib) mkIf; -in { - config = mkIf (wayland.locker == "swaylock") { - ooknet.binds.lock = "swaylock"; - programs.swaylock = { - enable = true; - settings = { - image = "${wallpaper.path}"; - font = fonts.monospace.family; - color = "#${palette.base01}"; - ring-color = "#${palette.base02}"; - inside-wrong-color = "#${palette.base08}"; - ring-wrong-color = "#${palette.base08}"; - key-hl-color = "#${palette.base0B}"; - bs-hl-color = "#${palette.base08}"; - ring-ver-color = "#${palette.base09}"; - inside-ver-color = "#${palette.base09}"; - inside-color = "#${palette.base01}"; - text-color = "#${palette.base07}"; - text-clear-color = "#${palette.base01}"; - text-ver-color = "#${palette.base01}"; - text-wrong-color = "#${palette.base01}"; - text-caps-lock-color = "#${palette.base07}"; - inside-clear-color = "#${palette.base0C}"; - ring-clear-color = "#${palette.base0C}"; - inside-caps-lock-color = "#${palette.base09}"; - ring-caps-lock-color = "#${palette.base02}"; - separator-color = "#${palette.base02}"; - }; - }; - }; -} diff --git a/home/modules/desktop/wayland/notification/default.nix b/home/modules/desktop/wayland/notification/default.nix deleted file mode 100644 index baba5b3..0000000 --- a/home/modules/desktop/wayland/notification/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ - imports = [ - ./mako.nix - ]; -} diff --git a/home/modules/desktop/wayland/utility/default.nix b/home/modules/desktop/wayland/utility/default.nix deleted file mode 100644 index b9669fc..0000000 --- a/home/modules/desktop/wayland/utility/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ - imports = [ - ./gammastep.nix - ./tools.nix - ]; -} diff --git a/home/modules/desktop/wayland/utility/tools.nix b/home/modules/desktop/wayland/utility/tools.nix deleted file mode 100644 index 82afbaf..0000000 --- a/home/modules/desktop/wayland/utility/tools.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: let - inherit (lib) mkIf; - cfg = config.ooknet.wayland; -in { - config = lib.mkIf cfg.enable { - home = { - packages = with pkgs; [ - grim - slurp - libnotify - wl-screenrec - wf-recorder - wl-clipboard - ]; - }; - - systemd.user.targets.tray = { - Unit = { - Description = "Home Manager System Tray"; - Requires = ["graphical-session-pre.target"]; - }; - }; - }; -} diff --git a/home/options/appearance/default.nix b/home/options/appearance/default.nix deleted file mode 100644 index 4b6902f..0000000 --- a/home/options/appearance/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ - imports = [ - ./gtk.nix - ./qt.nix - ]; -} diff --git a/home/options/appearance/gtk.nix b/home/options/appearance/gtk.nix deleted file mode 100644 index 14a71fb..0000000 --- a/home/options/appearance/gtk.nix +++ /dev/null @@ -1,5 +0,0 @@ -{lib, ...}: let - inherit (lib) mkEnableOption; -in { - options.ooknet.gtk.enable = mkEnableOption ""; -} diff --git a/home/options/appearance/qt.nix b/home/options/appearance/qt.nix deleted file mode 100644 index 5439a8e..0000000 --- a/home/options/appearance/qt.nix +++ /dev/null @@ -1,5 +0,0 @@ -{lib, ...}: let - inherit (lib) mkEnableOption; -in { - options.ooknet.qt.enable = mkEnableOption ""; -} diff --git a/home/options/console/default.nix b/home/options/console/default.nix deleted file mode 100644 index 773712e..0000000 --- a/home/options/console/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ - imports = [ - ./editor.nix - ./multiplexer.nix - ./shell.nix - ./tools.nix - ]; -} diff --git a/home/options/console/editor.nix b/home/options/console/editor.nix deleted file mode 100644 index 4bf832a..0000000 --- a/home/options/console/editor.nix +++ /dev/null @@ -1,8 +0,0 @@ -{lib, ...}: let - inherit (lib) mkEnableOption; -in { - options.ooknet.editor = { - helix.enable = mkEnableOption ""; - nvim.enable = mkEnableOption ""; - }; -} diff --git a/home/options/console/multiplexer.nix b/home/options/console/multiplexer.nix deleted file mode 100644 index e258f9a..0000000 --- a/home/options/console/multiplexer.nix +++ /dev/null @@ -1,8 +0,0 @@ -{lib, ...}: let - inherit (lib) mkEnableOption; -in { - options.ooknet.multiplexer = { - zellij.enable = mkEnableOption ""; - tmux.enable = mkEnableOption ""; - }; -} diff --git a/home/options/console/shell.nix b/home/options/console/shell.nix deleted file mode 100644 index 0ad8f45..0000000 --- a/home/options/console/shell.nix +++ /dev/null @@ -1,9 +0,0 @@ -{lib, ...}: let - inherit (lib) mkEnableOption; -in { - options.ooknet.shell = { - fish.enable = mkEnableOption ""; - zsh.enable = mkEnableOption ""; - bash.enable = mkEnableOption ""; - }; -} diff --git a/home/options/console/tools.nix b/home/options/console/tools.nix deleted file mode 100644 index b6e2cc7..0000000 --- a/home/options/console/tools.nix +++ /dev/null @@ -1,18 +0,0 @@ -{lib, ...}: let - inherit (lib) mkEnableOption; -in { - options.ooknet.tools = { - btop.enable = mkEnableOption ""; - eza.enable = mkEnableOption ""; - bat.enable = mkEnableOption ""; - direnv.enable = mkEnableOption ""; - fzf.enable = mkEnableOption ""; - git.enable = mkEnableOption ""; - ssh.enable = mkEnableOption ""; - nixIndex.enable = mkEnableOption ""; - starship.enable = mkEnableOption ""; - utils.enable = mkEnableOption ""; - ffmpeg.enable = mkEnableOption ""; - sourcegraph.enable = mkEnableOption ""; - }; -} diff --git a/home/options/default.nix b/home/options/default.nix deleted file mode 100644 index 8b07201..0000000 --- a/home/options/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ - imports = [ - ./appearance - ./console - ./desktop - ./profiles - ]; -} diff --git a/home/options/desktop/browser.nix b/home/options/desktop/browser.nix deleted file mode 100644 index 8c74055..0000000 --- a/home/options/desktop/browser.nix +++ /dev/null @@ -1,8 +0,0 @@ -{lib, ...}: let - inherit (lib) mkEnableOption; -in { - options.ooknet.browser = { - firefox.enable = mkEnableOption ""; - brave.enable = mkEnableOption ""; - }; -} diff --git a/home/options/desktop/communication.nix b/home/options/desktop/communication.nix deleted file mode 100644 index c2aba50..0000000 --- a/home/options/desktop/communication.nix +++ /dev/null @@ -1,7 +0,0 @@ -{lib, ...}: let - inherit (lib) mkEnableOption; -in { - options.ooknet.communication = { - discord.enable = mkEnableOption ""; - }; -} diff --git a/home/options/desktop/creative.nix b/home/options/desktop/creative.nix deleted file mode 100644 index 6e60a12..0000000 --- a/home/options/desktop/creative.nix +++ /dev/null @@ -1,8 +0,0 @@ -{lib, ...}: let - inherit (lib) mkEnableOption; -in { - options.ooknet.creative = { - inkscape.enable = mkEnableOption ""; - audacity.enable = mkEnableOption ""; - }; -} diff --git a/home/options/desktop/default.nix b/home/options/desktop/default.nix deleted file mode 100644 index dcd7d05..0000000 --- a/home/options/desktop/default.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ - imports = [ - ./binds.nix - ./browser.nix - ./communication.nix - ./creative.nix - ./gaming.nix - ./media.nix - ./productivity.nix - ./security.nix - ./terminal.nix - ./tools.nix - ./wayland.nix - ./fileManager.nix - ]; -} diff --git a/home/options/desktop/fileManager.nix b/home/options/desktop/fileManager.nix deleted file mode 100644 index c710b57..0000000 --- a/home/options/desktop/fileManager.nix +++ /dev/null @@ -1,7 +0,0 @@ -{lib, ...}: let - inherit (lib) mkEnableOption; -in { - options.ooknet.fileManager = { - nemo.enable = mkEnableOption ""; - }; -} diff --git a/home/options/desktop/gaming.nix b/home/options/desktop/gaming.nix deleted file mode 100644 index acfc1b1..0000000 --- a/home/options/desktop/gaming.nix +++ /dev/null @@ -1,10 +0,0 @@ -{lib, ...}: let - inherit (lib) mkEnableOption; -in { - options.ooknet.gaming = { - factorio.enable = mkEnableOption ""; - bottles.enable = mkEnableOption ""; - lutris.enable = mkEnableOption ""; - wine.enable = mkEnableOption ""; - }; -} diff --git a/home/options/desktop/media.nix b/home/options/desktop/media.nix deleted file mode 100644 index e455250..0000000 --- a/home/options/desktop/media.nix +++ /dev/null @@ -1,17 +0,0 @@ -{lib, ...}: let - inherit (lib) mkEnableOption; -in { - options.ooknet.media = { - image = { - imv.enable = mkEnableOption ""; - }; - video = { - mpv.enable = mkEnableOption ""; - jellyfinPlayer.enable = mkEnableOption ""; - youtube.enable = mkEnableOption ""; - }; - music = { - tui.enable = mkEnableOption ""; - }; - }; -} diff --git a/home/options/desktop/productivity.nix b/home/options/desktop/productivity.nix deleted file mode 100644 index 8046d0d..0000000 --- a/home/options/desktop/productivity.nix +++ /dev/null @@ -1,15 +0,0 @@ -{lib, ...}: let - inherit (lib) mkEnableOption; -in { - options.ooknet.productivity = { - notes = { - obsidian.enable = mkEnableOption ""; - }; - office = { - libreoffice.enable = mkEnableOption ""; - }; - pdf = { - zathura.enable = mkEnableOption ""; - }; - }; -} diff --git a/home/options/desktop/security.nix b/home/options/desktop/security.nix deleted file mode 100644 index bc64ca0..0000000 --- a/home/options/desktop/security.nix +++ /dev/null @@ -1,10 +0,0 @@ -{lib, ...}: let - inherit (lib) mkOption types; - inherit (types) nullOr enum; -in { - options.ooknet.security.polkit = mkOption { - type = nullOr (enum ["gnome" "pantheon"]); # TODO: add kde agent - default = "gnome"; - description = "Type of polkit agent module to use"; - }; -} diff --git a/home/options/desktop/terminal.nix b/home/options/desktop/terminal.nix deleted file mode 100644 index 3e85ef7..0000000 --- a/home/options/desktop/terminal.nix +++ /dev/null @@ -1,8 +0,0 @@ -{lib, ...}: let - inherit (lib) mkEnableOption; -in { - options.ooknet.terminal = { - foot.enable = mkEnableOption ""; - kitty.enable = mkEnableOption ""; - }; -} diff --git a/home/options/desktop/tools.nix b/home/options/desktop/tools.nix deleted file mode 100644 index 0138b53..0000000 --- a/home/options/desktop/tools.nix +++ /dev/null @@ -1,7 +0,0 @@ -{lib, ...}: let - inherit (lib) mkEnableOption; -in { - options.ooknet.tools = { - kdeconnect.enable = mkEnableOption ""; - }; -} diff --git a/home/options/desktop/wayland.nix b/home/options/desktop/wayland.nix deleted file mode 100644 index 5a10fb7..0000000 --- a/home/options/desktop/wayland.nix +++ /dev/null @@ -1,27 +0,0 @@ -{lib, ...}: let - inherit (lib) mkOption mkEnableOption types; - inherit (types) nullOr enum; -in { - options.ooknet.wayland = { - enable = mkEnableOption ""; - compositor = mkOption { - type = nullOr (enum ["hyprland"]); - }; - launcher = mkOption { - type = nullOr (enum ["rofi" "tofi"]); - default = null; - }; - locker = mkOption { - type = nullOr (enum ["hyprlock" "swaylock"]); - default = null; - }; - notification = mkOption { - type = nullOr (enum ["mako"]); - default = null; - }; - bar = mkOption { - type = nullOr (enum ["waybar"]); - default = null; - }; - }; -} diff --git a/home/options/profiles/console.nix b/home/options/profiles/console.nix deleted file mode 100644 index 634fe60..0000000 --- a/home/options/profiles/console.nix +++ /dev/null @@ -1,19 +0,0 @@ -{lib, ...}: let - inherit (lib) mkOption types; - inherit (types) nullOr enum; -in { - options.ooknet.console = { - editor = mkOption { - type = nullOr (enum ["helix" "nvim"]); - default = "helix"; - }; - multiplexer = mkOption { - type = nullOr (enum ["tmux" "zellij"]); - default = null; - }; - fileManager = mkOption { - type = nullOr (enum ["yazi" "ranger" "lf"]); - default = null; - }; - }; -} diff --git a/home/options/profiles/default.nix b/home/options/profiles/default.nix deleted file mode 100644 index d333040..0000000 --- a/home/options/profiles/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ - imports = [ - ./desktop.nix - ./console.nix - ]; -} diff --git a/home/options/profiles/desktop.nix b/home/options/profiles/desktop.nix deleted file mode 100644 index 7fa6616..0000000 --- a/home/options/profiles/desktop.nix +++ /dev/null @@ -1,46 +0,0 @@ -{lib, ...}: let - inherit (lib) mkOption types; - inherit (types) enum nullOr listOf; -in { - options.ooknet.desktop = { - environment = mkOption { - type = nullOr (enum ["hyprland"]); - default = "hyprland"; - }; - - browser = mkOption { - type = nullOr (enum ["firefox" "brave"]); - default = null; - }; - - terminal = mkOption { - type = nullOr (enum ["foot" "kitty" "wezterm"]); - default = "foot"; - }; - - fileManager = mkOption { - type = nullOr (enum ["nemo"]); - default = null; - }; - - notes = mkOption { - type = nullOr (enum ["obsidian"]); - default = null; - }; - - pdf = mkOption { - type = nullOr (enum ["zathura"]); - default = null; - }; - - discord = mkOption { - type = nullOr (enum ["vesktop"]); - default = null; - }; - - suites = mkOption { - type = listOf (enum ["gaming" "tools" "media" "creative"]); - default = []; - }; - }; -} diff --git a/home/profiles/default.nix b/home/profiles/default.nix deleted file mode 100644 index 7e0142f..0000000 --- a/home/profiles/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ - imports = [ - ./desktop-environments - ./themes - ./suites - ]; -} diff --git a/home/profiles/desktop-environments/default.nix b/home/profiles/desktop-environments/default.nix deleted file mode 100644 index 96e5300..0000000 --- a/home/profiles/desktop-environments/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ - imports = [ - ./hyprland.nix - ]; -} diff --git a/home/profiles/desktop-environments/hyprland.nix b/home/profiles/desktop-environments/hyprland.nix deleted file mode 100644 index 52bf4cf..0000000 --- a/home/profiles/desktop-environments/hyprland.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ - lib, - config, - ... -}: let - inherit (lib) mkIf; - inherit (config.ooknet) desktop; -in { - config = mkIf (desktop.environment == "hyprland") { - ooknet.wayland = { - enable = true; - compositor = "hyprland"; - launcher = "rofi"; - locker = "hyprlock"; - notification = "mako"; - bar = "waybar"; - }; - ooknet.security.polkit = "pantheon"; - }; -} diff --git a/home/profiles/suites/creative.nix b/home/profiles/suites/creative.nix deleted file mode 100644 index 2dc0e5e..0000000 --- a/home/profiles/suites/creative.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ - osConfig, - lib, - ... -}: let - inherit (lib) mkIf; - inherit (builtins) elem; - inherit (osConfig.ooknet.host) profiles; -in { - config = mkIf (elem "creative" profiles) { - ooknet.creative = { - audacity.enable = true; - inkscape.enable = true; - }; - }; -} diff --git a/home/profiles/suites/default.nix b/home/profiles/suites/default.nix deleted file mode 100644 index 74817c6..0000000 --- a/home/profiles/suites/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ - imports = [ - ./gaming.nix - ./creative.nix - ./productivity.nix - ./console-tools.nix - ./media.nix - ]; -} diff --git a/home/profiles/suites/media.nix b/home/profiles/suites/media.nix deleted file mode 100644 index 9995648..0000000 --- a/home/profiles/suites/media.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ - osConfig, - lib, - ... -}: let - inherit (lib) mkIf; - inherit (builtins) elem; - inherit (osConfig.ooknet.host) profiles; -in { - config = mkIf (elem "media" profiles) { - ooknet.media = { - image = { - imv.enable = true; - }; - video = { - mpv.enable = true; - jellyfinPlayer.enable = true; - youtube.enable = true; - }; - music = { - tui.enable = true; - }; - }; - }; -} diff --git a/home/profiles/suites/productivity.nix b/home/profiles/suites/productivity.nix deleted file mode 100644 index ee81da3..0000000 --- a/home/profiles/suites/productivity.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ - osConfig, - lib, - ... -}: let - inherit (lib) mkIf; - inherit (builtins) elem; - inherit (osConfig.ooknet.host) profiles; -in { - config = mkIf (elem "productiviy" profiles) { - ooknet.productivity = { - notes.obsidian.enable = true; - office.libreoffice.enable = true; - pdf.zathura.enable = true; - }; - }; -} diff --git a/home/profiles/themes/default.nix b/home/profiles/themes/default.nix deleted file mode 100644 index a8b9a0c..0000000 --- a/home/profiles/themes/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ - imports = [ - # ./phone.nix - ]; -} diff --git a/home/profiles/themes/minimal.nix b/home/profiles/themes/minimal.nix deleted file mode 100644 index 587bde1..0000000 --- a/home/profiles/themes/minimal.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ - lib, - config, - pkgs, - inputs, - ... -}: let - inherit (lib) mkIf; - inherit (config.ooknet) theme; -in { - imports = [inputs.nix-colors.homeManagerModule]; - config = mkIf (theme == "minimal") { - colorscheme = colorSchemes.gruvbox-material-dark-medium; - home.file.".colorscheme".text = config.colorscheme.slug; - home.sessionVariables.COLOR_SCHEME = "${config.colorscheme.slug}"; - - ooknet = { - fonts.enable = true; - fonts.regular = { - family = "Fira Sans"; - package = pkgs.fira; - }; - fonts.monospace = { - family = "JetBrainsMono Nerd Font"; - package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];}; - }; - - cursor.enable = true; - cursor = { - name = "Bibata-Modern-Ice"; - package = pkgs.bibata-cursors; - size = 22; - }; - - wallpaper = { - enable = true; - }; - - gtk.enable = true; - qt.enable = true; - }; - }; -} diff --git a/home/profiles/themes/phone.nix b/home/profiles/themes/phone.nix deleted file mode 100644 index f976712..0000000 --- a/home/profiles/themes/phone.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ - lib, - config, - pkgs, - inputs, - ... -}: let - inherit (inputs.nix-colors) colorSchemes; - inherit (lib) mkIf; - inherit (config.ooknet) theme; -in { - config = mkIf (theme == "phone") { - colorscheme = colorSchemes.gruvbox-material-dark-soft; - home.file.".colorscheme".text = config.colorscheme.slug; - home.sessionVariables.COLOR_SCHEME = "${config.colorscheme.slug}"; - - ooknet.theme = { - fonts.enable = true; - fonts.regular = { - family = "Fira Sans"; - package = pkgs.fira; - }; - fonts.monospace = { - family = "JetBrainsMono Nerd Font"; - package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];}; - }; - }; - }; -} diff --git a/home/roles/default.nix b/home/roles/default.nix deleted file mode 100644 index 17bc58f..0000000 --- a/home/roles/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ - imports = [ - ./ooks-desktop-workstation.nix - ./ooks-laptop-workstation.nix - ./ooks-micro-workstation.nix - ]; -} diff --git a/home/roles/ooks-desktop-workstation.nix b/home/roles/ooks-desktop-workstation.nix deleted file mode 100644 index ded79c3..0000000 --- a/home/roles/ooks-desktop-workstation.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - lib, - osConfig, - ... -}: let - inherit (lib) mkIf; - inherit (osConfig.ooknet) host; -in { - config = mkIf (host.admin.name == "ooks" && host.type == "desktop" && host.role == "workstation") { - ooknet = { - desktop = { - environment = "hyprland"; - browser = "firefox"; - terminal = "foot"; - notes = "obsidian"; - pdf = "zathura"; - discord = "vesktop"; - fileManager = "nemo"; - }; - console = { - editor = "helix"; - multiplexer = "zellij"; - }; - }; - }; -} diff --git a/home/roles/ooks-laptop-workstation.nix b/home/roles/ooks-laptop-workstation.nix deleted file mode 100644 index 3c0b873..0000000 --- a/home/roles/ooks-laptop-workstation.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - lib, - osConfig, - ... -}: let - inherit (lib) mkIf; - inherit (osConfig.ooknet) host; -in { - config = mkIf (host.admin.name == "ooks" && host.type == "laptop" && host.role == "workstation") { - ooknet = { - desktop = { - environment = "hyprland"; - browser = "firefox"; - terminal = "foot"; - notes = "obsidian"; - pdf = "zathura"; - discord = "vesktop"; - fileManager = "nemo"; - }; - console = { - editor = "nvim"; - multiplexer = "zellij"; - }; - }; - }; -} diff --git a/home/roles/ooks-micro-workstation.nix b/home/roles/ooks-micro-workstation.nix deleted file mode 100644 index 24adc3f..0000000 --- a/home/roles/ooks-micro-workstation.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ - lib, - osConfig, - ... -}: let - inherit (lib) mkIf; - inherit (osConfig.ooknet) host; -in { - config = mkIf (host.admin.name == "ooks" && host.type == "micro" && host.role == "workstation") { - ooknet = { - desktop = { - environment = "hyprland"; - browser = "firefox"; - terminal = "foot"; - discord = "vesktop"; - }; - console = { - editor = "helix"; - multiplexer = "zellij"; - }; - }; - }; -} diff --git a/home/roles/ooks-vm-server.nix b/home/roles/ooks-vm-server.nix deleted file mode 100644 index 94362b6..0000000 --- a/home/roles/ooks-vm-server.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ - lib, - osConfig, - ... -}: let - inherit (lib) mkIf; - inherit (osConfig.ooknet) host; -in { - config = mkIf (host.admin.name == "ooks" && host.type == "vm" && host.role == "server") { - ooknet = { - console = { - editor = "nvim"; - multiplexer = "zellij"; - }; - }; - }; -} diff --git a/home/user/ooks/ooksdesk/default.nix b/home/user/ooks/ooksdesk/default.nix deleted file mode 100644 index 5fa913c..0000000 --- a/home/user/ooks/ooksdesk/default.nix +++ /dev/null @@ -1,11 +0,0 @@ -{...}: { - imports = [ - ../../../profile - ]; - - activeProfiles = ["base" "hyprland" "productivity" "gaming"]; - - theme.minimal.enable = true; - - home.sessionVariables.HN = "ooksdesk"; -} diff --git a/home/user/ooks/ooksmedia/default.nix b/home/user/ooks/ooksmedia/default.nix deleted file mode 100644 index 32d8175..0000000 --- a/home/user/ooks/ooksmedia/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -{...}: { - imports = [ - ../../../profile - ]; - - activeProfiles = ["base" "hyprland" "productivity" "gaming"]; - - theme.minimal.enable = true; - - home.sessionVariables.HN = "ooksmedia"; - - ooknet.desktop.wayland.nvidia = true; - - monitors = [ - { - name = "HDMI-A-1"; - width = 1920; - height = 1080; - refreshRate = 60; - workspace = "1"; - primary = true; - } - ]; -} diff --git a/home/user/ooks/ooksmicro/default.nix b/home/user/ooks/ooksmicro/default.nix deleted file mode 100644 index 80cd34b..0000000 --- a/home/user/ooks/ooksmicro/default.nix +++ /dev/null @@ -1,22 +0,0 @@ -{inputs, ...}: { - imports = [ - ../../../profile - ]; - - activeProfiles = ["base" "hyprland"]; - - home.sessionVariables.HN = "ooksmicro"; - - monitors = [ - { - name = "DSI-1"; - width = 720; - height = 1280; - workspace = "1"; - primary = true; - transform = 3; - } - ]; - - colorscheme = inputs.nix-colors.colorSchemes.gruvbox-material-dark-soft; -} diff --git a/home/user/ooks/ooksphone/default.nix b/home/user/ooks/ooksphone/default.nix deleted file mode 100644 index f2422f6..0000000 --- a/home/user/ooks/ooksphone/default.nix +++ /dev/null @@ -1,62 +0,0 @@ -{ - pkgs, - config, - ... -}: { - imports = [ - ../../../profile - ]; - - theme.phone.enable = true; - - ooknet = { - console = { - editor.helix.enable = true; - shell.fish.enable = true; - prompt.starship.enable = true; - multiplexer.zellij.enable = true; - utility = { - tools.enable = true; - }; - }; - config.nix.enable = true; - }; - home.packages = with pkgs; [ - pfetch - lazygit - openssh - htop - ]; - programs = { - ssh = { - enable = true; - matchBlocks = { - "ooksdesk" = { - hostname = "192.168.1.201"; - user = "ooks"; - identityFile = "~/.ssh/id_ed25519"; - forwardAgent = true; - }; - }; - }; - git = { - enable = true; - package = pkgs.gitAndTools.gitFull; - userName = "ooks-io"; - userEmail = "ooks@protonmail.com"; - ignores = [".direnv" "result"]; - lfs.enable = true; - }; - }; - - home.shellAliases = { - nrs = "nix-on-droid switch --flake $FLAKE"; - }; - - home.sessionVariables = { - TZ = "Pacific/Auckland"; - FLAKE = "$HOME/.config/ooknet"; - }; - - home.stateVersion = "23.11"; -} diff --git a/home/user/ooks/ookst480s/default.nix b/home/user/ooks/ookst480s/default.nix deleted file mode 100644 index ce8ea6d..0000000 --- a/home/user/ooks/ookst480s/default.nix +++ /dev/null @@ -1,19 +0,0 @@ -{...}: { - imports = [ - ../../../profile - ]; - - activeProfiles = ["base" "hyprland" "productivity"]; - - ooknet = { - theme = "minimal"; - desktop = { - environment = "hyprland"; - browser = "firefox"; - terminal = "foot"; - notes = "obsidian"; - discord = "vesktop"; - }; - }; - home.sessionVariables.HN = "ookst480s"; -} diff --git a/hosts/default.nix b/hosts/default.nix new file mode 100644 index 0000000..d3ea2d6 --- /dev/null +++ b/hosts/default.nix @@ -0,0 +1,10 @@ +{self, ...}: let + inherit (self.lib) mkWorkstation; +in { + flake.nixosConfigurations = { + grookin = mkWorkstation { + hostname = "grookin"; + system = "x86-64-linux"; + }; + }; +} diff --git a/hosts/ooknode/default.nix b/hosts/ooknode/default.nix deleted file mode 100644 index 7da0b5e..0000000 --- a/hosts/ooknode/default.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ - pkgs, - lib, - ... -}: let - inherit (lib) mkDefault; -in { - imports = [ - ./hardware-configuration.nix - ]; - - ooknet.host = { - name = "ooksnode"; - type = "vm"; - role = "server"; - profiles = ["console-tools"]; - admin = { - name = "ooks"; - shell = "fish"; - homeManager = true; - }; - networking = { - tailscale = { - enable = true; - client = true; - autoconnect = true; - }; - }; - hardware = { - cpu.type = "intel"; - features = [ - "ssd" - ]; - }; - }; - - boot = { - kernelPackages = pkgs.linuxKernel.packages.linux_zen; - }; - - system.stateVersion = mkDefault "23.11"; -} diff --git a/hosts/ooknode/hardware-configuration.nix b/hosts/ooknode/hardware-configuration.nix deleted file mode 100644 index 44cf66a..0000000 --- a/hosts/ooknode/hardware-configuration.nix +++ /dev/null @@ -1,64 +0,0 @@ -# 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, - modulesPath, - ... -}: { - imports = [ - (modulesPath + "/installer/scan/not-detected.nix") - ]; - - boot.initrd.availableKernelModules = ["xhci_pci" "nvme" "usb_storage" "sd_mod"]; - boot.initrd.kernelModules = []; - boot.kernelModules = ["kvm-intel"]; - boot.extraModulePackages = []; - - fileSystems."/" = { - device = "/dev/disk/by-uuid/19e4cf0f-b5ac-4544-a44b-c017b23fd283"; - fsType = "btrfs"; - options = ["subvol=root"]; - }; - - boot.initrd.luks.devices."cryptnix".device = "/dev/disk/by-uuid/014d725c-bf13-40a2-a9ab-0dd6185a95f6"; - - fileSystems."/nix" = { - device = "/dev/disk/by-uuid/19e4cf0f-b5ac-4544-a44b-c017b23fd283"; - fsType = "btrfs"; - options = ["subvol=nix"]; - }; - - fileSystems."/persist" = { - device = "/dev/disk/by-uuid/19e4cf0f-b5ac-4544-a44b-c017b23fd283"; - fsType = "btrfs"; - options = ["subvol=persist"]; - }; - - fileSystems."/swap" = { - device = "/dev/disk/by-uuid/19e4cf0f-b5ac-4544-a44b-c017b23fd283"; - fsType = "btrfs"; - options = ["subvol=swap"]; - }; - - fileSystems."/boot" = { - device = "/dev/disk/by-uuid/F356-6F9C"; - fsType = "vfat"; - }; - - swapDevices = []; - - # 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 - # still possible to use this option, but it's recommended to use it in conjunction - # with explicit per-interface declarations with `networking.interfaces..useDHCP`. - networking.useDHCP = lib.mkDefault true; - # networking.interfaces.enp0s31f6.useDHCP = lib.mkDefault true; - # networking.interfaces.wlp61s0.useDHCP = lib.mkDefault true; - # networking.interfaces.wwan0.useDHCP = lib.mkDefault true; - - nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; - hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; -} diff --git a/hosts/ooksdesk/default.nix b/hosts/ooksdesk/default.nix index 1029a98..3ff6573 100644 --- a/hosts/ooksdesk/default.nix +++ b/hosts/ooksdesk/default.nix @@ -4,47 +4,34 @@ ... }: { imports = [ - ./hardware-configuration.nix + ./file-system.nix + ./hardware.nix ]; - ooknet.host = { - name = "ooksdesk"; - type = "desktop"; - role = "workstation"; - profiles = ["gaming" "creative" "media" "console-tools"]; - admin = { - name = "ooks"; - shell = "fish"; - homeManager = true; - }; - networking = { - tailscale = { - enable = true; - client = true; - autoconnect = true; + ooknet = { + host = { + admin = { + name = "ooks"; + shell = "fish"; + homeManager = true; }; }; - hardware = { - cpu.type = "amd"; - cpu.amd.pstate.enable = true; - gpu.type = "amd"; - features = ["ssd" "audio" "video"]; - monitors = [ - { - name = "DP-3"; - primary = true; - width = 1920; - height = 1080; - refreshRate = 180; - workspace = "1"; - } - ]; + workstation = { + environment = "hyprland"; + theme = "minimal"; + profiles = ["gaming" "media" "communication" "productivity"]; + default = { + browser = "firefox"; + terminal = "foot"; + }; + }; + console = { + profile = "standard"; + editor = "nvim"; + multiplexer = "zellij"; }; }; + boot.kernelPackages = pkgs.linuxPackages_xanmod_latest; - boot = { - kernelPackages = pkgs.linuxPackages_xanmod_latest; - }; - - system.stateVersion = lib.mkDefault "23.11"; + system.stateVersion = lib.mkDefault "24.11"; } diff --git a/hosts/ooksdesk/file-system.nix b/hosts/ooksdesk/file-system.nix new file mode 100644 index 0000000..a063c0b --- /dev/null +++ b/hosts/ooksdesk/file-system.nix @@ -0,0 +1,34 @@ +{ + boot.initrd.luks.devices."cryptroot".device = "/dev/disk/by-uuid/b5d09a8b-54a9-4f72-828c-5cceea2ec287"; + fileSystems = { + "/" = { + device = "/dev/disk/by-uuid/629a7421-24a0-45e6-87af-031574d9d46d"; + fsType = "btrfs"; + options = ["subvol=root"]; + }; + + "/nix" = { + device = "/dev/disk/by-uuid/629a7421-24a0-45e6-87af-031574d9d46d"; + fsType = "btrfs"; + options = ["subvol=nix"]; + }; + + "/persist" = { + device = "/dev/disk/by-uuid/629a7421-24a0-45e6-87af-031574d9d46d"; + fsType = "btrfs"; + options = ["subvol=persist"]; + }; + + "/swap" = { + device = "/dev/disk/by-uuid/629a7421-24a0-45e6-87af-031574d9d46d"; + fsType = "btrfs"; + options = ["subvol=swap"]; + }; + + "/boot" = { + device = "/dev/disk/by-uuid/1D01-7040"; + fsType = "vfat"; + }; + }; + swapDevices = []; +} diff --git a/hosts/ooksdesk/hardware-configuration.nix b/hosts/ooksdesk/hardware-configuration.nix deleted file mode 100644 index 26fe503..0000000 --- a/hosts/ooksdesk/hardware-configuration.nix +++ /dev/null @@ -1,61 +0,0 @@ -# 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, - modulesPath, - ... -}: { - imports = [ - (modulesPath + "/installer/scan/not-detected.nix") - ]; - - boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod"]; - boot.initrd.kernelModules = []; - boot.kernelModules = ["kvm-amd"]; - boot.extraModulePackages = []; - - fileSystems."/" = { - device = "/dev/disk/by-uuid/629a7421-24a0-45e6-87af-031574d9d46d"; - fsType = "btrfs"; - options = ["subvol=root"]; - }; - - boot.initrd.luks.devices."cryptroot".device = "/dev/disk/by-uuid/b5d09a8b-54a9-4f72-828c-5cceea2ec287"; - - fileSystems."/nix" = { - device = "/dev/disk/by-uuid/629a7421-24a0-45e6-87af-031574d9d46d"; - fsType = "btrfs"; - options = ["subvol=nix"]; - }; - - fileSystems."/persist" = { - device = "/dev/disk/by-uuid/629a7421-24a0-45e6-87af-031574d9d46d"; - fsType = "btrfs"; - options = ["subvol=persist"]; - }; - - fileSystems."/swap" = { - device = "/dev/disk/by-uuid/629a7421-24a0-45e6-87af-031574d9d46d"; - fsType = "btrfs"; - options = ["subvol=swap"]; - }; - - fileSystems."/boot" = { - device = "/dev/disk/by-uuid/1D01-7040"; - fsType = "vfat"; - }; - - swapDevices = []; - - # 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 - # still possible to use this option, but it's recommended to use it in conjunction - # with explicit per-interface declarations with `networking.interfaces..useDHCP`. - networking.useDHCP = lib.mkDefault true; - # networking.interfaces.enp8s0.useDHCP = lib.mkDefault true; - - nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; -} diff --git a/hosts/ooksdesk/hardware.nix b/hosts/ooksdesk/hardware.nix new file mode 100644 index 0000000..d62d885 --- /dev/null +++ b/hosts/ooksdesk/hardware.nix @@ -0,0 +1,18 @@ +{ + ooknet.hardware = { + cpu.type = "amd"; + cpu.amd.pstate.enable = true; + gpu.type = "amd"; + features = ["ssd" "audio" "video"]; + monitors = [ + { + name = "DP-3"; + primary = true; + width = 1920; + height = 1080; + refreshRate = 180; + workspace = "1"; + } + ]; + }; +} diff --git a/hosts/ooksmedia/default.nix b/hosts/ooksmedia/default.nix deleted file mode 100644 index 506c0d6..0000000 --- a/hosts/ooksmedia/default.nix +++ /dev/null @@ -1,54 +0,0 @@ -{ - lib, - pkgs, - ... -}: { - imports = [ - ./hardware-configuration.nix - ./modules - ]; - - ooknet.host = { - name = "ooksmedia"; - type = "desktop"; - role = "workstation"; - profiles = ["media-server" "console-tools"]; - admin = { - name = "ooks"; - shell = "fish"; - homeManager = true; - }; - networking = { - tailscale = { - enable = true; - server = true; - autoconnect = true; - }; - }; - hardware = { - cpu.type = "intel"; - cpu.amd.pstate.enable = true; - gpu.type = "nvidia"; - features = [ - "audio" - "video" - "ssd" - ]; - monitors = [ - { - name = "HDMI-A-1"; - width = 1920; - height = 1080; - refreshRate = 60; - workspace = "1"; - primary = true; - } - ]; - }; - }; - boot = { - kernelPackages = pkgs.linuxPackages_xanmod_latest; - }; - - system.stateVersion = lib.mkDefault "23.11"; -} diff --git a/hosts/ooksmedia/hardware-configuration.nix b/hosts/ooksmedia/hardware-configuration.nix deleted file mode 100644 index 89331ac..0000000 --- a/hosts/ooksmedia/hardware-configuration.nix +++ /dev/null @@ -1,59 +0,0 @@ -# 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, - modulesPath, - ... -}: { - imports = [ - (modulesPath + "/installer/scan/not-detected.nix") - ]; - - boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod"]; - boot.initrd.kernelModules = []; - boot.kernelModules = ["kvm-intel"]; - boot.extraModulePackages = []; - - fileSystems."/" = { - device = "/dev/disk/by-uuid/50617edf-e788-49cc-9e0c-85a2f90a5550"; - fsType = "btrfs"; - options = ["subvol=root"]; - }; - - fileSystems."/nix" = { - device = "/dev/disk/by-uuid/50617edf-e788-49cc-9e0c-85a2f90a5550"; - fsType = "btrfs"; - options = ["subvol=nix"]; - }; - - fileSystems."/persist" = { - device = "/dev/disk/by-uuid/50617edf-e788-49cc-9e0c-85a2f90a5550"; - fsType = "btrfs"; - options = ["subvol=persist"]; - }; - - fileSystems."/swap" = { - device = "/dev/disk/by-uuid/50617edf-e788-49cc-9e0c-85a2f90a5550"; - fsType = "btrfs"; - options = ["subvol=swap"]; - }; - - fileSystems."/boot" = { - device = "/dev/disk/by-uuid/B511-09E2"; - fsType = "vfat"; - }; - - swapDevices = []; - - # 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 - # still possible to use this option, but it's recommended to use it in conjunction - # with explicit per-interface declarations with `networking.interfaces..useDHCP`. - networking.useDHCP = lib.mkDefault true; - # networking.interfaces.enp2s0.useDHCP = lib.mkDefault true; - - nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; -} diff --git a/hosts/ooksmedia/modules/default.nix b/hosts/ooksmedia/modules/default.nix deleted file mode 100644 index 17f57b8..0000000 --- a/hosts/ooksmedia/modules/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ - imports = [ - ./nixarr.nix - ]; -} diff --git a/hosts/ooksmedia/modules/nixarr.nix b/hosts/ooksmedia/modules/nixarr.nix deleted file mode 100644 index 257011e..0000000 --- a/hosts/ooksmedia/modules/nixarr.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ - config, - lib, - ... -}: let - inherit (lib) mkIf; - inherit (config.ooknet.host) admin; - cfg = config.ooknet.services.nixarr; -in { - config = mkIf cfg.enable { - nixarr = { - vpn.enable = false; - openssh.expose.vpn.enable = false; - enable = true; - mediaDir = "/jellyfin"; - stateDir = "/var/lib/nixarr"; - mediaUsers = ["${admin.name}"]; - - jellyfin.enable = true; - sonarr.enable = true; - radarr.enable = true; - prowlarr.enable = true; - transmission.enable = true; - readarr.enable = true; - bazarr.enable = true; - }; - fileSystems."/jellyfin" = { - device = "/dev/disk/by-label/jellyfin"; - fsType = "btrfs"; - }; - }; -} diff --git a/hosts/ooksmicro/default.nix b/hosts/ooksmicro/default.nix deleted file mode 100644 index c8b1a05..0000000 --- a/hosts/ooksmicro/default.nix +++ /dev/null @@ -1,68 +0,0 @@ -{ - pkgs, - lib, - ... -}: let - inherit (lib) mkDefault; -in { - imports = [ - ./hardware-configuration.nix - ]; - - ooknet.host = { - name = "ooksmicro"; - type = "laptop"; - role = "workstation"; - profiles = ["console-tools"]; - admin = { - name = "ooks"; - shell = "fish"; - homeManager = true; - }; - networking = { - tailscale = { - enable = true; - client = true; - autoconnect = true; - }; - }; - hardware = { - cpu.type = "intel"; - gpu.type = "intel"; - features = [ - "bluetooth" - "backlight" - "battery" - "ssd" - "audio" - "video" - ]; - monitors = [ - { - name = "DSI-1"; - width = 720; - height = 1280; - workspace = "1"; - primary = true; - transform = 3; - } - ]; - battery = { - powersave = { - minFreq = 500; - maxFreq = 800; - }; - performance = { - minFreq = 1200; - maxFreq = 2400; - }; - }; - }; - }; - - boot = { - kernelPackages = pkgs.linuxKernel.packages.linux_zen; - }; - - system.stateVersion = mkDefault "23.11"; -} diff --git a/hosts/ooksmicro/hardware-configuration.nix b/hosts/ooksmicro/hardware-configuration.nix deleted file mode 100644 index a7bf113..0000000 --- a/hosts/ooksmicro/hardware-configuration.nix +++ /dev/null @@ -1,56 +0,0 @@ -# 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, - modulesPath, - ... -}: { - imports = [ - (modulesPath + "/installer/scan/not-detected.nix") - ]; - - boot.initrd.availableKernelModules = ["ahci" "xhci_pci" "usbhid" "usb_storage" "sd_mod" "sdhci_pci"]; - boot.initrd.kernelModules = []; - boot.kernelModules = ["kvm-intel"]; - boot.extraModulePackages = []; - - fileSystems."/" = { - device = "/dev/disk/by-uuid/385526ad-e263-495d-91eb-1f484985bd0f"; - fsType = "btrfs"; - options = ["subvol=root"]; - }; - - boot.initrd.luks.devices."cryptroot".device = "/dev/disk/by-uuid/fe7ea7fd-b531-4c00-8123-99f7ea855800"; - - fileSystems."/nix" = { - device = "/dev/disk/by-uuid/385526ad-e263-495d-91eb-1f484985bd0f"; - fsType = "btrfs"; - options = ["subvol=nix"]; - }; - - fileSystems."/boot" = { - device = "/dev/disk/by-uuid/57C5-11E7"; - fsType = "vfat"; - }; - - fileSystems."/persist" = { - device = "/dev/disk/by-uuid/385526ad-e263-495d-91eb-1f484985bd0f"; - fsType = "btrfs"; - options = ["subvol=persist"]; - }; - - swapDevices = []; - - # 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 - # still possible to use this option, but it's recommended to use it in conjunction - # with explicit per-interface declarations with `networking.interfaces..useDHCP`. - networking.useDHCP = lib.mkDefault true; - # networking.interfaces.eno1.useDHCP = lib.mkDefault true; - # networking.interfaces.wlp1s0.useDHCP = lib.mkDefault true; - - nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; -} diff --git a/hosts/ooksphone/default.nix b/hosts/ooksphone/default.nix deleted file mode 100644 index 6889d85..0000000 --- a/hosts/ooksphone/default.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ - pkgs, - inputs, - outputs, - ... -}: { - imports = [./modules]; - - environment.packages = with pkgs; [ - killall - hostname - man - coreutils - ]; - - environment.etcBackupExtension = ".bak"; - - system.stateVersion = "23.11"; - - nix = { - extraOptions = '' - experimental-features = nix-command flakes - ''; - substituters = [ - "https://cache.nixos.org?priority=10" - "https://helix.cachix.org" - "https://nix-community.cachix.org" - ]; - trustedPublicKeys = [ - "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" - "helix.cachix.org-1:ejp9KQpR1FBI2onstMQ34yogDm4OgU2ru6lIwPvuCVs=" - "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" - ]; - }; - - time.timeZone = "Pacific/Auckland"; - - user = { - shell = "${pkgs.fish}/bin/fish"; - }; - - home-manager = { - extraSpecialArgs = {inherit inputs outputs;}; - config = import ../../../home/user/ooks/ooksphone; - }; -} diff --git a/hosts/ooksphone/modules/default.nix b/hosts/ooksphone/modules/default.nix deleted file mode 100644 index ddcf533..0000000 --- a/hosts/ooksphone/modules/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ - imports = [ - ./theme.nix - # ./openssh.nix - ]; -} diff --git a/hosts/ooksphone/modules/openssh.nix b/hosts/ooksphone/modules/openssh.nix deleted file mode 100644 index fb7ca0c..0000000 --- a/hosts/ooksphone/modules/openssh.nix +++ /dev/null @@ -1,6 +0,0 @@ -_: { - programs.ssh = { - enable = true; - startAgent = true; - }; -} diff --git a/hosts/ooksphone/modules/theme.nix b/hosts/ooksphone/modules/theme.nix deleted file mode 100644 index 903f4bc..0000000 --- a/hosts/ooksphone/modules/theme.nix +++ /dev/null @@ -1,39 +0,0 @@ -{pkgs, ...}: let - fontPackage = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];}; - fontPath = "/share/fonts/truetype/NerdFonts/JetBrainsMonoNerdFontMono-Regular.ttf"; -in { - terminal = { - font = fontPackage + fontPath; - - # Gruvbox Material Dark Soft - colors = { - background = "#32302F"; - foreground = "#DDC7A1"; - cursor = "#DDC7A1"; - - color0 = "#32302F"; # Black - color8 = "#7C6F64"; # Bright Black - - color1 = "#EA6962"; # Red - color9 = "#EA6962"; # Bright Red - - color2 = "#A9B665"; # Green - color10 = "#A9B665"; # Bright Green - - color3 = "#D8A657"; # Yellow - color11 = "#D8A657"; # Bright Yellow - - color4 = "#7DAEA3"; # Blue - color12 = "#7DAEA3"; # Bright Blue - - color5 = "#D3869B"; # Magenta - color13 = "#D3869B"; # Bright Magenta - - color6 = "#89B482"; # Cyan - color14 = "#89B482"; # Bright Cyan - - color7 = "#DDC7A1"; # White - color15 = "#FBF1C7"; # Bright White - }; - }; -} diff --git a/hosts/ookst480s/default.nix b/hosts/ookst480s/default.nix index effac4c..cba1b03 100644 --- a/hosts/ookst480s/default.nix +++ b/hosts/ookst480s/default.nix @@ -2,30 +2,24 @@ pkgs, lib, ... -}: let - inherit (lib) mkDefault; -in { - imports = [ - ./hardware-configuration.nix - ]; - - ooknet.host = { - name = "ookst480s"; - type = "laptop"; - role = "workstation"; - profiles = ["console-tools" "media"]; - admin = { - name = "ooks"; - shell = "fish"; - homeManager = true; - }; - networking = { - tailscale = { - enable = true; - client = true; - autoconnect = true; +}: { + imports = [./file-system.nix]; + ooknet = { + host = { + admin = { + name = "ooks"; + shell = "fish"; + homeManager = true; }; }; + workstation = { + profiles = ["media" "gaming" "communication"]; + environment = "hyprland"; + theme = "minimal"; + }; + console = { + profile = "standard"; + }; hardware = { cpu.type = "intel"; gpu.type = "intel"; @@ -39,29 +33,15 @@ in { ]; monitors = [ { + primary = true; name = "eDP-1"; width = 1920; height = 1080; workspace = "1"; - primary = true; } ]; - battery = { - powersave = { - minFreq = 800; - maxFreq = 1800; - }; - performance = { - minFreq = 1800; - maxFreq = 3600; - }; - }; }; }; - - boot = { - kernelPackages = pkgs.linuxKernel.packages.linux_zen; - }; - - system.stateVersion = mkDefault "23.11"; + boot.kernelPackages = pkgs.linuxKernel.packages.linux_zen; + system.stateVersion = lib.mkDefault "23.11"; } diff --git a/hosts/ookst480s/hardware-configuration.nix b/hosts/ookst480s/file-system.nix similarity index 97% rename from hosts/ookst480s/hardware-configuration.nix rename to hosts/ookst480s/file-system.nix index 44cf66a..8516afa 100644 --- a/hosts/ookst480s/hardware-configuration.nix +++ b/hosts/ookst480s/file-system.nix @@ -58,7 +58,6 @@ # networking.interfaces.wlp61s0.useDHCP = lib.mkDefault true; # networking.interfaces.wwan0.useDHCP = lib.mkDefault true; - nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; } diff --git a/home/modules/desktop/browser/brave/default.nix b/hosts/ookst480s/host.nix similarity index 100% rename from home/modules/desktop/browser/brave/default.nix rename to hosts/ookst480s/host.nix diff --git a/hosts/ookst480s/workstation.nix b/hosts/ookst480s/workstation.nix new file mode 100644 index 0000000..39fce43 --- /dev/null +++ b/hosts/ookst480s/workstation.nix @@ -0,0 +1,12 @@ +{ + config = { + ooknet.workstation = { + appearance = { + theme = "minimal"; + }; + desktop = { + environment = "hyprland"; + }; + }; + }; +} diff --git a/hosts/ooksx1/default.nix b/hosts/ooksx1/default.nix deleted file mode 100644 index 359929b..0000000 --- a/hosts/ooksx1/default.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ - pkgs, - lib, - ... -}: let - inherit (lib) mkDefault; -in { - imports = [ - ./hardware-configuration.nix - ]; - - ooknet.host = { - name = "ooksx1"; - type = "laptop"; - role = "workstation"; - profiles = ["console-tools"]; - admin = { - name = "ooks"; - shell = "fish"; - homeManager = true; - }; - hardware = { - cpu.type = "intel"; - gpu.type = "intel"; - features = [ - "bluetooth" - "backlight" - "battery" - "ssd" - "audio" - "video" - ]; - monitors = [ - { - name = "eDP-1"; - width = 1920; - height = 1080; - workspace = "1"; - primary = true; - } - ]; - battery = { - powersave = { - minFreq = 800; - maxFreq = 1800; - }; - performance = { - minFreq = 1800; - maxFreq = 3600; - }; - }; - }; - }; - - boot = { - kernelPackages = pkgs.linuxKernel.packages.linux_zen; - }; - - system.stateVersion = mkDefault "23.11"; -} diff --git a/hosts/ooksx1/hardware-configuration.nix b/hosts/ooksx1/hardware-configuration.nix deleted file mode 100644 index 36207d7..0000000 --- a/hosts/ooksx1/hardware-configuration.nix +++ /dev/null @@ -1,66 +0,0 @@ -{ - config, - lib, - modulesPath, - ... -}: { - imports = [ - (modulesPath + "/installer/scan/not-detected.nix") - ]; - - boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "usb_storage" "sd_mod" "rtsx_pci_sdmmc"]; - boot.initrd.kernelModules = []; - boot.kernelModules = ["kvm-intel"]; - boot.extraModulePackages = []; - - fileSystems."/" = { - device = "/dev/disk/by-uuid/db84a41f-6094-46b1-b98a-26e03afc18e1"; - fsType = "btrfs"; - options = ["subvol=root"]; - }; - - boot.initrd.luks.devices."cryptroot".device = "/dev/disk/by-uuid/3ea21f10-f705-457c-8366-a8268f658ba6"; - - fileSystems."/nix" = { - device = "/dev/disk/by-uuid/db84a41f-6094-46b1-b98a-26e03afc18e1"; - fsType = "btrfs"; - options = ["subvol=nix"]; - }; - - fileSystems."/persist" = { - device = "/dev/disk/by-uuid/db84a41f-6094-46b1-b98a-26e03afc18e1"; - fsType = "btrfs"; - options = ["subvol=persist"]; - }; - - fileSystems."/swap" = { - device = "/dev/disk/by-uuid/db84a41f-6094-46b1-b98a-26e03afc18e1"; - fsType = "btrfs"; - options = ["subvol=swap"]; - }; - - fileSystems."/boot" = { - device = "/dev/disk/by-uuid/45D8-8DC3"; - fsType = "vfat"; - }; - - swapDevices = [ - { - device = "/swap/swapfile"; - size = 8196; - } - ]; - - # 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 - # still possible to use this option, but it's recommended to use it in conjunction - # with explicit per-interface declarations with `networking.interfaces..useDHCP`. - networking.useDHCP = lib.mkDefault true; - # networking.interfaces.enp0s31f6.useDHCP = lib.mkDefault true; - # networking.interfaces.wlp4s0.useDHCP = lib.mkDefault true; - # networking.interfaces.wwp0s20f0u2c2.useDHCP = lib.mkDefault true; - - nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; - hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; -} diff --git a/home/modules/base/default.nix b/modules/home/base/default.nix similarity index 53% rename from home/modules/base/default.nix rename to modules/home/base/default.nix index 41b5392..d3af305 100644 --- a/home/modules/base/default.nix +++ b/modules/home/base/default.nix @@ -1,7 +1,6 @@ { imports = [ + ./userDirs.nix ./home-manager.nix - ./mime-apps.nix - ./user-dirs.nix ]; } diff --git a/home/modules/base/home-manager.nix b/modules/home/base/home-manager.nix similarity index 89% rename from home/modules/base/home-manager.nix rename to modules/home/base/home-manager.nix index a87ab9a..cfbf6eb 100644 --- a/home/modules/base/home-manager.nix +++ b/modules/home/base/home-manager.nix @@ -15,9 +15,6 @@ in { homeDirectory = "/home/${config.home.username}"; stateVersion = mkDefault "22.05"; sessionPath = ["${config.home.homeDirectory}/.local/bin"]; - sessionVariables = { - TZ = "Pacific/Auckland"; - }; }; # to save space diff --git a/home/modules/base/user-dirs.nix b/modules/home/base/userDirs.nix similarity index 100% rename from home/modules/base/user-dirs.nix rename to modules/home/base/userDirs.nix diff --git a/modules/home/console/default.nix b/modules/home/console/default.nix new file mode 100644 index 0000000..df3103c --- /dev/null +++ b/modules/home/console/default.nix @@ -0,0 +1,6 @@ +{ + imports = [ + ./shell + ./tools + ]; +} diff --git a/home/modules/console/shell/bash/default.nix b/modules/home/console/shell/bash/default.nix similarity index 81% rename from home/modules/console/shell/bash/default.nix rename to modules/home/console/shell/bash/default.nix index a2f5ee6..150d48b 100644 --- a/home/modules/console/shell/bash/default.nix +++ b/modules/home/console/shell/bash/default.nix @@ -1,12 +1,11 @@ { - config, lib, osConfig, ... }: let inherit (lib) mkIf; - cfg = config.ooknet.shell.bash; inherit (osConfig.ooknet.host) admin; + cfg = osConfig.ooknet.console.shell.bash; in { config = mkIf (cfg.enable || admin.shell == "bash") { programs.bash.enable = true; diff --git a/nixos/modules/base/shell/default.nix b/modules/home/console/shell/default.nix similarity index 100% rename from nixos/modules/base/shell/default.nix rename to modules/home/console/shell/default.nix index 296c71d..3330501 100644 --- a/nixos/modules/base/shell/default.nix +++ b/modules/home/console/shell/default.nix @@ -1,7 +1,7 @@ { imports = [ ./fish - ./bash ./zsh + ./bash ]; } diff --git a/modules/home/console/shell/fish/aliases.nix b/modules/home/console/shell/fish/aliases.nix new file mode 100644 index 0000000..bf6494c --- /dev/null +++ b/modules/home/console/shell/fish/aliases.nix @@ -0,0 +1,24 @@ +{ + lib, + pkgs, + ... +}: let + inherit (lib) getExe; + inherit (pkgs) bat eza dust nh; +in { + programs.fish = { + shellAliases = { + cat = "${getExe bat}"; + ls = "${getExe eza} -a --icons --group-directories-first"; + lst = "${getExe eza} -T -L 5 --icons --group-directories-first"; + du = "${getExe dust}"; + gitroot = "cd (git rev-parse --show-toplevel)"; + }; + shellAbbrs = { + f = "cd $FLAKE"; + fe = "$EDITOR $FLAKE"; + + nswitch = "${getExe nh} os switch"; + }; + }; +} diff --git a/modules/home/console/shell/fish/binds.nix b/modules/home/console/shell/fish/binds.nix new file mode 100644 index 0000000..3d35402 --- /dev/null +++ b/modules/home/console/shell/fish/binds.nix @@ -0,0 +1,10 @@ +{ + programs.fish = { + functions = { + fish_user_key_bindings = '' + bind --preset -M insert \cf nvim '+Telescope find_files' $FLAKE + bind --preset -M insert \ec fzf_cd_widget + ''; + }; + }; +} diff --git a/home/modules/console/shell/fish/default.nix b/modules/home/console/shell/fish/default.nix similarity index 91% rename from home/modules/console/shell/fish/default.nix rename to modules/home/console/shell/fish/default.nix index 0337b02..ba02a96 100644 --- a/home/modules/console/shell/fish/default.nix +++ b/modules/home/console/shell/fish/default.nix @@ -4,10 +4,10 @@ osConfig, ... }: let - inherit (lib) mkIf; + inherit (lib) mkIf mkEnableOption; inherit (osConfig.ooknet.host) admin; - cfg = config.ooknet.shell.fish; + cfg = config.ooknet.home.fish; in { imports = [ ./plugins.nix @@ -15,12 +15,13 @@ in { ./aliases.nix ]; + options.ooknet.home.fish.enable = mkEnableOption ""; + config = mkIf (cfg.enable || admin.shell == "fish") { programs.fish = { enable = true; - functions = { - fish_greeting = ""; - }; + # disable the default greeting + functions = {fish_greeting = "";}; interactiveShellInit = # Use vim bindings and cursors '' diff --git a/modules/home/console/shell/fish/plugins.nix b/modules/home/console/shell/fish/plugins.nix new file mode 100644 index 0000000..d09bc8a --- /dev/null +++ b/modules/home/console/shell/fish/plugins.nix @@ -0,0 +1,18 @@ +{pkgs, ...}: { + programs.fish = { + plugins = [ + { + name = "done"; + inherit (pkgs.fishPlugins.done) src; + } + { + name = "autopair"; + inherit (pkgs.fishPlugins.autopair) src; + } + { + name = "colored-man-pages"; + inherit (pkgs.fishPlugins.colored-man-pages) src; + } + ]; + }; +} diff --git a/home/modules/console/shell/zsh/default.nix b/modules/home/console/shell/zsh/default.nix similarity index 80% rename from home/modules/console/shell/zsh/default.nix rename to modules/home/console/shell/zsh/default.nix index 8a7759c..ed41df7 100644 --- a/home/modules/console/shell/zsh/default.nix +++ b/modules/home/console/shell/zsh/default.nix @@ -4,14 +4,17 @@ osConfig, ... }: let - inherit (lib) mkIf; - cfg = config.ooknet.shell.zsh; + inherit (lib) mkIf mkEnableOption; inherit (osConfig.ooknet.host) admin; + + cfg = config.ooknet.home.zsh; in { imports = [ ./plugins.nix ]; + options.ooknet.home.zsh.enable = mkEnableOption ""; + config = mkIf (cfg.enable || admin.shell == "zsh") { programs.zsh = { enable = true; diff --git a/modules/home/console/shell/zsh/plugins.nix b/modules/home/console/shell/zsh/plugins.nix new file mode 100644 index 0000000..bd62c5a --- /dev/null +++ b/modules/home/console/shell/zsh/plugins.nix @@ -0,0 +1,14 @@ +{pkgs, ...}: { + programs.zsh.plugins = [ + { + name = "fast-syntax-highlighting"; + file = "fast-syntax-highlighting"; + src = "${pkgs.zsh-fast-syntax-highlighting}/share/zsh/site-functions"; + } + { + name = "zsh-autopair"; + file = "autopair.zsh"; + src = "${pkgs.zsh-autopair}/share/zsh/zsh-autopair"; + } + ]; +} diff --git a/modules/home/console/tools/bat.nix b/modules/home/console/tools/bat.nix new file mode 100644 index 0000000..412e0c4 --- /dev/null +++ b/modules/home/console/tools/bat.nix @@ -0,0 +1,29 @@ +{ + lib, + osConfig, + pkgs, + ... +}: let + inherit (lib) mkIf; + inherit (builtins) attrValues; + cfg = osConfig.ooknet.console.tools.bat; +in { + config = mkIf cfg.enable { + programs.bat = { + enable = true; + extraPackages = attrValues { + inherit + (pkgs.bat-extras) + batgrep + prettybat + batwatch + batman + ; + }; + config = { + # TODO: custom theme + theme = "base16"; + }; + }; + }; +} diff --git a/home/modules/console/tools/btop.nix b/modules/home/console/tools/btop.nix similarity index 70% rename from home/modules/console/tools/btop.nix rename to modules/home/console/tools/btop.nix index 32b0f27..f23188f 100644 --- a/home/modules/console/tools/btop.nix +++ b/modules/home/console/tools/btop.nix @@ -1,10 +1,10 @@ { lib, - config, + osConfig, ... }: let inherit (lib) mkIf; - cfg = config.ooknet.tools.btop; + cfg = osConfig.ooknet.console.tools.btop; in { config = mkIf cfg.enable { programs.btop = { diff --git a/home/modules/console/tools/default.nix b/modules/home/console/tools/default.nix similarity index 78% rename from home/modules/console/tools/default.nix rename to modules/home/console/tools/default.nix index dec4299..a65e3b4 100644 --- a/home/modules/console/tools/default.nix +++ b/modules/home/console/tools/default.nix @@ -1,15 +1,17 @@ { imports = [ ./bat.nix - ./eza.nix ./btop.nix - ./direnv.nix - ./fzf.nix - ./nixIndex.nix ./git.nix - ./starship.nix - ./utils.nix + ./fzf.nix ./ssh.nix - ./sourcegraph.nix + ./eza.nix + ./utils.nix + ./ffmpeg.nix + ./direnv.nix + ./starship.nix + ./nixIndex.nix + ./multiplexer + ./editor ]; } diff --git a/home/modules/console/tools/direnv.nix b/modules/home/console/tools/direnv.nix similarity index 74% rename from home/modules/console/tools/direnv.nix rename to modules/home/console/tools/direnv.nix index 28d5e4a..1046621 100644 --- a/home/modules/console/tools/direnv.nix +++ b/modules/home/console/tools/direnv.nix @@ -1,10 +1,10 @@ { lib, - config, + osConfig, ... }: let inherit (lib) mkIf; - cfg = config.ooknet.tools.direnv; + cfg = osConfig.ooknet.console.tools.direnv; in { config = mkIf cfg.enable { programs.direnv = { diff --git a/home/modules/desktop/security/default.nix b/modules/home/console/tools/editor/default.nix similarity index 57% rename from home/modules/desktop/security/default.nix rename to modules/home/console/tools/editor/default.nix index 586ca7a..73b5f39 100644 --- a/home/modules/desktop/security/default.nix +++ b/modules/home/console/tools/editor/default.nix @@ -1,5 +1,5 @@ { imports = [ - ./polkit.nix + ./neovim.nix ]; } diff --git a/home/modules/console/editor/nvim/default.nix b/modules/home/console/tools/editor/neovim.nix similarity index 50% rename from home/modules/console/editor/nvim/default.nix rename to modules/home/console/tools/editor/neovim.nix index 739535e..ef9f32b 100644 --- a/home/modules/console/editor/nvim/default.nix +++ b/modules/home/console/tools/editor/neovim.nix @@ -1,19 +1,17 @@ { - config, + osConfig, lib, - inputs, - pkgs, + self', ... }: let inherit (lib) mkIf; - inherit (config.ooknet) console; + inherit (osConfig.ooknet) console; - cfg = config.ooknet.editor.nvim; - - ookvim = inputs.ooks-vim.packages.${pkgs.system}.ooks-vim; + cfg = osConfig.ooknet.console.tools.nvim; in { config = mkIf (cfg.enable || console.editor == "nvim") { - home.packages = [ookvim]; + home.packages = [self'.packages.ook-vim]; home.sessionVariables.EDITOR = mkIf (console.editor == "nvim") "nvim"; }; } + diff --git a/home/modules/console/tools/eza.nix b/modules/home/console/tools/eza.nix similarity index 66% rename from home/modules/console/tools/eza.nix rename to modules/home/console/tools/eza.nix index d075eb1..6bbabb2 100644 --- a/home/modules/console/tools/eza.nix +++ b/modules/home/console/tools/eza.nix @@ -1,16 +1,16 @@ { lib, - config, + osConfig, ... }: let inherit (lib) mkIf; - cfg = config.ooknet.tools.eza; + cfg = osConfig.ooknet.console.tools.eza; in { config = mkIf cfg.enable { programs.eza = { enable = true; git = true; - icons = true; + icons = "auto"; }; }; } diff --git a/home/modules/console/tools/ffmpeg.nix b/modules/home/console/tools/ffmpeg.nix similarity index 59% rename from home/modules/console/tools/ffmpeg.nix rename to modules/home/console/tools/ffmpeg.nix index 504a229..1d6fcc2 100644 --- a/home/modules/console/tools/ffmpeg.nix +++ b/modules/home/console/tools/ffmpeg.nix @@ -1,13 +1,14 @@ { lib, - config, + osConfig, pkgs, ... }: let inherit (lib) mkIf; - cfg = config.ooknet.tools.ffmpeg; + cfg = osConfig.ooknet.console.tools.ffmpeg; in { config = mkIf cfg.enable { + # TODO: configure scripts home.packages = [pkgs.ffmpeg]; }; } diff --git a/home/modules/console/tools/fzf.nix b/modules/home/console/tools/fzf.nix similarity index 92% rename from home/modules/console/tools/fzf.nix rename to modules/home/console/tools/fzf.nix index d1d8b02..4cc61a5 100644 --- a/home/modules/console/tools/fzf.nix +++ b/modules/home/console/tools/fzf.nix @@ -1,12 +1,11 @@ { lib, - config, osConfig, ... }: let inherit (lib) mkIf; inherit (osConfig.ooknet.host) admin; - cfg = config.ooknet.tools.fzf; + cfg = osConfig.ooknet.console.tools.fzf; in { config = mkIf cfg.enable { programs.fzf = { diff --git a/home/modules/console/tools/git.nix b/modules/home/console/tools/git.nix similarity index 71% rename from home/modules/console/tools/git.nix rename to modules/home/console/tools/git.nix index d477d24..2a8a850 100644 --- a/home/modules/console/tools/git.nix +++ b/modules/home/console/tools/git.nix @@ -1,13 +1,13 @@ { pkgs, - config, lib, osConfig, ... }: let inherit (lib) mkIf; - cfg = config.ooknet.tools.git; + inherit (builtins) attrValues; inherit (osConfig.ooknet.host) admin; + cfg = osConfig.ooknet.console.tools.git; in { config = mkIf cfg.enable { programs.git = { @@ -19,9 +19,8 @@ in { lfs.enable = true; }; - home.packages = with pkgs; [ - lazygit - gh - ]; + home.packages = attrValues { + inherit (pkgs) lazygit gh; + }; }; } diff --git a/home/modules/desktop/media/image/default.nix b/modules/home/console/tools/multiplexer/default.nix similarity index 62% rename from home/modules/desktop/media/image/default.nix rename to modules/home/console/tools/multiplexer/default.nix index 8fb5e93..8d93493 100644 --- a/home/modules/desktop/media/image/default.nix +++ b/modules/home/console/tools/multiplexer/default.nix @@ -1,5 +1,5 @@ { imports = [ - ./imv.nix + ./zellij ]; } diff --git a/home/modules/console/multiplexer/zellij/default.nix b/modules/home/console/tools/multiplexer/zellij/default.nix similarity index 99% rename from home/modules/console/multiplexer/zellij/default.nix rename to modules/home/console/tools/multiplexer/zellij/default.nix index 2395229..fa85919 100644 --- a/home/modules/console/multiplexer/zellij/default.nix +++ b/modules/home/console/tools/multiplexer/zellij/default.nix @@ -1,15 +1,16 @@ { osConfig, - lib, config, + lib, pkgs, ... }: let inherit (osConfig.ooknet.appearance.colorscheme) slug palette; - inherit (config.ooknet) console; + inherit (osConfig.ooknet) console; inherit (osConfig.ooknet.host) admin; inherit (lib) mkIf; - cfg = config.ooknet.multiplexer.zellij; + + cfg = osConfig.ooknet.console.tools.zellij; in { config = mkIf (cfg.enable || console.multiplexer == "zellij") { programs.zellij = { diff --git a/home/modules/console/multiplexer/zellij/layouts/defaultLayout.nix b/modules/home/console/tools/multiplexer/zellij/layouts/defaultLayout.nix similarity index 99% rename from home/modules/console/multiplexer/zellij/layouts/defaultLayout.nix rename to modules/home/console/tools/multiplexer/zellij/layouts/defaultLayout.nix index 3755376..81ecb4b 100644 --- a/home/modules/console/multiplexer/zellij/layouts/defaultLayout.nix +++ b/modules/home/console/tools/multiplexer/zellij/layouts/defaultLayout.nix @@ -1,7 +1,6 @@ { pkgs, osConfig, - config, ... }: let inherit (osConfig.ooknet.appearance.colorscheme) palette; diff --git a/home/modules/console/multiplexer/zellij/layouts/flakeLayout.nix b/modules/home/console/tools/multiplexer/zellij/layouts/flakeLayout.nix similarity index 100% rename from home/modules/console/multiplexer/zellij/layouts/flakeLayout.nix rename to modules/home/console/tools/multiplexer/zellij/layouts/flakeLayout.nix diff --git a/home/modules/console/multiplexer/zellij/layouts/scriptLayout.nix b/modules/home/console/tools/multiplexer/zellij/layouts/scriptLayout.nix similarity index 100% rename from home/modules/console/multiplexer/zellij/layouts/scriptLayout.nix rename to modules/home/console/tools/multiplexer/zellij/layouts/scriptLayout.nix diff --git a/home/modules/console/tools/nixIndex.nix b/modules/home/console/tools/nixIndex.nix similarity index 86% rename from home/modules/console/tools/nixIndex.nix rename to modules/home/console/tools/nixIndex.nix index 5874679..7557480 100644 --- a/home/modules/console/tools/nixIndex.nix +++ b/modules/home/console/tools/nixIndex.nix @@ -1,11 +1,11 @@ { lib, - config, + osConfig, inputs, ... }: let inherit (lib) mkIf; - cfg = config.ooknet.tools.nixIndex; + cfg = osConfig.ooknet.console.tools.nixIndex; in { imports = [inputs.nix-index-db.hmModules.nix-index]; config = mkIf cfg.enable { diff --git a/home/modules/console/tools/ssh.nix b/modules/home/console/tools/ssh.nix similarity index 90% rename from home/modules/console/tools/ssh.nix rename to modules/home/console/tools/ssh.nix index 30e1416..0e5c0d9 100644 --- a/home/modules/console/tools/ssh.nix +++ b/modules/home/console/tools/ssh.nix @@ -1,11 +1,10 @@ { lib, - config, osConfig, ... }: let inherit (lib) mkIf; - cfg = config.ooknet.tools.ssh; + cfg = osConfig.ooknet.console.tools.ssh; in { config = mkIf cfg.enable { programs.ssh = { diff --git a/home/modules/console/tools/starship.nix b/modules/home/console/tools/starship.nix similarity index 96% rename from home/modules/console/tools/starship.nix rename to modules/home/console/tools/starship.nix index e73952e..deb4449 100644 --- a/home/modules/console/tools/starship.nix +++ b/modules/home/console/tools/starship.nix @@ -1,9 +1,9 @@ { - config, + osConfig, lib, ... }: let - cfg = config.ooknet.tools.starship; + cfg = osConfig.ooknet.console.tools.starship; inherit (lib) concatStrings mkIf; in { config = mkIf cfg.enable { diff --git a/modules/home/console/tools/utils.nix b/modules/home/console/tools/utils.nix new file mode 100644 index 0000000..5354ff6 --- /dev/null +++ b/modules/home/console/tools/utils.nix @@ -0,0 +1,63 @@ +{ + pkgs, + lib, + osConfig, + self', + ... +}: let + inherit (lib) mkIf; + inherit (builtins) attrValues; + + cfg = osConfig.ooknet.console.tools.utils; +in { + config = mkIf cfg.enable { + home.packages = attrValues { + inherit + (pkgs) + bc # Calculator + + # file utility + + duf + du-dust + fd + ripgrep + # archive + + zip + unzip + unrar + # file transfer + + rsync + wget + httpie # Better curl + + # resource manager + + powertop + #shell scripting + + gum + # audio ctrl + + pamixer + diffsitter # Better diff + jq # JSON pretty printer and manipulator + tldr # Community maintained help pages + progress + killall + acpi + # Notifications + + libnotify + # Nix tooling + + alejandra + ; + + #AI + inherit (self'.packages) repopack; + }; + }; +} diff --git a/modules/home/default.nix b/modules/home/default.nix new file mode 100644 index 0000000..d587b6a --- /dev/null +++ b/modules/home/default.nix @@ -0,0 +1,8 @@ +{ + programs.home-manager.enable = true; + systemd.user.startServices = "sd-switch"; + + home = { + stateVersion = "22.05"; + }; +} diff --git a/home/modules/appearance/cursor.nix b/modules/home/workstation/appearance/cursor.nix similarity index 100% rename from home/modules/appearance/cursor.nix rename to modules/home/workstation/appearance/cursor.nix diff --git a/home/modules/appearance/default.nix b/modules/home/workstation/appearance/default.nix similarity index 100% rename from home/modules/appearance/default.nix rename to modules/home/workstation/appearance/default.nix index 8742d9d..662d776 100644 --- a/home/modules/appearance/default.nix +++ b/modules/home/workstation/appearance/default.nix @@ -1,8 +1,8 @@ { imports = [ + ./qt.nix + ./gtk.nix ./fonts.nix ./cursor.nix - ./gtk.nix - ./qt.nix ]; } diff --git a/home/modules/appearance/fonts.nix b/modules/home/workstation/appearance/fonts.nix similarity index 100% rename from home/modules/appearance/fonts.nix rename to modules/home/workstation/appearance/fonts.nix diff --git a/home/modules/appearance/gtk.nix b/modules/home/workstation/appearance/gtk.nix similarity index 96% rename from home/modules/appearance/gtk.nix rename to modules/home/workstation/appearance/gtk.nix index 5d8467e..e6229d4 100644 --- a/home/modules/appearance/gtk.nix +++ b/modules/home/workstation/appearance/gtk.nix @@ -1,11 +1,8 @@ { - config, osConfig, pkgs, - lib, ... }: let - inherit (lib) mkIf; inherit (osConfig.ooknet.appearance) fonts; gtkCss = import ./gtkCss.nix {inherit osConfig;}; diff --git a/home/modules/appearance/gtkCss.nix b/modules/home/workstation/appearance/gtkCss.nix similarity index 100% rename from home/modules/appearance/gtkCss.nix rename to modules/home/workstation/appearance/gtkCss.nix diff --git a/modules/home/workstation/appearance/qt.nix b/modules/home/workstation/appearance/qt.nix new file mode 100644 index 0000000..3ad74c8 --- /dev/null +++ b/modules/home/workstation/appearance/qt.nix @@ -0,0 +1,16 @@ +{pkgs, ...}: { + qt = { + enable = true; + style.name = "gtk2"; + platformTheme.name = "gtk2"; + }; + + home.packages = with pkgs; [ + libsForQt5.qt5.qtwayland + kdePackages.qtwayland + qt6.qtwayland + kdePackages.qqc2-desktop-style + libsForQt5.qtstyleplugins + qt6Packages.qt6gtk2 + ]; +} diff --git a/home/options/desktop/binds.nix b/modules/home/workstation/binds.nix similarity index 100% rename from home/options/desktop/binds.nix rename to modules/home/workstation/binds.nix diff --git a/home/modules/desktop/communication/default.nix b/modules/home/workstation/browser/default.nix similarity index 62% rename from home/modules/desktop/communication/default.nix rename to modules/home/workstation/browser/default.nix index 52b2706..2e56d1f 100644 --- a/home/modules/desktop/communication/default.nix +++ b/modules/home/workstation/browser/default.nix @@ -1,5 +1,5 @@ { imports = [ - ./discord + ./firefox ]; } diff --git a/home/modules/desktop/browser/firefox/default.nix b/modules/home/workstation/browser/firefox/default.nix similarity index 88% rename from home/modules/desktop/browser/firefox/default.nix rename to modules/home/workstation/browser/firefox/default.nix index c68ae5d..c9ffb27 100644 --- a/home/modules/desktop/browser/firefox/default.nix +++ b/modules/home/workstation/browser/firefox/default.nix @@ -1,8 +1,7 @@ { pkgs, lib, - inputs, - config, + inputs', osConfig, ... }: let @@ -10,10 +9,10 @@ inherit (osConfig.ooknet.host) admin; inherit (osConfig.ooknet.appearance) colorscheme fonts; inherit (colorscheme) palette; - inherit (config.ooknet.desktop) browser; + inherit (osConfig.ooknet.workstation) default; - addons = inputs.firefox-addons.packages.${pkgs.system}; - cfg = config.ooknet.browser.firefox; + addons = inputs'.firefox-addons.packages; + cfg = osConfig.ooknet.workstation.programs.firefox; firefoxMime = { "text/html" = ["firefox.desktop"]; "x-scheme-handler/http" = ["firefox.desktop"]; @@ -32,7 +31,7 @@ in { imports = [./tridactyl.nix]; config = mkMerge [ - (mkIf (cfg.enable || browser == "firefox") { + (mkIf (cfg.enable || default.browser == "firefox") { programs.firefox = { enable = true; nativeMessagingHosts = [pkgs.tridactyl-native]; @@ -60,7 +59,7 @@ in { }; }) - (mkIf (browser == "firefox") { + (mkIf (default.browser == "firefox") { home.sessionVariables.BROWSER = "firefox"; ooknet.binds.browser = "firefox"; xdg.mimeApps = { diff --git a/home/modules/desktop/browser/firefox/settings/ooksJs.nix b/modules/home/workstation/browser/firefox/settings/ooksJs.nix similarity index 100% rename from home/modules/desktop/browser/firefox/settings/ooksJs.nix rename to modules/home/workstation/browser/firefox/settings/ooksJs.nix diff --git a/home/modules/desktop/browser/firefox/theme/ooksfox.nix b/modules/home/workstation/browser/firefox/theme/ooksfox.nix similarity index 100% rename from home/modules/desktop/browser/firefox/theme/ooksfox.nix rename to modules/home/workstation/browser/firefox/theme/ooksfox.nix diff --git a/home/modules/desktop/browser/firefox/theme/penguinFoxContent.nix b/modules/home/workstation/browser/firefox/theme/penguinFoxContent.nix similarity index 100% rename from home/modules/desktop/browser/firefox/theme/penguinFoxContent.nix rename to modules/home/workstation/browser/firefox/theme/penguinFoxContent.nix diff --git a/home/modules/desktop/browser/firefox/tridactyl.nix b/modules/home/workstation/browser/firefox/tridactyl.nix similarity index 97% rename from home/modules/desktop/browser/firefox/tridactyl.nix rename to modules/home/workstation/browser/firefox/tridactyl.nix index cb4787c..8c51ed3 100644 --- a/home/modules/desktop/browser/firefox/tridactyl.nix +++ b/modules/home/workstation/browser/firefox/tridactyl.nix @@ -1,16 +1,15 @@ { lib, - config, osConfig, ... }: let inherit (lib) mkIf; inherit (osConfig.ooknet.appearance) colorscheme fonts; inherit (colorscheme) palette; - inherit (config.ooknet.desktop) browser; - cfg = config.ooknet.browser.firefox; + inherit (osConfig.ooknet.workstation) default; + cfg = osConfig.ooknet.workstation.programs.firefox; in { - config = mkIf (browser == "firefox" || cfg.enable) { + config = mkIf (default.browser == "firefox" || cfg.enable) { xdg.configFile = { "tridactyl/tridactylrc".text = '' set searchurls.nix https://sourcegraph.com/search?q=context:global+lang:nix %s diff --git a/home/modules/desktop/wayland/compositor/default.nix b/modules/home/workstation/communication/default.nix similarity index 60% rename from home/modules/desktop/wayland/compositor/default.nix rename to modules/home/workstation/communication/default.nix index 3fbd598..1141ceb 100644 --- a/home/modules/desktop/wayland/compositor/default.nix +++ b/modules/home/workstation/communication/default.nix @@ -1,5 +1,5 @@ { imports = [ - ./hyprland + ./vesktop ]; } diff --git a/modules/home/workstation/communication/vesktop/default.nix b/modules/home/workstation/communication/vesktop/default.nix new file mode 100644 index 0000000..00564aa --- /dev/null +++ b/modules/home/workstation/communication/vesktop/default.nix @@ -0,0 +1,171 @@ +{ + config, + osConfig, + lib, + pkgs, + ... +}: let + inherit (lib) mkIf elem; + inherit (osConfig.ooknet.appearance) colorscheme fonts; + inherit (colorscheme) palette; + inherit (osConfig.ooknet.workstation) profiles; + + vesktopMime = {"x-scheme-handler/discord" = ["vesktop.desktop"];}; +in { + config = mkIf (elem "communication" profiles) { + # + home.packages = [ + (pkgs.vesktop.overrideAttrs (old: { + patches = (old.patches or []) ++ [./vesktop-patch.patch]; + })) + ]; + + xdg.configFile."vesktop/themes/nix.css".text = + /* + css + */ + '' + /** + * @name nix-colors-minimal + * @author aoku + * @description minimal theme designed with nix colors + */ + + :root { + --nix-bg1: #${palette.base00}; + --nix-bg2: #${palette.base01}; + --nix-bg3: #${palette.base02}; + + --nix-fg1: #${palette.base05}; + --nix-fg2: #${palette.base07}; + --nix-fg3: #${palette.base03}; + --nix-link: #${palette.base0D}; + + --nix-accent: #${palette.base08}; + --nix-hi: #${palette.base0B}; + + --font-mono: ${fonts.monospace.family}, monospace; + --font-regular: ${fonts.regular.family}, sans serif; + + /* server collapse */ + --sb-collapsed-width: 12px; + --sb-transition-duration: 0s; + } + + .theme-dark { + --background-primary: var(--nix-bg1); + --background-secondary: var(--nix-bg1); + --background-secondary-alt: var(--nix-bg1); + --background-accent: var(--nix-accent); + --background-tertiary: var(--nix-bg1); + --background-floating: var(--nix-bg1); + --background-mentioned: var(--nix-bg1); + --background-mentioned-hover: var(--nix-bg1); + --background-mobile: var(--nix-bg1); + --background-mobile-secondary: var(--nix-bg2); + --background-modifier-selected: var(--nix-bg1); + --channeltextarea-background:var(--nix-bg1); + --background-modifier-hover:var(--nix-bg1); + --activity-card-background: var(--nix-bg2); + + --header-primary: var(--nix-fg2); + --header-secondary: var(--nix-fg1); + + --text-normal: var(--nix-fg1); + --text-muted: var(--nix-fg1); + --text-link: var(--nix-link); + --text-warning: var(--nix-accent); + --font-primary: var(--font-mono); + --font-headline: var(--font-mono); + --font-display: var(--font-mono); + + --interactive-normal: var(--nix-fg1); /*base05*/ + --interactive-hover: var(--nix-hi); /*base0B*/ + --interactive-active: var(--nix-fg2); + --interactive-muted: var(--nix-fg3); /*base03*/ + --channels-default: var(--nix-fg1); + + --scrollbar-thin-thumb: transparent; + --scrollbar-thin-track: transparent; + --scrollbar-auto-thumb: var(--nix-fg1); + --scrollbar-auto-track:var(--nix-bg1); + --scrollbar-auto-scrollbar-color-thumb: var(--nix-accent); + } + + .messagesWrapper_ea2b0b { + font-family: var(--font-regular); + } + + .titleWrapper__482dc { + font-family: var(--font-mono); + } + + .link__95dc0 /* text channel*/{ + border-radius: 0px; + margin-left: -10px; + font-family: var(--font-mono); + } + + .container_ca50b9 .avatar_f8541f { /*avatar*/ + display: none; + } + + .form__13a2c /* text input box resize */ { + height: 50px; + font-family: var(--font-regular); + } + + .containerDefault__3187b .wrapper__7bcde:before /* text channel */{ + content: ""; + display:inline-block; + background: var(--nix-hi); + height: 100%; + position: absolute; + left: 0; + } + + + /* server collapse */ + .guilds__2b93a /* servers */{ + overflow: hidden !important; + width: var(--sb-collapsed-width, 75px); + transition: width var(--sb-transition-duration); + } + .guilds__2b93a:hover /* expand server bar on hover */{ + width: 70px; + overflow: visible !important; + animation: server-bar-overflow 0s linear 0ms forwards + } + .guilds__2b93a ~ .base__3e6af /* friends list, chat */{ + position: absolute; + left: var(--sb-collapsed-left, var(--sb-collapsed-width)); + top: var(--sb-collapsed-top, 0px); + bottom: var(--sb-collapsed-bottom, 0px); + right: var(--sb-collapsed-right, 0px); + transition-property: var(--sb-transition-property, left); + transition-duration: var(--sb-transition-duration); + } + .guilds__2b93a:hover ~ .base__3e6af /* friends list, chat */{ + position: absolute; + left: var(--sb-left, 70px); + top: var(--sb-top, 0px); + bottom: var(--sb-bottom, 0px); + right: var(--sb-right, 0px); + } + @keyframes server-bar-overflow{ + from{ + overflow: hidden; + } + to{ + overflow: visible; + } + } + ''; + + ooknet.binds.discord = "vesktop"; + xdg.mimeApps = { + associations.added = vesktopMime; + defaultApplications = vesktopMime; + }; + }; +} diff --git a/home/modules/desktop/communication/discord/vesktop-patch.patch b/modules/home/workstation/communication/vesktop/vesktop-patch.patch similarity index 100% rename from home/modules/desktop/communication/discord/vesktop-patch.patch rename to modules/home/workstation/communication/vesktop/vesktop-patch.patch diff --git a/home/modules/desktop/creative/default.nix b/modules/home/workstation/creative/default.nix similarity index 68% rename from home/modules/desktop/creative/default.nix rename to modules/home/workstation/creative/default.nix index 4573ac6..def6f08 100644 --- a/home/modules/desktop/creative/default.nix +++ b/modules/home/workstation/creative/default.nix @@ -1,6 +1,5 @@ { imports = [ - ./audacity.nix ./inkscape.nix ]; } diff --git a/modules/home/workstation/creative/inkscape.nix b/modules/home/workstation/creative/inkscape.nix new file mode 100644 index 0000000..6c5252c --- /dev/null +++ b/modules/home/workstation/creative/inkscape.nix @@ -0,0 +1,13 @@ +{ + lib, + osConfig, + pkgs, + ... +}: let + inherit (lib) mkIf elem; + inherit (osConfig.ooknet.workstation) profiles; +in { + config = mkIf (elem "creative" profiles) { + home.packages = [pkgs.inkscape-with-extensions]; + }; +} diff --git a/home/modules/desktop/default.nix b/modules/home/workstation/default.nix similarity index 74% rename from home/modules/desktop/default.nix rename to modules/home/workstation/default.nix index 5400c69..084e4ac 100644 --- a/home/modules/desktop/default.nix +++ b/modules/home/workstation/default.nix @@ -1,15 +1,15 @@ { imports = [ - ./browser - ./creative + ./appearance ./communication - ./media + ./browser + ./hyprland ./terminal - ./wayland - ./productivity - ./gaming - ./security ./tools - ./file-manager + ./media + ./productivity + ./creative + ./binds.nix + ./gaming ]; } diff --git a/modules/home/workstation/gaming/bottles.nix b/modules/home/workstation/gaming/bottles.nix new file mode 100644 index 0000000..028d059 --- /dev/null +++ b/modules/home/workstation/gaming/bottles.nix @@ -0,0 +1,19 @@ +{ + lib, + osConfig, + pkgs, + ... +}: let + inherit (lib) mkIf elem; + inherit (builtins) attrValues; + inherit (osConfig.ooknet.workstation) profiles; +in { + config = mkIf (elem "gaming" profiles) { + home.packages = attrValues { + inherit + (pkgs) + bottles + ; + }; + }; +} diff --git a/home/profiles/suites/gaming.nix b/modules/home/workstation/gaming/default.nix similarity index 52% rename from home/profiles/suites/gaming.nix rename to modules/home/workstation/gaming/default.nix index d4711e9..048500d 100644 --- a/home/profiles/suites/gaming.nix +++ b/modules/home/workstation/gaming/default.nix @@ -1,17 +1,17 @@ { - osConfig, lib, + osConfig, ... }: let - inherit (lib) mkIf; - inherit (builtins) elem; - inherit (osConfig.ooknet.host) profiles; + inherit (lib) elem mkIf; + inherit (osConfig.ooknet.workstation) profiles; in { + imports = [ + ./wow.nix + ./wine.nix + ./bottles.nix + ]; config = mkIf (elem "gaming" profiles) { - ooknet.gaming = { - wine.enable = true; - bottles.enable = true; - }; ooknet.binds = { steam = "steam"; factorio = "steam steam://rungameid/427520"; diff --git a/modules/home/workstation/gaming/wine.nix b/modules/home/workstation/gaming/wine.nix new file mode 100644 index 0000000..d68e028 --- /dev/null +++ b/modules/home/workstation/gaming/wine.nix @@ -0,0 +1,22 @@ +{ + lib, + osConfig, + pkgs, + ... +}: let + inherit (lib) mkIf elem; + inherit (builtins) attrValues; + inherit (osConfig.ooknet.workstation) profiles; +in { + config = mkIf (elem "gaming" profiles) { + home.packages = attrValues { + inherit + (pkgs) + winetricks + protontricks + protonup-qt + ; + inherit (pkgs.wineWowPackages) waylandFull; + }; + }; +} diff --git a/modules/home/workstation/gaming/wow.nix b/modules/home/workstation/gaming/wow.nix new file mode 100644 index 0000000..0c82934 --- /dev/null +++ b/modules/home/workstation/gaming/wow.nix @@ -0,0 +1,19 @@ +{ + lib, + osConfig, + pkgs, + ... +}: let + inherit (lib) mkIf elem; + inherit (builtins) attrValues; + inherit (osConfig.ooknet.workstation) profiles; +in { + config = mkIf (elem "gaming" profiles) { + home.packages = attrValues { + inherit + (pkgs) + wowup-cf + ; + }; + }; +} diff --git a/modules/home/workstation/hyprland/components/default.nix b/modules/home/workstation/hyprland/components/default.nix new file mode 100644 index 0000000..2c2bbee --- /dev/null +++ b/modules/home/workstation/hyprland/components/default.nix @@ -0,0 +1,13 @@ +{ + imports = [ + ./rofi.nix + ./mako.nix + ./tools.nix + ./waybar.nix + ./hypridle.nix + ./hyprlock.nix + ./hyprpaper.nix + ./gammastep.nix + ./polkit.nix + ]; +} diff --git a/home/modules/desktop/wayland/utility/gammastep.nix b/modules/home/workstation/hyprland/components/gammastep.nix similarity index 59% rename from home/modules/desktop/wayland/utility/gammastep.nix rename to modules/home/workstation/hyprland/components/gammastep.nix index c6c19d8..6351652 100644 --- a/home/modules/desktop/wayland/utility/gammastep.nix +++ b/modules/home/workstation/hyprland/components/gammastep.nix @@ -1,16 +1,20 @@ { lib, - config, + osConfig, ... }: let inherit (lib) mkIf; - cfg = config.ooknet.wayland; + inherit (osConfig.ooknet.workstation) environment; in { - config = mkIf cfg.enable { + config = mkIf (environment == "hyprland") { services.gammastep = { enable = true; enableVerboseLogging = true; - provider = "geoclue2"; + + provider = "manual"; + latitude = -30.0; + longitude = 150.0; + temperature = { day = 6000; night = 4000; diff --git a/modules/home/workstation/hyprland/components/hypridle.nix b/modules/home/workstation/hyprland/components/hypridle.nix new file mode 100644 index 0000000..dc2976d --- /dev/null +++ b/modules/home/workstation/hyprland/components/hypridle.nix @@ -0,0 +1,31 @@ +{ + inputs', + osConfig, + lib, + config, + ... +}: let + inherit (lib) getExe mkIf; + inherit (osConfig.ooknet.workstation) environment; + + hyprlock = getExe config.programs.hyprlock.package; +in { + config = mkIf (environment == "hyprland") { + services.hypridle = { + enable = true; + package = inputs'.hypridle.packages.hypridle; + settings = { + general = { + lock_cmd = hyprlock; + ignore_dbus_inhibit = false; + }; + listener = [ + { + timout = 300; + on-timeout = hyprlock; + } + ]; + }; + }; + }; +} diff --git a/home/modules/desktop/wayland/lockscreen/hyprlock.nix b/modules/home/workstation/hyprland/components/hyprlock.nix similarity index 88% rename from home/modules/desktop/wayland/lockscreen/hyprlock.nix rename to modules/home/workstation/hyprland/components/hyprlock.nix index 7bb2312..fe71b0c 100644 --- a/home/modules/desktop/wayland/lockscreen/hyprlock.nix +++ b/modules/home/workstation/hyprland/components/hyprlock.nix @@ -1,20 +1,25 @@ { lib, - config, osConfig, + inputs', ... }: let inherit (osConfig.ooknet.appearance) colorscheme fonts; inherit (colorscheme) palette; - inherit (config.ooknet) wayland; + inherit (osConfig.ooknet.workstation) environment; inherit (lib) mkIf; in { - config = mkIf (wayland.locker == "hyprlock") { + config = mkIf (environment == "hyprland") { ooknet.binds.lock = "hyprlock"; + programs.hyprlock = { + enable = true; + package = inputs'.hyprlock.packages.hyprlock; + settings = { enable = true; general = { + disable_loading_bar = true; hide_cursor = true; no_fade_in = true; }; diff --git a/home/modules/desktop/wayland/compositor/hyprland/settings/hyprpaper.nix b/modules/home/workstation/hyprland/components/hyprpaper.nix similarity index 77% rename from home/modules/desktop/wayland/compositor/hyprland/settings/hyprpaper.nix rename to modules/home/workstation/hyprland/components/hyprpaper.nix index f6807b9..b2735e4 100644 --- a/home/modules/desktop/wayland/compositor/hyprland/settings/hyprpaper.nix +++ b/modules/home/workstation/hyprland/components/hyprpaper.nix @@ -1,14 +1,13 @@ { lib, - config, osConfig, ... }: let inherit (lib) mkIf; - inherit (config.ooknet) wayland; + inherit (osConfig.ooknet.workstation) environment; wallpaperPath = osConfig.ooknet.appearance.wallpaper.path; in { - config = mkIf (wayland.compositor == "hyprland") { + config = mkIf (environment == "hyprland") { services.hyprpaper = { enable = true; }; diff --git a/home/modules/desktop/wayland/notification/mako.nix b/modules/home/workstation/hyprland/components/mako.nix similarity index 69% rename from home/modules/desktop/wayland/notification/mako.nix rename to modules/home/workstation/hyprland/components/mako.nix index 350b3af..e0bfe08 100644 --- a/home/modules/desktop/wayland/notification/mako.nix +++ b/modules/home/workstation/hyprland/components/mako.nix @@ -1,21 +1,16 @@ { - config, osConfig, lib, ... }: let inherit (osConfig.ooknet.appearance) colorscheme fonts; - inherit (colorscheme) palette variant; - inherit (config.ooknet) wayland; + inherit (colorscheme) palette; + inherit (osConfig.ooknet.workstation) environment; inherit (lib) mkIf; in { - config = mkIf (wayland.notification == "mako") { + config = mkIf (environment == "hyprland") { services.mako = { enable = true; - #iconPath = - # #if variant == "dark" - # #then "${config.gtk.iconTheme.package}/share/icons/Papirus-Dark" - # #else "${config.gtk.iconTheme.package}/share/icons/Papirus-Light"; font = "${fonts.regular.family} 12"; padding = "10,10"; anchor = "top-right"; diff --git a/modules/home/workstation/hyprland/components/polkit.nix b/modules/home/workstation/hyprland/components/polkit.nix new file mode 100644 index 0000000..6f068da --- /dev/null +++ b/modules/home/workstation/hyprland/components/polkit.nix @@ -0,0 +1,31 @@ +{ + lib, + osConfig, + pkgs, + ... +}: let + inherit (lib) mkIf; + inherit (osConfig.ooknet.workstation) environment; +in { + config = mkIf (environment == "hyprland") { + systemd.user.services = { + polkit-pantheon-authentication-agent-1 = { + Unit.Description = "polkit-pantheon-authentication-agent-1"; + + Install = { + WantedBy = ["graphical-session.target"]; + Wants = ["graphical-session.target"]; + After = ["graphical-session.target"]; + }; + + Service = { + Type = "simple"; + ExecStart = "${pkgs.pantheon.pantheon-agent-polkit}/libexec/policykit-1-pantheon/io.elementary.desktop.agent-polkit"; + Restart = "on-failure"; + RestartSec = 1; + TimeoutStopSec = 10; + }; + }; + }; + }; +} diff --git a/home/modules/desktop/wayland/launcher/rofi.nix b/modules/home/workstation/hyprland/components/rofi.nix similarity index 95% rename from home/modules/desktop/wayland/launcher/rofi.nix rename to modules/home/workstation/hyprland/components/rofi.nix index 2d74b79..70b7ce3 100644 --- a/home/modules/desktop/wayland/launcher/rofi.nix +++ b/modules/home/workstation/hyprland/components/rofi.nix @@ -8,10 +8,10 @@ inherit (lib) mkIf; inherit (osConfig.ooknet.appearance) colorscheme fonts; inherit (colorscheme) palette; - inherit (config.ooknet) wayland; + inherit (osConfig.ooknet.workstation) environment; inherit (config.lib.formats.rasi) mkLiteral; in { - config = mkIf (wayland.launcher == "rofi") { + config = mkIf (environment == "hyprland") { programs.rofi = { enable = true; font = "${fonts.monospace.family}"; diff --git a/modules/home/workstation/hyprland/components/tools.nix b/modules/home/workstation/hyprland/components/tools.nix new file mode 100644 index 0000000..de0b925 --- /dev/null +++ b/modules/home/workstation/hyprland/components/tools.nix @@ -0,0 +1,33 @@ +{ + lib, + pkgs, + osConfig, + ... +}: let + inherit (lib) mkIf; + inherit (builtins) attrValues; + inherit (osConfig.ooknet.workstation) environment; +in { + config = mkIf (environment == "hyprland") { + home = { + packages = attrValues { + inherit + (pkgs) + grim + slurp + libnotify + wl-screenrec + wf-recorder + wl-clipboard + ; + }; + }; + + systemd.user.targets.tray = { + Unit = { + Description = "Home Manager System Tray"; + Requires = ["graphical-session-pre.target"]; + }; + }; + }; +} diff --git a/home/modules/desktop/wayland/bar/waybar/default.nix b/modules/home/workstation/hyprland/components/waybar.nix similarity index 96% rename from home/modules/desktop/wayland/bar/waybar/default.nix rename to modules/home/workstation/hyprland/components/waybar.nix index afcddbc..7213faf 100644 --- a/home/modules/desktop/wayland/bar/waybar/default.nix +++ b/modules/home/workstation/hyprland/components/waybar.nix @@ -7,14 +7,13 @@ }: let inherit (osConfig.ooknet.appearance) colorscheme fonts; inherit (colorscheme) palette; - - inherit (osConfig.ooknet.host.hardware) monitors; - - inherit (config.ooknet) wayland; + inherit (osConfig.ooknet.hardware) monitors; + inherit (osConfig.ooknet.workstation) environment; inherit (lib) mkIf head; + monitorWidth = (head monitors).width - 20; in { - config = mkIf (wayland.bar == "waybar") { + config = mkIf (environment == "hyprland") { programs.waybar = { enable = true; systemd.enable = true; diff --git a/home/modules/desktop/wayland/variables.nix b/modules/home/workstation/hyprland/default.nix similarity index 55% rename from home/modules/desktop/wayland/variables.nix rename to modules/home/workstation/hyprland/default.nix index 2e0a59e..0bf1580 100644 --- a/home/modules/desktop/wayland/variables.nix +++ b/modules/home/workstation/hyprland/default.nix @@ -1,14 +1,28 @@ { + inputs', lib, - config, osConfig, ... }: let + inherit (osConfig.ooknet.workstation) environment; + inherit (osConfig.ooknet.hardware) gpu; inherit (lib) mkIf; - cfg = config.ooknet.wayland; - inherit (osConfig.ooknet.host.hardware) gpu; in { - config = mkIf cfg.enable { + imports = [ + ./settings + ./components + ]; + + config = mkIf (environment == "hyprland") { + wayland.windowManager.hyprland = { + enable = true; + package = inputs'.hyprland.packages.hyprland; + xwayland.enable = true; + systemd = { + enable = true; + variables = ["--all"]; + }; + }; home.sessionVariables = { CLUTTER_BACKEND = "wayland"; @@ -22,8 +36,10 @@ in { MOZ_DBUS_REMOTE = "1"; XDG_SESSION_TYPE = "wayland"; SDL_VIDEODRIVER = "wayland"; + XDG_SESSION_DESKTOP = "Hyprland"; + XDG_CURRENT_DESKTOP = "Hyprland"; } - // mkIf (gpu == "nvidia") { + // mkIf (gpu.type == "nvidia") { LIBVA_DRIVER_NAME = "nvidia"; GBM_BACKEND = "nvidia-drm"; __GLX_VENDOR_LIBRARY_NAME = "nvidia"; diff --git a/modules/home/workstation/hyprland/settings/appearance.nix b/modules/home/workstation/hyprland/settings/appearance.nix new file mode 100644 index 0000000..0b75aa7 --- /dev/null +++ b/modules/home/workstation/hyprland/settings/appearance.nix @@ -0,0 +1,46 @@ +{osConfig, ...}: let + inherit (osConfig.ooknet.appearance) colorscheme cursor; + inherit (colorscheme) palette; +in { + wayland.windowManager.hyprland = { + settings = { + # cursor = { + # inactive_timeout = 4; + # }; + general = { + gaps_in = 10; + gaps_out = 10; + border_size = 2; + "col.active_border" = "0xff${palette.base05}"; + "col.inactive_border" = "0xff${palette.base02}"; + }; + + exec-once = [ + "hyprctl setcursor ${cursor.name} ${toString cursor.size}" + ]; + + decoration = { + active_opacity = 1.0; + inactive_opacity = 1.0; + fullscreen_opacity = 1.0; + + rounding = 0; + + blur = { + enabled = false; + ignore_opacity = true; + }; + + drop_shadow = true; + shadow_range = 12; + shadow_offset = "3 3"; + "col.shadow" = "0x44000000"; + "col.shadow_inactive" = "0x66000000"; + }; + + animations = { + enabled = false; + }; + }; + }; +} diff --git a/modules/home/workstation/hyprland/settings/binds.nix b/modules/home/workstation/hyprland/settings/binds.nix new file mode 100644 index 0000000..f579687 --- /dev/null +++ b/modules/home/workstation/hyprland/settings/binds.nix @@ -0,0 +1,114 @@ +{config, ...}: let + inherit (config.ooknet) binds; +in { + wayland.windowManager.hyprland.settings = { + bind = [ + # Program Launch + "SUPER, b, exec, ${binds.browser}" + "SUPER, return, exec, ${binds.terminal}" + "SUPER, e, exec, ${binds.terminalLaunch} $EDITOR" + "SUPERSHIFT, P, exec, ${binds.password}" + "SUPER, d, exec, ${binds.discord}" + "SUPERSHIFT, e, exec, ${binds.fileManager}" + "SUPERSHIFT, S, exec, ${binds.steam}" + "SUPERSHIFT, n, exec, ${binds.notes}" + "SUPER, escape, exec, ${binds.terminalLaunch} --title=BTOP btop" + "SUPER CTRL, return, exec, ${binds.zellijMenu}" + "SUPER, delete, exec, ${binds.powerMenu}" + "SUPERSHIFT, F, exec, ${binds.factorio}" + + # Spotify PLayer Controls + "SUPER, M, exec, ${binds.spotify.launch}" + "SUPER, bracketright, exec, ${binds.spotify.next}" + "SUPER, bracketleft, exec, ${binds.spotify.previous}" + "SUPER, backslash, exec, ${binds.spotify.play}" + + # Brightness + ",XF86MonBrightnessUp, exec, ${binds.brightness.up}" + ",XF86MonBrightnessDown, exec, ${binds.brightness.down}" + + # Volume + ",XF86AudioRaiseVolume, exec, ${binds.volume.up}" + ",XF86AudioLowerVolume, exec, ${binds.volume.down}" + ",XF86AudioMute, exec, ${binds.volume.mute}" + + # Window Management + "SUPER, Q, killactive" + "SUPER CTRL, backspace, killactive" + "SUPERSHIFT ALT, delete, exec, hyprkillsession" + "SUPER, F, fullscreen" + "SUPER CTRL, F, fullscreenstate" + "SUPER, Space, togglefloating" + "SUPER, P, pseudo" # dwindle + "SUPER, S, togglesplit" # dwindle + + # Focus Arrows + "SUPER, left, movefocus,l" + "SUPER, right, movefocus,r" + "SUPER, up, movefocus,u" + "SUPER, down, movefocus,d" + + # Focus Vim + "SUPER, h, movefocus,l" + "SUPER, l, movefocus,r" + "SUPER, k, movefocus,u" + "SUPER, j, movefocus,d" + + # Move Arrows + "SUPERSHIFT, left, movewindow,l" + "SUPERSHIFT, right, movewindow,r" + "SUPERSHIFT, up, movewindow,u" + "SUPERSHIFT, down, movewindow,d" + + # Move Vim + "SUPERSHIFT, h, movewindow,l" + "SUPERSHIFT, l, movewindow,r" + "SUPERSHIFT, k, movewindow,u" + "SUPERSHIFT, j, movewindow,d" + + #Resize + "SUPER CTRL, left, resizeactive,-20 0" + "SUPERCTRL, right, resizeactive,20 0" + "SUPER CTRL, up, resizeactive,0 -20" + "SUPERCTRL, down, resizeactive,0 20" + + # Switch workspace + "SUPER, 1, workspace,1" + "SUPER, 2, workspace,2" + "SUPER, 3, workspace,3" + "SUPER, 4, workspace,4" + "SUPER, 5, workspace,5" + "SUPER, 6, workspace,6" + "SUPER, 7, workspace,7" + "SUPER, 8, workspace,8" + "SUPER, 9, workspace,9" + "SUPER, 0, workspace,10" + "SUPER, period, workspace,e+1" + "SUPER, comma, workspace,e-1" + "SUPER, tab, focusCurrentOrLast" + + # Move workspace + "SUPERSHIFT, 1, movetoworkspace,1" + "SUPERSHIFT, 2, movetoworkspace,2" + "SUPERSHIFT, 3, movetoworkspace,3" + "SUPERSHIFT, 4, movetoworkspace,4" + "SUPERSHIFT, 5, movetoworkspace,5" + "SUPERSHIFT, 6, movetoworkspace,6" + "SUPERSHIFT, 7, movetoworkspace,7" + "SUPERSHIFT, 8, movetoworkspace,8" + "SUPERSHIFT, 9, movetoworkspace,9" + "SUPERSHIFT, 0, movetoworkspace,10" + + # Lock Screen + "SUPER, Backspace, exec, ${binds.lock}" + ]; + # Mouse + bindm = [ + "SUPER, mouse:272, movewindow" + "SUPER, mouse:273, resizewindow" + ]; + # bindr = [ + # "SUPER, SUPER_L, exec, killall rofi || rofi -show drun" + # ]; + }; +} diff --git a/home/modules/desktop/wayland/compositor/hyprland/settings/default.nix b/modules/home/workstation/hyprland/settings/default.nix similarity index 73% rename from home/modules/desktop/wayland/compositor/hyprland/settings/default.nix rename to modules/home/workstation/hyprland/settings/default.nix index 06c7bde..7645edd 100644 --- a/home/modules/desktop/wayland/compositor/hyprland/settings/default.nix +++ b/modules/home/workstation/hyprland/settings/default.nix @@ -1,14 +1,12 @@ { imports = [ - ./appearance.nix + ./misc.nix + ./exec.nix + ./input.nix ./binds.nix ./rules.nix - ./exec.nix - ./env.nix - ./inputs.nix - ./misc.nix ./monitor.nix ./gestures.nix - ./hyprpaper.nix + ./appearance.nix ]; } diff --git a/modules/home/workstation/hyprland/settings/exec.nix b/modules/home/workstation/hyprland/settings/exec.nix new file mode 100644 index 0000000..7506f7e --- /dev/null +++ b/modules/home/workstation/hyprland/settings/exec.nix @@ -0,0 +1,12 @@ +{pkgs, ...}: { + wayland.windowManager.hyprland.settings = { + exec = [ + #"${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1" + ]; + exec-once = [ + "${pkgs._1password-gui}/bin/1password --silent" + # "${pkgs.live-buds-cli}/bin/earbuds -d" + # "waybar" + ]; + }; +} diff --git a/modules/home/workstation/hyprland/settings/gestures.nix b/modules/home/workstation/hyprland/settings/gestures.nix new file mode 100644 index 0000000..79ce027 --- /dev/null +++ b/modules/home/workstation/hyprland/settings/gestures.nix @@ -0,0 +1,6 @@ +{ + wayland.windowManager.hyprland.settings.gestures = { + workspace_swipe = true; + workspace_swipe_forever = true; + }; +} diff --git a/modules/home/workstation/hyprland/settings/input.nix b/modules/home/workstation/hyprland/settings/input.nix new file mode 100644 index 0000000..7e79e44 --- /dev/null +++ b/modules/home/workstation/hyprland/settings/input.nix @@ -0,0 +1,8 @@ +{ + wayland.windowManager.hyprland.settings.input = { + kb_layout = "us"; + follow_mouse = 1; + touchpad.natural_scroll = "no"; + mouse_refocus = false; + }; +} diff --git a/modules/home/workstation/hyprland/settings/misc.nix b/modules/home/workstation/hyprland/settings/misc.nix new file mode 100644 index 0000000..064daf4 --- /dev/null +++ b/modules/home/workstation/hyprland/settings/misc.nix @@ -0,0 +1,15 @@ +{ + wayland.windowManager.hyprland.settings.misc = { + mouse_move_enables_dpms = true; + key_press_enables_dpms = true; + disable_hyprland_logo = true; + disable_splash_rendering = true; + + enable_swallow = true; + + # TODO: use terminal/file-explorer module + swallow_regex = "foot|nemo"; + + focus_on_activate = true; + }; +} diff --git a/modules/home/workstation/hyprland/settings/monitor.nix b/modules/home/workstation/hyprland/settings/monitor.nix new file mode 100644 index 0000000..b278bec --- /dev/null +++ b/modules/home/workstation/hyprland/settings/monitor.nix @@ -0,0 +1,30 @@ +{ + lib, + osConfig, + ... +}: let + inherit (lib) concatMap; + inherit (osConfig.ooknet.hardware) monitors; +in { + wayland.windowManager.hyprland.settings = { + monitor = + concatMap ( + m: let + resolution = "${toString m.width}x${toString m.height}@${toString m.refreshRate}"; + position = "${toString m.x}x${toString m.y}"; + basicConfig = "${m.name},${ + if m.enabled + then "${resolution},${position},1" + else "disable" + }"; + in + [basicConfig] + ++ ( + if m.transform != 0 + then ["${m.name},transform,${toString m.transform}"] + else [] + ) + ) + monitors; + }; +} diff --git a/modules/home/workstation/hyprland/settings/rules.nix b/modules/home/workstation/hyprland/settings/rules.nix new file mode 100644 index 0000000..cc79331 --- /dev/null +++ b/modules/home/workstation/hyprland/settings/rules.nix @@ -0,0 +1,24 @@ +{ + wayland.windowManager.hyprland.settings = { + windowrulev2 = [ + "float,move 191 15,size 924 396,class:^(1Password)$" + + "float, title:^(Picture-in-Picture)$" + "pin, title:^(Picture-in-Picture)$" + + "float,move 237 175, size 1200 720,title:^(File Upload)$" + + "workspace 4, title:^(Vesktop)$" + + # Floating BTOP + "float,title:^(BTOP)$" + "size 85%,title:^(BTOP)$" + "pin,title:^(BTOP)$" + "center,title:^(BTOP)$" + "stayfocused,title:^(BTOP)$" + + # Tearing + "immediate, title:^(TEKKEN™8)$" + ]; + }; +} diff --git a/modules/home/workstation/media/default.nix b/modules/home/workstation/media/default.nix new file mode 100644 index 0000000..e721030 --- /dev/null +++ b/modules/home/workstation/media/default.nix @@ -0,0 +1,7 @@ +{ + imports = [ + ./image.nix + ./music.nix + ./video.nix + ]; +} diff --git a/home/modules/desktop/media/image/imv.nix b/modules/home/workstation/media/image.nix similarity index 66% rename from home/modules/desktop/media/image/imv.nix rename to modules/home/workstation/media/image.nix index 753f766..eb9b87d 100644 --- a/home/modules/desktop/media/image/imv.nix +++ b/modules/home/workstation/media/image.nix @@ -1,15 +1,15 @@ { lib, - config, + osConfig, ... }: let - inherit (lib) mkIf; - cfg = config.ooknet.media.image.imv; + inherit (lib) mkIf elem; + inherit (osConfig.ooknet.workstation) profiles; imvMime = { "image/*" = ["imv.desktop"]; }; in { - config = mkIf cfg.enable { + config = mkIf (elem "media" profiles) { programs = { imv = { enable = true; diff --git a/home/modules/desktop/media/music/tui.nix b/modules/home/workstation/media/music.nix similarity index 51% rename from home/modules/desktop/media/music/tui.nix rename to modules/home/workstation/media/music.nix index 820775e..2ea3cc0 100644 --- a/home/modules/desktop/media/music/tui.nix +++ b/modules/home/workstation/media/music.nix @@ -5,21 +5,24 @@ lib, ... }: let + inherit (lib) mkIf getExe elem; + inherit (builtins) attrValues; inherit (osConfig.ooknet.appearance.colorscheme) palette; inherit (osConfig.networking) hostName; - inherit (config.ooknet.multiplexer) zellij; - inherit (config.ooknet.console) multiplexer; + inherit (osConfig.ooknet.console.tools) zellij; + inherit (osConfig.ooknet.console) multiplexer; + inherit (osConfig.ooknet.workstation) profiles; inherit (config.ooknet) binds; - inherit (lib) mkIf getExe; - cfg = config.ooknet.media.music.tui; in { - config = mkIf cfg.enable { - home.packages = with pkgs; [ - termusic - spotify-player - alsa-utils - mpv - ]; + config = mkIf (elem "media" profiles) { + home.packages = attrValues { + inherit + (pkgs) + termusic + alsa-utils + mpv + ; + }; ooknet.binds.spotify = { launch = "${binds.terminalLaunch} spotify_player"; @@ -28,59 +31,64 @@ in { play = "spotify_player playback play-pause"; }; - programs.cava = { - enable = true; - settings = { - general.framerate = 60; - color = { - gradient = 1; - gradient_count = 5; - gradient_color_1 = "'#${palette.base0A}'"; - gradient_color_2 = "'#${palette.base0B}'"; - gradient_color_3 = "'#${palette.base0C}'"; - gradient_color_4 = "'#${palette.base0D}'"; - gradient_color_5 = "'#${palette.base0E}'"; + programs = { + spotify-player = { + enable = true; + settings = { + theme = "default"; + client_id = "fc4c3656d7cc4a7ea70c6080965f8b1a"; + client_port = 8080; + tracks_playback_limit = 50; + playback_format = "{track} • {artists}\n{album}\n{metadata}"; + notify_format = { + summary = "{track} • {artists}"; + body = "{album}"; + }; + app_refresh_duration_in_ms = 32; + playback_refresh_duration_in_ms = 0; + page_size_in_rows = 20; + enable_media_control = false; + enable_streaming = "Always"; + enable_notify = true; + enable_cover_image_cache = false; + notify_streaming_only = false; + default_device = "${hostName}"; + play_icon = "▶"; + pause_icon = "▌▌"; + liked_icon = "♥"; + playback_window_position = "Top"; + cover_img_length = 9; + cover_img_width = 5; + playback_window_width = 6; + + device = { + name = "${hostName}"; + device_type = "speaker"; + volume = 100; + bitrate = 320; + audio_cache = false; + normalization = false; + }; + }; + }; + + cava = { + enable = true; + settings = { + general.framerate = 60; + color = { + gradient = 1; + gradient_count = 5; + gradient_color_1 = "'#${palette.base0A}'"; + gradient_color_2 = "'#${palette.base0B}'"; + gradient_color_3 = "'#${palette.base0C}'"; + gradient_color_4 = "'#${palette.base0D}'"; + gradient_color_5 = "'#${palette.base0E}'"; + }; }; }; }; - xdg.configFile."spotify-player/app.toml".text = - /* - toml - */ - '' - theme = "default" - client_id = "fc4c3656d7cc4a7ea70c6080965f8b1a" - client_port = 8080 - tracks_playback_limit = 50 - playback_format = "{track} • {artists}\n{album}\n{metadata}" - notify_format = { summary = "{track} • {artists}", body = "{album}" } - app_refresh_duration_in_ms = 32 - playback_refresh_duration_in_ms = 0 - page_size_in_rows = 20 - enable_media_control = false - enable_streaming = "Always" - enable_notify = true - enable_cover_image_cache = false - notify_streaming_only = false - default_device = "${hostName}" - play_icon = "▶" - pause_icon = "▌▌" - liked_icon = "♥" - playback_window_position = "Top" - cover_img_length = 9 - cover_img_width = 5 - playback_window_width = 6 - - [device] - name = "${hostName}" - device_type = "speaker" - volume = 100 - bitrate = 320 - audio_cache = false - normalization = false - ''; - xdg.configFile."zellij/layouts/music.kdl".text = mkIf (zellij.enable || multiplexer == "zellij") /* @@ -111,7 +119,7 @@ in { datetime "#[fg=#${palette.base05},bold] {format} " datetime_format "%I:%M %p" - datetime_timezone "${config.home.sessionVariables.TZ}" + datetime_timezone "${osConfig.time.timeZone}" } } children diff --git a/home/modules/desktop/media/video/mpv.nix b/modules/home/workstation/media/video.nix similarity index 58% rename from home/modules/desktop/media/video/mpv.nix rename to modules/home/workstation/media/video.nix index 76afc77..472504d 100644 --- a/home/modules/desktop/media/video/mpv.nix +++ b/modules/home/workstation/media/video.nix @@ -1,16 +1,18 @@ { lib, - config, + osConfig, + pkgs, ... }: let - inherit (lib) mkIf; - cfg = config.ooknet.media.video.mpv; + inherit (lib) elem mkIf; + inherit (osConfig.ooknet.workstation) profiles; mpvMime = { "audio/*" = ["mpv.desktop"]; "video/*" = ["mpv.desktop"]; }; in { - config = mkIf cfg.enable { + config = mkIf (elem "media" profiles) { + home.packages = [pkgs.jellyfin-media-player]; programs.mpv = { enable = true; }; diff --git a/home/modules/desktop/productivity/notes/default.nix b/modules/home/workstation/productivity/default.nix similarity index 70% rename from home/modules/desktop/productivity/notes/default.nix rename to modules/home/workstation/productivity/default.nix index e68bedc..e6118b1 100644 --- a/home/modules/desktop/productivity/notes/default.nix +++ b/modules/home/workstation/productivity/default.nix @@ -1,5 +1,6 @@ { imports = [ + ./zathura.nix ./obsidian.nix ]; } diff --git a/modules/home/workstation/productivity/obsidian.nix b/modules/home/workstation/productivity/obsidian.nix new file mode 100644 index 0000000..8a6bc4f --- /dev/null +++ b/modules/home/workstation/productivity/obsidian.nix @@ -0,0 +1,30 @@ +{ + lib, + config, + osConfig, + pkgs, + ... +}: let + inherit (lib) mkIf elem hm; + inherit (osConfig.ooknet.workstation) profiles; + # admin = osConfig.ooknet.host.admin; + # TODO: use admin.githubUsername + notesRepo = "git@github.com:ooks-io/notes.git"; + notesPath = "${config.xdg.userDirs.documents}/notes"; +in { + config = mkIf (elem "productivity" profiles) { + home.packages = [pkgs.obsidian]; + home.activation.cloneObsidianVault = + hm.dag.entryAfter ["installPackages"] + /* + shell + */ + '' + if ! [ -d "${notesPath}" ]; then + $DRY_RUN_CMD git clone ${notesRepo} ${notesPath} + fi + ''; + + ooknet.binds.notes = "obsidian"; + }; +} diff --git a/home/modules/desktop/productivity/pdf/zathura.nix b/modules/home/workstation/productivity/zathura.nix similarity index 79% rename from home/modules/desktop/productivity/pdf/zathura.nix rename to modules/home/workstation/productivity/zathura.nix index 76dc48a..cbec03d 100644 --- a/home/modules/desktop/productivity/pdf/zathura.nix +++ b/modules/home/workstation/productivity/zathura.nix @@ -1,18 +1,16 @@ { lib, - config, osConfig, ... }: let + inherit (lib) mkIf elem; inherit (osConfig.ooknet.appearance.colorscheme) palette; inherit (osConfig.ooknet.appearance) fonts; - inherit (config.ooknet.desktop) pdf; - inherit (lib) mkIf; + inherit (osConfig.ooknet.workstation) profiles; - zathura = {"application/pdf" = ["org.pwmt.zathura.desktop"];}; - cfg = config.ooknet.productivity.pdf.zathura; + zathuraMime = {"application/pdf" = ["org.pwmt.zathura.desktop"];}; in { - config = mkIf (cfg.enable || pdf == "zathura") { + config = mkIf (elem "productivity" profiles) { programs.zathura = { enable = true; options = { @@ -41,9 +39,9 @@ in { recolor-darkcolor = "#${palette.base06}"; }; }; - xdg.mimeApps = mkIf (pdf == "zathura") { - associations.added = zathura; - defaultApplications = zathura; + xdg.mimeApps = { + associations.added = zathuraMime; + defaultApplications = zathuraMime; }; }; } diff --git a/home/modules/desktop/terminal/default.nix b/modules/home/workstation/terminal/default.nix similarity index 70% rename from home/modules/desktop/terminal/default.nix rename to modules/home/workstation/terminal/default.nix index 26a470d..c21fc86 100644 --- a/home/modules/desktop/terminal/default.nix +++ b/modules/home/workstation/terminal/default.nix @@ -1,6 +1,5 @@ { imports = [ ./foot.nix - ./kitty.nix ]; } diff --git a/home/modules/desktop/terminal/foot.nix b/modules/home/workstation/terminal/foot.nix similarity index 93% rename from home/modules/desktop/terminal/foot.nix rename to modules/home/workstation/terminal/foot.nix index f807ee6..b095dea 100644 --- a/home/modules/desktop/terminal/foot.nix +++ b/modules/home/workstation/terminal/foot.nix @@ -1,17 +1,16 @@ { - config, osConfig, lib, ... }: let inherit (osConfig.ooknet.appearance) colorscheme fonts; inherit (colorscheme) palette; - inherit (config.ooknet) desktop; inherit (lib) mkMerge mkIf; - cfg = config.ooknet.terminal.foot; + inherit (osConfig.ooknet.workstation) default; + cfg = osConfig.ooknet.workstation.programs.foot; in { config = mkMerge [ - (mkIf (cfg.enable || desktop.terminal == "foot") { + (mkIf (cfg.enable || default.terminal == "foot") { programs.foot = { enable = true; server.enable = true; @@ -71,7 +70,7 @@ in { }; }) - (mkIf (desktop.terminal == "foot") { + (mkIf (default.terminal == "foot") { home.sessionVariables = { TERMINAL = "foot"; TERM = "foot"; diff --git a/home/modules/desktop/tools/1password.nix b/modules/home/workstation/tools/1password.nix similarity index 75% rename from home/modules/desktop/tools/1password.nix rename to modules/home/workstation/tools/1password.nix index b6f34c8..735a67e 100644 --- a/home/modules/desktop/tools/1password.nix +++ b/modules/home/workstation/tools/1password.nix @@ -4,7 +4,7 @@ ... }: let inherit (lib) mkIf; - cfg = osConfig.ooknet.programs._1password; + cfg = osConfig.programs._1password; in { config = mkIf cfg.enable { ooknet.binds.password = "1password"; diff --git a/home/modules/desktop/tools/default.nix b/modules/home/workstation/tools/default.nix similarity index 85% rename from home/modules/desktop/tools/default.nix rename to modules/home/workstation/tools/default.nix index 92ee962..28f2f81 100644 --- a/home/modules/desktop/tools/default.nix +++ b/modules/home/workstation/tools/default.nix @@ -1,10 +1,9 @@ { imports = [ - ./kdeconnect.nix - ./ookvolume.nix - ./1password.nix - ./ookbrightness.nix ./ookpower.nix - ./zellijMenu.nix + ./1password.nix + ./ookvolume.nix + ./kdeconnect.nix + ./ookbrightness.nix ]; } diff --git a/home/modules/desktop/tools/kdeconnect.nix b/modules/home/workstation/tools/kdeconnect.nix similarity index 79% rename from home/modules/desktop/tools/kdeconnect.nix rename to modules/home/workstation/tools/kdeconnect.nix index 013d115..312ba35 100644 --- a/home/modules/desktop/tools/kdeconnect.nix +++ b/modules/home/workstation/tools/kdeconnect.nix @@ -4,7 +4,7 @@ ... }: let inherit (lib) mkIf; - cfg = osConfig.ooknet.programs.kdeconnect; + cfg = osConfig.programs.kdeconnect; in { config = mkIf cfg.enable { services.kdeconnect = { diff --git a/home/modules/desktop/tools/ookbrightness.nix b/modules/home/workstation/tools/ookbrightness.nix similarity index 95% rename from home/modules/desktop/tools/ookbrightness.nix rename to modules/home/workstation/tools/ookbrightness.nix index c2a64c1..c081d02 100644 --- a/home/modules/desktop/tools/ookbrightness.nix +++ b/modules/home/workstation/tools/ookbrightness.nix @@ -6,7 +6,7 @@ }: let inherit (lib) mkIf; inherit (builtins) elem; - inherit (osConfig.ooknet.host.hardware) features; + inherit (osConfig.ooknet.hardware) features; ookbrightness = pkgs.writeShellApplication { name = "ookbrightness"; runtimeInputs = with pkgs; [brillo libnotify]; diff --git a/modules/home/workstation/tools/ookpower.nix b/modules/home/workstation/tools/ookpower.nix new file mode 100644 index 0000000..23903ab --- /dev/null +++ b/modules/home/workstation/tools/ookpower.nix @@ -0,0 +1,14 @@ +{ + lib, + config, + inputs', + ... +}: let + inherit (lib) mkIf; + inherit (config.programs) rofi; +in { + config = mkIf rofi.enable { + home.packages = [inputs'.ooks-scripts.packages.powermenu]; + ooknet.binds.powerMenu = "powermenu -c dmenu"; + }; +} diff --git a/home/modules/desktop/tools/ookvolume.nix b/modules/home/workstation/tools/ookvolume.nix similarity index 94% rename from home/modules/desktop/tools/ookvolume.nix rename to modules/home/workstation/tools/ookvolume.nix index d1a1fd4..6c7062f 100644 --- a/home/modules/desktop/tools/ookvolume.nix +++ b/modules/home/workstation/tools/ookvolume.nix @@ -6,7 +6,7 @@ }: let inherit (lib) mkIf; inherit (builtins) elem; - inherit (osConfig.ooknet.host.hardware) features; + inherit (osConfig.ooknet.hardware) features; ookvolume = pkgs.writeShellApplication { name = "ookvolume"; runtimeInputs = with pkgs; [pamixer libnotify]; diff --git a/home/modules/desktop/communication/discord/default.nix b/modules/nixos/appearance/default.nix similarity index 56% rename from home/modules/desktop/communication/discord/default.nix rename to modules/nixos/appearance/default.nix index 6947bd8..86e0060 100644 --- a/home/modules/desktop/communication/discord/default.nix +++ b/modules/nixos/appearance/default.nix @@ -1,5 +1,5 @@ { imports = [ - ./vesktop.nix + ./options.nix ]; } diff --git a/nixos/options/appearance/default.nix b/modules/nixos/appearance/options.nix similarity index 89% rename from nixos/options/appearance/default.nix rename to modules/nixos/appearance/options.nix index ba198ff..b774998 100644 --- a/nixos/options/appearance/default.nix +++ b/modules/nixos/appearance/options.nix @@ -27,10 +27,6 @@ in { # imports = [./palettes]; options.ooknet.appearance = { - theme = mkOption { - type = nullOr (enum ["minimal" "phone"]); - default = null; - }; fonts = { monospace = mkFontOption; regular = mkFontOption; @@ -58,8 +54,8 @@ in { # Credit to github:misterio77/nix-colors colorscheme = { name = mkOption { - type = enum ["hozen" "gruvbox-material-medium"]; - default = "hozen"; + type = enum ["gruvbox-material-medium"]; + default = "gruvbox-material-medium"; }; variant = mkOption { type = enum ["dark" "light"]; diff --git a/nixos/options/appearance/palettes/gruvbox-material-medium-dark.nix b/modules/nixos/appearance/palettes/gruvbox-material-medium-dark.nix similarity index 100% rename from nixos/options/appearance/palettes/gruvbox-material-medium-dark.nix rename to modules/nixos/appearance/palettes/gruvbox-material-medium-dark.nix diff --git a/nixos/modules/host/admin.nix b/modules/nixos/base/admin.nix similarity index 61% rename from nixos/modules/host/admin.nix rename to modules/nixos/base/admin.nix index 365e232..1cced70 100644 --- a/nixos/modules/host/admin.nix +++ b/modules/nixos/base/admin.nix @@ -3,21 +3,23 @@ config, pkgs, inputs, - outputs, + inputs', + self', self, keys, ... }: let - cfg = config.ooknet.host.admin; - ifTheyExist = groups: builtins.filter (group: builtins.hasAttr group config.users.groups) groups; inherit (lib) mkIf; + inherit (config.ooknet.host) role admin; + + ifTheyExist = groups: builtins.filter (group: builtins.hasAttr group config.users.groups) groups; in { config = { - users.users.${cfg.name} = { + users.users.${admin.name} = { isNormalUser = true; - shell = pkgs.${cfg.shell}; + shell = pkgs.${admin.shell}; initialPassword = "password"; - openssh.authorizedKeys.keys = [keys.users."${cfg.name}"]; + openssh.authorizedKeys.keys = [keys.users."${admin.name}"]; extraGroups = [ "wheel" @@ -29,19 +31,18 @@ in { "media" "network" "libvirtd" - "deluge" "streamer" "torrenter" ]; }; - home-manager = mkIf cfg.homeManager { + home-manager = mkIf (role == "workstation" || admin.homeManager) { useGlobalPkgs = true; useUserPackages = true; backupFileExtension = "hm.old"; verbose = true; - extraSpecialArgs = {inherit inputs outputs self;}; - users.${cfg.name} = { - imports = ["${self}/home"]; + extraSpecialArgs = {inherit inputs inputs' self self';}; + users.${admin.name} = { + imports = ["${self}/modules/home/base"]; }; }; }; diff --git a/modules/nixos/base/boot.nix b/modules/nixos/base/boot.nix new file mode 100644 index 0000000..e60dad7 --- /dev/null +++ b/modules/nixos/base/boot.nix @@ -0,0 +1,31 @@ +{lib, ...}: let + inherit (lib) mkDefault; +in { + boot = { + loader = { + systemd-boot = { + enable = mkDefault true; + consoleMode = "max"; + editor = false; + configurationLimit = 5; + }; + efi.canTouchEfiVariables = mkDefault true; + }; + initrd = { + availableKernelModules = [ + "nvme" + "xhci_pci" + "ahci" + "usbhid" + "usb_storage" + "sd_mod" + ]; + kernelModules = [ + "nvme" + "xhci_pci" + "btrfs" + "sd_mod" + ]; + }; + }; +} diff --git a/modules/nixos/base/default.nix b/modules/nixos/base/default.nix new file mode 100644 index 0000000..9bcd8bd --- /dev/null +++ b/modules/nixos/base/default.nix @@ -0,0 +1,14 @@ +{ + imports = [ + ./nix.nix + ./boot.nix + ./admin.nix + ./locale.nix + ./options.nix + ./secrets.nix + ./openssh.nix + ./tailscale.nix + ./networking.nix + ./security + ]; +} diff --git a/modules/nixos/base/locale.nix b/modules/nixos/base/locale.nix new file mode 100644 index 0000000..b0111e2 --- /dev/null +++ b/modules/nixos/base/locale.nix @@ -0,0 +1,9 @@ +{ + time.timeZone = "Pacific/Auckland"; + location.provider = "geoclue2"; + services.geoclue2.enable = true; + i18n = { + defaultLocale = "en_US.UTF-8"; + supportedLocales = ["en_US.UTF-8/UTF-8"]; + }; +} diff --git a/modules/nixos/base/networking.nix b/modules/nixos/base/networking.nix new file mode 100644 index 0000000..9515f68 --- /dev/null +++ b/modules/nixos/base/networking.nix @@ -0,0 +1,45 @@ +{lib, ...}: let + inherit (lib) mkForce mkDefault; +in { + imports = [ + ./openssh.nix + ./tailscale.nix + ]; + + networking = { + enableIPv6 = true; + # disable global dhcp + useDHCP = mkForce false; + usePredictableInterfaceNames = mkDefault true; + nameservers = [ + #quad9 IPv6 + "2620:fe::fe" + "2620:fe::9" + + #quad9 IPv4 + "9.9.9.9" + "149.112.112.112" + ]; + networkmanager = { + enable = true; + dns = "systemd-resolved"; + wifi = { + macAddress = "random"; + scanRandMacAddress = true; + powersave = true; + }; + unmanaged = ["interface-name:tailscale*"]; + }; + }; + services = { + resolved = { + enable = true; + + domains = ["~."]; + fallbackDns = ["9.9.9.9"]; #quad9 + + #dnsovertls = "true"; + }; + }; + systemd.services.NetworkManager-wait-online.enable = false; +} diff --git a/modules/nixos/base/nix.nix b/modules/nixos/base/nix.nix new file mode 100644 index 0000000..154559c --- /dev/null +++ b/modules/nixos/base/nix.nix @@ -0,0 +1,69 @@ +{ + inputs, + pkgs, + lib, + config, + ... +}: let + inherit (builtins) attrValues; + inherit (lib) mkIf mapAttrsToList; + inherit (config.ooknet.host) admin; +in { + environment = { + # disable default nix packages + # these packages are installed by default [ perl rsync strace ] + defaultPackages = []; + systemPackages = attrValues { + inherit (pkgs) git deadnix statix; + inherit (inputs.agenix.packages.${pkgs.system}) default; + }; + }; + nix = { + # package = pkgs.lix; + registry = { + nixpkgs.flake = inputs.nixpkgs; + default.flake = inputs.nixpkgs; + }; + nixPath = mapAttrsToList (name: _: "${name}=${name}") config.nix.registry; + settings = { + trusted-users = ["@wheel" "root"]; + experimental-features = ["nix-command" "flakes"]; + accept-flake-config = true; + auto-optimise-store = true; + # cache + substituters = [ + "https://cache.nixos.org?priority=10" + "https://nix-community.cachix.org" + "https://neovim-flake.cachix.org" + ]; + trusted-public-keys = [ + "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" + "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" + "neovim-flake.cachix.org-1:iyQ6lHFhnB5UkVpxhQqLJbneWBTzM8LBYOFPLNH4qZw=" + ]; + # TODO: setup builders -- builders-use-substitutes = true; + }; + }; + nixpkgs = { + config.allowUnfree = true; + # why are we doing this + overlays = [ + # zellij status bar plugin + (_final: prev: { + zjstatus = inputs.zjstatus.packages.${prev.system}.default; + }) + ]; + }; + + # nix rebuild utililty + programs.nh = { + enable = true; + # sets an environment variable FLAKE that nh will refer to by default + flake = mkIf admin.homeManager "/home/${admin.name}/.config/ooknet"; + # garbage collect + clean = { + enable = true; + extraArgs = "--keep 5 --keep-since 14d"; + }; + }; +} diff --git a/modules/nixos/base/openssh.nix b/modules/nixos/base/openssh.nix new file mode 100644 index 0000000..72dee2c --- /dev/null +++ b/modules/nixos/base/openssh.nix @@ -0,0 +1,82 @@ +{ + services.openssh = { + enable = true; + startWhenNeeded = true; + ports = [22]; + settings = { + UseDns = true; + PubkeyAuthentication = "yes"; + PermitRootLogin = "no"; + PermitEmptyPasswords = "no"; + PasswordAuthentication = false; + + # disable support for .rhost files + IgnoreRhosts = "yes"; + + # by default openssh uses port 22 + + # restict key exchange, cipher, and MAC algorithms, as per + KexAlgorithms = [ + "sntrup761x25519-sha512@openssh.com" + "curve25519-sha256" + "curve25519-sha256@libssh.org" + "diffie-hellman-group18-sha512" + "diffie-hellman-group-exchange-sha256" + "diffie-hellman-group16-sha512" + ]; + Ciphers = [ + "chacha20-poly1305@openssh.com" + "aes256-gcm@openssh.com" + "aes256-ctr" + "aes192-ctr" + "aes128-gcm@openssh.com" + "aes128-ctr" + ]; + Macs = [ + "hmac-sha2-512-etm@openssh.com" + "hmac-sha2-256-etm@openssh.com" + "umac-128-etm@openssh.com" + ]; + /* + HostKeyAlgorithms = [ + "sk-ssh-ed25519-cert-v01@openssh.com" + "ssh-ed25519-cert-v01@openssh.com" + "rsa-sha2-512-cert-v01@openssh.com" + "sk-ssh-ed25519@openssh.com,ssh-ed25519" + "ssh-ed25519" + "rsa-sha2-512" + "rsa-sha2-256" + ]; + CASignatureAlgorithms = [ + "sk-ssh-ed25519@openssh.com" + "ssh-ed25519" + "rsa-sha2-512" + "rsa-sha2-256" + ]; + GSSAPIKexAlgorithms = [ + "gss-curve25519-sha256-" + "gss-group16-sha512" + ]; + HostbasedAcceptedAlgorithms = [ + "sk-ssh-ed25519-cert-v01@openssh.com" + "ssh-ed25519-cert-v01@openssh.com" + "rsa-sha2-512-cert-v01@openssh.com" + "rsa-sha2-256-cert-v01@openssh.com" + "sk-ssh-ed25519@openssh.com" + "ssh-ed25519,rsa-sha2-512" + "rsa-sha2-256" + ]; + PubkeyAcceptedAlgorithms = [ + "sk-ssh-ed25519-cert-v01@openssh.com" + "ssh-ed25519-cert-v01@openssh.com" + "rsa-sha2-512-cert-v01@openssh.com" + "rsa-sha2-256-cert-v01@openssh.com" + "sk-ssh-ed25519@openssh.com" + "ssh-ed25519" + "rsa-sha2-512" + "rsa-sha2-256" + ]; + */ + }; + }; +} diff --git a/modules/nixos/base/options.nix b/modules/nixos/base/options.nix new file mode 100644 index 0000000..d8442ce --- /dev/null +++ b/modules/nixos/base/options.nix @@ -0,0 +1,48 @@ +{lib, ...}: let + inherit (lib) mkOption; + inherit (lib.types) str enum bool; +in { + options.ooknet.host = { + name = mkOption { + type = str; + default = "ooks-generic"; + }; + type = mkOption { + type = enum ["desktop" "laptop"]; + }; + role = mkOption { + type = enum ["workstation" "server"]; + }; + exitNode = mkOption { + type = bool; + default = false; + }; + admin = { + name = mkOption { + type = str; + default = "ooks"; + }; + shell = mkOption { + type = enum ["bash" "zsh" "fish"]; + default = "fish"; + }; + gitName = mkOption { + type = str; + default = "ooks-io"; + }; + gitEmail = mkOption { + type = str; + default = "ooks@protonmail.com"; + }; + homeManager = mkOption { + type = bool; + default = false; + description = '' + Home-manager is enabled if ooknet.host.role == "workstation". + If host is not a workstation and you would like to enable home-manager + enable this option. + ''; + }; + }; + }; +} diff --git a/nixos/modules/base/secrets.nix b/modules/nixos/base/secrets.nix similarity index 93% rename from nixos/modules/base/secrets.nix rename to modules/nixos/base/secrets.nix index 314171d..9579dc2 100644 --- a/nixos/modules/base/secrets.nix +++ b/modules/nixos/base/secrets.nix @@ -8,7 +8,7 @@ inherit (config.ooknet) host; inherit (host) admin; - inherit (host.networking) tailscale; + inherit (config.services) tailscale; in { age.identityPaths = [ "/home/${admin.name}/.ssh/id_ed25519" diff --git a/modules/nixos/base/security/apparmor.nix b/modules/nixos/base/security/apparmor.nix new file mode 100644 index 0000000..58c02da --- /dev/null +++ b/modules/nixos/base/security/apparmor.nix @@ -0,0 +1,68 @@ +{ + pkgs, + config, + lib, + ... +}: let + inherit (builtins) attrValues; + inherit (lib) getExe; +in { + security = { + apparmor = { + enable = true; + + # packages to include with apparmors path + packages = [pkgs.apparmor-profiles]; + + # kill any process that does not have a apparmor profile enabled + killUnconfinedConfinables = true; + + # apparmor policies + # FIXME + policies = { + "default_deny" = { + enforce = false; + enable = false; + profile = '' + profile default_deny /** { } + ''; + }; + "nix" = { + enforce = false; + enable = false; + profile = '' + ${getExe config.nix.package} { + unconfined, + } + ''; + }; + "sudo" = { + enforce = false; + enable = false; + profile = '' + ${getExe pkgs.sudo} { + file /** rwlkUx, + } + ''; + }; + }; + }; + }; + + # enable apparmor mode for dbus + services.dbus.apparmor = "enabled"; + + # apparmor packages to add to path + environment.systemPackages = attrValues { + inherit + (pkgs) + apparmor-utils + apparmor-bin-utils + apparmor-kernel-patches + apparmor-parser + apparmor-profiles + apparmor-pam + libapparmor + ; + }; +} diff --git a/modules/nixos/base/security/auditing.nix b/modules/nixos/base/security/auditing.nix new file mode 100644 index 0000000..f1c8abb --- /dev/null +++ b/modules/nixos/base/security/auditing.nix @@ -0,0 +1,9 @@ +{pkgs, ...}: { + security = { + audit = { + enable = true; + rules = ["-a exit, always -F arch=b64 -s execve"]; + }; + }; + environment.systemPackages = [pkgs.lynis]; +} diff --git a/modules/nixos/base/security/default.nix b/modules/nixos/base/security/default.nix new file mode 100644 index 0000000..89e3605 --- /dev/null +++ b/modules/nixos/base/security/default.nix @@ -0,0 +1,10 @@ +{ + imports = [ + ./tcp.nix + ./sudo.nix + ./kernel.nix + ./firewall.nix + ./auditing.nix + ./apparmor.nix + ]; +} diff --git a/modules/nixos/base/security/firewall.nix b/modules/nixos/base/security/firewall.nix new file mode 100644 index 0000000..0781c7f --- /dev/null +++ b/modules/nixos/base/security/firewall.nix @@ -0,0 +1,8 @@ +{ + networking.firewall = { + enable = true; + + # dont respond to icmpv4 pings. + allowPing = false; + }; +} diff --git a/nixos/modules/base/security/kernel.nix b/modules/nixos/base/security/kernel.nix similarity index 97% rename from nixos/modules/base/security/kernel.nix rename to modules/nixos/base/security/kernel.nix index 4c834d9..61e8d8c 100644 --- a/nixos/modules/base/security/kernel.nix +++ b/modules/nixos/base/security/kernel.nix @@ -5,8 +5,12 @@ }: let inherit (lib) optionals mkForce concatLists; inherit (builtins) elem; - inherit (config.ooknet.host.hardware) features; + inherit (config.ooknet.hardware) features; in { + # see: + # + # github:notashelf/nyx + security = { # Protects the kernel from being tampered with at runtime. prevents the ability to hibernate. protectKernelImage = true; diff --git a/modules/nixos/base/security/sudo.nix b/modules/nixos/base/security/sudo.nix new file mode 100644 index 0000000..1570ed4 --- /dev/null +++ b/modules/nixos/base/security/sudo.nix @@ -0,0 +1,15 @@ +{ + security = { + sudo = { + # allow wheel user to execute sudo without a password + wheelNeedsPassword = false; + # only allow users in the wheel access to sudo + execWheelOnly = true; + extraConfig = '' + Defaults pwfeedback # password feedback + Defaults lecture = never # disable warning message + Defaults timestamp_timeout=10 # set sudo timeout to 10 minutes + ''; + }; + }; +} diff --git a/modules/nixos/base/security/tcp.nix b/modules/nixos/base/security/tcp.nix new file mode 100644 index 0000000..1808a55 --- /dev/null +++ b/modules/nixos/base/security/tcp.nix @@ -0,0 +1,76 @@ +{ + # this is a collection of tcp related sysctl commands that are floating around, + # unsure who the original author is + + # see: + # + # github:fort-nix/nix-bitcoin + # github:hlissner/dotfiles + # github:notashelf/nyx + boot = { + kernel.sysctl = { + # TCP hardening + # Prevent bogus ICMP errors from filling up logs. + "net.ipv4.icmp_ignore_bogus_error_responses" = 1; + # Reverse path filtering causes the kernel to do source validation of + # packets received from all interfaces. This can mitigate IP spoofing. + "net.ipv4.conf.default.rp_filter" = 1; + "net.ipv4.conf.all.rp_filter" = 1; + # Do not accept IP source route packets (we're not a router) + "net.ipv4.conf.all.accept_source_route" = 0; + "net.ipv6.conf.all.accept_source_route" = 0; + # Don't send ICMP redirects (again, we're on a router) + "net.ipv4.conf.all.send_redirects" = 0; + "net.ipv4.conf.default.send_redirects" = 0; + # Refuse ICMP redirects (MITM mitigations) + "net.ipv4.conf.all.accept_redirects" = 0; + "net.ipv4.conf.default.accept_redirects" = 0; + "net.ipv4.conf.all.secure_redirects" = 0; + "net.ipv4.conf.default.secure_redirects" = 0; + "net.ipv6.conf.all.accept_redirects" = 0; + "net.ipv6.conf.default.accept_redirects" = 0; + # Protects against SYN flood attacks + "net.ipv4.tcp_syncookies" = 1; + # Incomplete protection again TIME-WAIT assassination + "net.ipv4.tcp_rfc1337" = 1; + # And other stuff + "net.ipv4.conf.all.log_martians" = true; + "net.ipv4.conf.default.log_martians" = true; + "net.ipv4.icmp_echo_ignore_broadcasts" = true; + "net.ipv6.conf.default.accept_ra" = 0; + "net.ipv6.conf.all.accept_ra" = 0; + "net.ipv4.tcp_timestamps" = 0; + + # TCP optimization + # TCP Fast Open is a TCP extension that reduces network latency by packing + # data in the sender’s initial TCP SYN. Setting 3 = enable TCP Fast Open for + # both incoming and outgoing connections: + "net.ipv4.tcp_fastopen" = 3; + # Bufferbloat mitigations + slight improvement in throughput & latency + "net.ipv4.tcp_congestion_control" = "bbr"; + "net.core.default_qdisc" = "cake"; + + # Other stuff that I am too lazy to document + "net.core.optmem_max" = 65536; + "net.core.rmem_default" = 1048576; + "net.core.rmem_max" = 16777216; + "net.core.somaxconn" = 8192; + "net.core.wmem_default" = 1048576; + "net.core.wmem_max" = 16777216; + "net.ipv4.ip_local_port_range" = "16384 65535"; + "net.ipv4.tcp_max_syn_backlog" = 8192; + "net.ipv4.tcp_max_tw_buckets" = 2000000; + "net.ipv4.tcp_mtu_probing" = 1; + "net.ipv4.tcp_rmem" = "4096 1048576 2097152"; + "net.ipv4.tcp_slow_start_after_idle" = 0; + "net.ipv4.tcp_tw_reuse" = 1; + "net.ipv4.tcp_wmem" = "4096 65536 16777216"; + "net.ipv4.udp_rmem_min" = 8192; + "net.ipv4.udp_wmem_min" = 8192; + "net.netfilter.nf_conntrack_generic_timeout" = 60; + "net.netfilter.nf_conntrack_max" = 1048576; + "net.netfilter.nf_conntrack_tcp_timeout_established" = 600; + "net.netfilter.nf_conntrack_tcp_timeout_time_wait" = 1; + }; + }; +} diff --git a/modules/nixos/base/tailscale.nix b/modules/nixos/base/tailscale.nix new file mode 100644 index 0000000..8cb2ee9 --- /dev/null +++ b/modules/nixos/base/tailscale.nix @@ -0,0 +1,50 @@ +{ + config, + lib, + ... +}: let + inherit (lib.lists) concatLists optionals; + inherit (config.ooknet) host; + inherit (config.ooknet.host) admin; + inherit (config.services) tailscale; +in { + services.tailscale = { + enable = true; + + # "client"/"both" - reverce path filtering will be set to loose instead of strict + # "server"/"both" - ip forwarding will be enabled + useRoutingFeatures = "both"; + + # user that can fetch tailscale tls certs + permitCertUid = "root"; + + # authentication key for auto connect service + authKeyFile = config.age.secrets.tailscale-auth.path; + + # flags to pass to the auto-connect service + extraUpFlags = concatLists [ + ["--ssh"] + (optionals (admin.name != null) ["--opterator ${admin.name}"]) + (optionals host.exitNode ["--advertise-exit-node"]) + ]; + + # opens relevant tailscale ports over UDP + openFirewall = true; + }; + + # trust tailscale default interface + networking.firewall.trustedInterfaces = ["${tailscale.interfaceName}"]; + + # credit github:notashelf/nyx + systemd = { + # ignore tailscale interface for wait-online service + network.wait-online.ignoredInterfaces = ["${tailscale.interfaceName}"]; + + # only start tailscale daemon after network-online and systemd-resolved services + # are up + services.tailscaled = { + after = ["network-online.target" "systemd-resolved.service"]; + wants = ["network-online.target" "systemd-resolved.service"]; + }; + }; +} diff --git a/modules/nixos/console/default.nix b/modules/nixos/console/default.nix new file mode 100644 index 0000000..66e60f6 --- /dev/null +++ b/modules/nixos/console/default.nix @@ -0,0 +1,19 @@ +{ + lib, + config, + self, + ... +}: let + inherit (config.ooknet.host) admin; + inherit (lib) mkIf; +in { + imports = [ + ./shell + ./profile + ./options.nix + ]; + + home-manager.users.${admin.name} = mkIf admin.homeManager { + imports = ["${self}/modules/home/console"]; + }; +} diff --git a/modules/nixos/console/options.nix b/modules/nixos/console/options.nix new file mode 100644 index 0000000..63b39f8 --- /dev/null +++ b/modules/nixos/console/options.nix @@ -0,0 +1,39 @@ +{lib, ...}: let + inherit (lib) mkOption mkEnableOption; + inherit (lib.types) nullOr enum; +in { + options.ooknet.console = { + profile = mkOption { + type = nullOr (enum ["standard" "minimal"]); + default = "standard"; + }; + editor = mkOption { + type = enum ["nvim"]; + default = "nvim"; + }; + multiplexer = mkOption { + type = enum ["zellij"]; + default = "zellij"; + }; + shell = { + bash.enable = mkEnableOption ""; + zsh.enable = mkEnableOption ""; + fish.enable = mkEnableOption ""; + }; + tools = { + bat.enable = mkEnableOption ""; + btop.enable = mkEnableOption ""; + direnv.enable = mkEnableOption ""; + eza.enable = mkEnableOption ""; + ffmpeg.enable = mkEnableOption ""; + fzf.enable = mkEnableOption ""; + nixIndex.enable = mkEnableOption ""; + starship.enable = mkEnableOption ""; + utils.enable = mkEnableOption ""; + git.enable = mkEnableOption ""; + ssh.enable = mkEnableOption ""; + zellij.enable = mkEnableOption ""; + nvim.enable = mkEnableOption ""; + }; + }; +} diff --git a/modules/nixos/console/profile/default.nix b/modules/nixos/console/profile/default.nix new file mode 100644 index 0000000..c487579 --- /dev/null +++ b/modules/nixos/console/profile/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./standard.nix + ]; +} diff --git a/home/profiles/suites/console-tools.nix b/modules/nixos/console/profile/standard.nix similarity index 62% rename from home/profiles/suites/console-tools.nix rename to modules/nixos/console/profile/standard.nix index a39ebf3..73643d2 100644 --- a/home/profiles/suites/console-tools.nix +++ b/modules/nixos/console/profile/standard.nix @@ -1,30 +1,28 @@ { - osConfig, lib, + config, ... }: let inherit (lib) mkIf; - inherit (builtins) elem; - inherit (osConfig.ooknet.host) profiles; + inherit (config.ooknet.console) profile; in { - config = mkIf (elem "console-tools" profiles) { - ooknet = { + config = mkIf (profile == "standard") { + ooknet.console = { + editor = "nvim"; + multiplexer = "zellij"; tools = { - btop.enable = true; - eza.enable = true; bat.enable = true; + btop.enable = true; direnv.enable = true; + eza.enable = true; + ffmpeg.enable = true; fzf.enable = true; git.enable = true; - ssh.enable = true; nixIndex.enable = true; starship.enable = true; utils.enable = true; - ffmpeg.enable = true; - sourcegraph.enable = true; + ssh.enable = true; }; - editor.nvim.enable = true; - shell.fish.enable = true; }; }; } diff --git a/home/modules/desktop/file-manager/default.nix b/modules/nixos/console/shell/default.nix similarity index 60% rename from home/modules/desktop/file-manager/default.nix rename to modules/nixos/console/shell/default.nix index 1aa9301..56cb916 100644 --- a/home/modules/desktop/file-manager/default.nix +++ b/modules/nixos/console/shell/default.nix @@ -1,5 +1,5 @@ { imports = [ - ./nemo.nix + ./fish.nix ]; } diff --git a/nixos/modules/base/shell/fish/default.nix b/modules/nixos/console/shell/fish.nix similarity index 100% rename from nixos/modules/base/shell/fish/default.nix rename to modules/nixos/console/shell/fish.nix diff --git a/modules/nixos/hardware/common.nix b/modules/nixos/hardware/common.nix new file mode 100644 index 0000000..e74875b --- /dev/null +++ b/modules/nixos/hardware/common.nix @@ -0,0 +1,6 @@ +{ + hardware = { + enableRedistributableFirmware = true; + enableAllFirmware = true; + }; +} diff --git a/nixos/modules/host/hardware/cpu/amd.nix b/modules/nixos/hardware/cpu/amd.nix similarity index 90% rename from nixos/modules/host/hardware/cpu/amd.nix rename to modules/nixos/hardware/cpu/amd.nix index ca7ef03..4601f3e 100644 --- a/nixos/modules/host/hardware/cpu/amd.nix +++ b/modules/nixos/hardware/cpu/amd.nix @@ -5,14 +5,13 @@ ... }: let inherit (lib) mkMerge mkIf versionAtLeast versionOlder; - inherit (builtins) elem; - inherit (config.ooknet.host.hardware) cpu; + inherit (config.ooknet.hardware) cpu; cfg = cpu.amd; kernelVersion = config.boot.kernelPackages.kernel.version; kernelVersionAtLeast = versionAtLeast kernelVersion; kernelVersionOlder = versionOlder kernelVersion; in { - config = mkIf (elem cpu.type ["amd"]) { + config = mkIf (cpu.type == "amd") { environment.systemPackages = [pkgs.amdctl]; hardware.cpu.amd.updateMicrocode = true; boot = mkMerge [ diff --git a/nixos/modules/host/hardware/cpu/default.nix b/modules/nixos/hardware/cpu/default.nix similarity index 100% rename from nixos/modules/host/hardware/cpu/default.nix rename to modules/nixos/hardware/cpu/default.nix diff --git a/nixos/modules/host/hardware/cpu/intel.nix b/modules/nixos/hardware/cpu/intel.nix similarity index 62% rename from nixos/modules/host/hardware/cpu/intel.nix rename to modules/nixos/hardware/cpu/intel.nix index 042ed66..ec68f76 100644 --- a/nixos/modules/host/hardware/cpu/intel.nix +++ b/modules/nixos/hardware/cpu/intel.nix @@ -5,12 +5,9 @@ ... }: let inherit (lib) mkIf; - inherit (builtins) elem; - inherit (config.ooknet.host.hardware) cpu; + inherit (config.ooknet.hardware) cpu; in { - # TODO: put kvm/gvt behind virtualization module flag - - config = mkIf (elem cpu.type ["intel"]) { + config = mkIf (cpu.type == "intel") { boot = { kernelModules = ["kvm-intel"]; kernelParams = ["i915.fastboot=1" "enable_gvt=1"]; diff --git a/nixos/modules/host/hardware/default.nix b/modules/nixos/hardware/default.nix similarity index 80% rename from nixos/modules/host/hardware/default.nix rename to modules/nixos/hardware/default.nix index 710bbc1..5d0603a 100644 --- a/nixos/modules/host/hardware/default.nix +++ b/modules/nixos/hardware/default.nix @@ -4,5 +4,6 @@ ./gpu ./features ./common.nix + ./options.nix ]; } diff --git a/modules/nixos/hardware/features/audio.nix b/modules/nixos/hardware/features/audio.nix new file mode 100644 index 0000000..9fb0b20 --- /dev/null +++ b/modules/nixos/hardware/features/audio.nix @@ -0,0 +1,70 @@ +{ + lib, + config, + ... +}: let + inherit (builtins) elem; + inherit (lib) mkIf; + inherit (config.ooknet.hardware) features; +in { + # generic audio configuration + config = mkIf (elem "audio" features) { + hardware.pulseaudio.enable = false; + services = { + pipewire = { + enable = true; + audio.enable = true; + alsa = { + enable = true; + support32Bit = true; + }; + pulse.enable = true; + jack.enable = true; + wireplumber.enable = true; + }; + + # realtime audio + udev.extraRules = '' + KERNEL=="cpu_dma_latency", GROUP="audio" + KERNEL=="rtc0", GROUP="audio" + KERNEL=="hpet", GROUP="audio" + ''; + }; + + security = { + rtkit.enable = true; + pam.loginLimits = [ + { + domain = "@audio"; + item = "nofile"; + type = "soft"; + value = "99999"; + } + { + domain = "@audio"; + item = "nofile"; + type = "hard"; + value = "99999"; + } + { + domain = "@audio"; + item = "rtprio"; + type = "-"; + value = "99"; + } + { + domain = "@audio"; + item = "memlock"; + type = "-"; + value = "unlimited"; + } + { + domain = "@audio"; + type = "-"; + item = "nice"; + value = -11; + } + ]; + }; + }; +} diff --git a/nixos/modules/host/hardware/features/backlight.nix b/modules/nixos/hardware/features/backlight.nix similarity index 77% rename from nixos/modules/host/hardware/features/backlight.nix rename to modules/nixos/hardware/features/backlight.nix index ca9ee3b..710cc60 100644 --- a/nixos/modules/host/hardware/features/backlight.nix +++ b/modules/nixos/hardware/features/backlight.nix @@ -3,7 +3,7 @@ config, ... }: let - inherit (config.ooknet.host.hardware) features; + inherit (config.ooknet.hardware) features; inherit (lib) mkIf; inherit (builtins) elem; in { diff --git a/modules/nixos/hardware/features/battery.nix b/modules/nixos/hardware/features/battery.nix new file mode 100644 index 0000000..9e4540d --- /dev/null +++ b/modules/nixos/hardware/features/battery.nix @@ -0,0 +1,44 @@ +{ + lib, + config, + pkgs, + ... +}: let + inherit (lib) mkIf; + inherit (builtins) elem attrValues; + inherit (config.ooknet.hardware) features; +in { + config = mkIf (elem "battery" features) { + services = { + # cpu power usage optimizer + auto-cpufreq = {enable = true;}; + + # application interface for power management + upower = { + enable = true; + percentageLow = 25; + percentageCritical = 5; + percentageAction = 3; + criticalPowerAction = "Hibernate"; + }; + + # daemon for monitoring and controlling temperature + thermald = {enable = true;}; + + # put this here because if we are enabling the battery modules + # we are most likely using a laptop + # lidSwitch defines the action to perform when the laptop lid is + # closed + logind = {lidSwitch = "suspend";}; + }; + boot = { + kernelModules = ["acpi_call"]; + extraModulePackages = attrValues { + inherit (config.boot.kernelPackages) acpi_call cpupower; + }; + }; + environment.systemPackages = attrValues { + inherit (pkgs) acpi powertop; + }; + }; +} diff --git a/nixos/modules/host/hardware/features/bluetooth.nix b/modules/nixos/hardware/features/bluetooth.nix similarity index 59% rename from nixos/modules/host/hardware/features/bluetooth.nix rename to modules/nixos/hardware/features/bluetooth.nix index 6e25d20..9ce0c5c 100644 --- a/nixos/modules/host/hardware/features/bluetooth.nix +++ b/modules/nixos/hardware/features/bluetooth.nix @@ -5,9 +5,9 @@ self, ... }: let - inherit (config.ooknet.host.hardware) features; inherit (lib) mkIf; - inherit (builtins) elem; + inherit (builtins) elem attrValues; + inherit (config.ooknet.hardware) features; in { config = mkIf (elem "bluetooth" features) { hardware.bluetooth = { @@ -15,10 +15,10 @@ in { package = pkgs.bluez5-experimental; }; - environment.systemPackages = with pkgs; [ - self.packages.${pkgs.system}.live-buds-cli - bluetuith - ]; + environment.systemPackages = attrValues { + #inherit (self.packages.${pkgs.system}) live-buds-cli; + inherit (pkgs) bluetuith; + }; # https://github.com/NixOS/nixpkgs/issues/114222 systemd.user.services.telephony_client.enable = false; diff --git a/nixos/modules/host/hardware/features/default.nix b/modules/nixos/hardware/features/default.nix similarity index 70% rename from nixos/modules/host/hardware/features/default.nix rename to modules/nixos/hardware/features/default.nix index c88a6c6..8704874 100644 --- a/nixos/modules/host/hardware/features/default.nix +++ b/modules/nixos/hardware/features/default.nix @@ -1,10 +1,11 @@ { imports = [ - ./bluetooth.nix - ./backlight.nix - ./battery.nix - ./ssd.nix - ./audio.nix ./video.nix + ./printing.nix + ./audio.nix + ./battery.nix + ./backlight.nix + ./ssd.nix + # ./bluetooth.nix ]; } diff --git a/modules/nixos/hardware/features/printing.nix b/modules/nixos/hardware/features/printing.nix new file mode 100644 index 0000000..da53baa --- /dev/null +++ b/modules/nixos/hardware/features/printing.nix @@ -0,0 +1,24 @@ +{ + lib, + config, + pkgs, + ... +}: let + inherit (lib) mkIf; + inherit (builtins) elem; + inherit (config.ooknet.hardware) features; +in { + config = mkIf (elem "printing" features) { + services = { + printing = { + enable = true; + drivers = [pkgs.hplip]; + }; + avahi = { + enable = true; + openFirewall = true; + nssmdns4 = true; + }; + }; + }; +} diff --git a/nixos/modules/host/hardware/features/ssd.nix b/modules/nixos/hardware/features/ssd.nix similarity index 88% rename from nixos/modules/host/hardware/features/ssd.nix rename to modules/nixos/hardware/features/ssd.nix index a84534b..b07b181 100644 --- a/nixos/modules/host/hardware/features/ssd.nix +++ b/modules/nixos/hardware/features/ssd.nix @@ -3,9 +3,9 @@ config, ... }: let - inherit (config.ooknet.host.hardware) features; inherit (lib) mkIf; inherit (builtins) elem; + inherit (config.ooknet.hardware) features; in { config = mkIf (elem "ssd" features) { services.fstrim = { diff --git a/modules/nixos/hardware/features/video.nix b/modules/nixos/hardware/features/video.nix new file mode 100644 index 0000000..5740b99 --- /dev/null +++ b/modules/nixos/hardware/features/video.nix @@ -0,0 +1,19 @@ +{ + lib, + config, + pkgs, + ... +}: let + inherit (lib) mkIf; + inherit (builtins) elem; + inherit (config.ooknet.hardware) features; +in { + config = mkIf (elem "video" features) { + hardware = { + graphics = { + enable = true; + enable32Bit = true; + }; + }; + }; +} diff --git a/nixos/modules/host/hardware/gpu/amd.nix b/modules/nixos/hardware/gpu/amd.nix similarity index 54% rename from nixos/modules/host/hardware/gpu/amd.nix rename to modules/nixos/hardware/gpu/amd.nix index 83db7b0..4c39252 100644 --- a/nixos/modules/host/hardware/gpu/amd.nix +++ b/modules/nixos/hardware/gpu/amd.nix @@ -4,20 +4,22 @@ pkgs, ... }: let - inherit (config.ooknet.host.hardware) gpu; + inherit (config.ooknet.hardware) gpu; inherit (lib) mkIf mkDefault; - inherit (builtins) elem; + inherit (builtins) attrValues; in { - config = mkIf (elem gpu.type ["amd"]) { + config = mkIf (gpu.type == "amd") { hardware.graphics = { - extraPackages = with pkgs; [ - vulkan-tools - vulkan-loader - vulkan-extension-layer - vulkan-validation-layers - # amdvlk - mesa - ]; + extraPackages = attrValues { + inherit + (pkgs) + vulkan-tools + vulkan-loader + vulkan-extension-layer + vulkan-validation-layers + mesa + ; + }; extraPackages32 = [pkgs.driversi686Linux.amdvlk]; }; boot = { diff --git a/nixos/modules/host/hardware/gpu/default.nix b/modules/nixos/hardware/gpu/default.nix similarity index 100% rename from nixos/modules/host/hardware/gpu/default.nix rename to modules/nixos/hardware/gpu/default.nix diff --git a/modules/nixos/hardware/gpu/intel.nix b/modules/nixos/hardware/gpu/intel.nix new file mode 100644 index 0000000..e979122 --- /dev/null +++ b/modules/nixos/hardware/gpu/intel.nix @@ -0,0 +1,39 @@ +{ + config, + lib, + pkgs, + ... +}: let + inherit (config.ooknet.hardware) gpu; + inherit (lib) mkIf; + inherit (builtins) attrValues; +in { + config = mkIf (gpu.type == "intel") { + services.xserver.videoDrivers = ["modesetting"]; + hardware.graphics = { + extraPackages = attrValues { + inherit + (pkgs) + vaapiIntel + vaapiVdpau + libvdpau-va-gl + intel-compute-runtime + intel-media-driver + ; + }; + extraPackages32 = attrValues { + inherit + (pkgs.pkgsi686Linux) + vaapiIntel + vaapiVdpau + libvdpau-va-gl + intel-media-driver + ; + }; + }; + boot.initrd.kernelModules = ["i915"]; + environment.variables = mkIf config.hardware.graphics.enable { + VDPAU_DRIVER = "va_gl"; + }; + }; +} diff --git a/nixos/modules/host/hardware/gpu/nvidia.nix b/modules/nixos/hardware/gpu/nvidia.nix similarity index 73% rename from nixos/modules/host/hardware/gpu/nvidia.nix rename to modules/nixos/hardware/gpu/nvidia.nix index ff9fbd4..cb0dd87 100644 --- a/nixos/modules/host/hardware/gpu/nvidia.nix +++ b/modules/nixos/hardware/gpu/nvidia.nix @@ -4,15 +4,14 @@ pkgs, ... }: let - inherit (config.ooknet.host.hardware) gpu; + inherit (config.ooknet.hardware) gpu; inherit (lib) mkIf mkDefault; - inherit (builtins) elem; + inherit (builtins) attrValues; # production = config.boot.kernelPackages.nvidiaPackages.production; inherit (config.boot.kernelPackages.nvidiaPackages) beta; in { - # TODO: make option to choose nvidia package config = mkIf (gpu.type == "nvidia") { - # need this for wayland + # need this even if using wayland services.xserver.videoDrivers = ["nvidia"]; hardware = { nvidia = { @@ -28,27 +27,28 @@ in { }; }; graphics = { - extraPackages = with pkgs; [nvidia-vaapi-driver]; - extraPackages32 = with pkgs.pkgsi686Linux; [nvidia-vaapi-driver]; + extraPackages = [pkgs.nvidia-vaapi-driver]; + extraPackages32 = [pkgs.pkgsi686Linux.nvidia-vaapi-driver]; }; }; - environment.systemPackages = with pkgs; [ - libva - libva-utils - - vulkan-loader - vulkan-validation-layers - vulkan-tools - vulkan-extension-layer - - mesa - - nvtopPackages.nvidia - ]; + environment.systemPackages = attrValues { + inherit + (pkgs) + libva + libva-utils + vulkan-loader + vulkan-validation-layers + vulkan-tools + vulkan-extension-layer + mesa + ; + inherit (pkgs.nvtopPackages) nvidia; + }; environment.sessionVariables = { LIBVA_DRIVER_NAME = "nvidia"; NVD_BACKEND = "direct"; }; + # https://github.com/ventureoo/nvidia-tweaks services.udev.extraRules = '' ACTION=="bind", SUBSYSTEM=="pci", DRIVERS=="nvidia", ATTR{vendor}=="0x10de", ATTR{class}=="0x03[0-9]*", TEST=="power/control", ATTR{power/control}="auto" diff --git a/modules/nixos/hardware/options.nix b/modules/nixos/hardware/options.nix new file mode 100644 index 0000000..57aaece --- /dev/null +++ b/modules/nixos/hardware/options.nix @@ -0,0 +1,101 @@ +{ + lib, + config, + ... +}: let + inherit (lib) mkOption mkEnableOption; + inherit (lib.types) nullOr enum bool submodule listOf int str; + inherit (config.ooknet) hardware; +in { + options.ooknet.hardware = { + gpu = { + type = mkOption { + type = nullOr (enum ["intel" "amd" "nvidia"]); + default = null; + }; + }; + + cpu = { + type = mkOption { + type = nullOr (enum ["intel" "amd"]); + default = null; + }; + amd.pstate.enable = mkEnableOption ""; + }; + + features = mkOption { + type = listOf (enum [ + "audio" + "video" + "bluetooth" + "backlight" + "battery" + "ssd" + "printing" + "fingerprint" + ]); + default = ["ssd"]; + }; + + # monitor module inspired by misterio77 + # includes the addition of transform option + monitors = mkOption { + type = listOf (submodule { + options = { + name = mkOption { + type = str; + example = "DP-1"; + }; + primary = mkOption { + type = bool; + default = false; + }; + width = mkOption { + type = int; + example = 1920; + }; + height = mkOption { + type = int; + example = 1080; + }; + refreshRate = mkOption { + type = int; + default = 60; + }; + x = mkOption { + type = int; + default = 0; + }; + y = mkOption { + type = int; + default = 0; + }; + transform = mkOption { + type = int; + default = 0; + }; + enabled = mkOption { + type = bool; + default = true; + }; + workspace = mkOption { + type = nullOr str; + default = null; + }; + }; + }); + default = []; + }; + }; + + config = { + assertions = [ + { + assertion = + ((lib.length hardware.monitors) != 0) + -> ((lib.length (lib.filter (m: m.primary) hardware.monitors)) == 1); + message = "At least 1 primary monitor is required"; + } + ]; + }; +} diff --git a/home/default.nix b/modules/nixos/server/default.nix similarity index 66% rename from home/default.nix rename to modules/nixos/server/default.nix index a143f26..8807271 100644 --- a/home/default.nix +++ b/modules/nixos/server/default.nix @@ -1,8 +1,7 @@ { imports = [ - ./modules - ./profiles - ./roles ./options + ./profiles + ./services ]; } diff --git a/modules/nixos/server/options/default.nix b/modules/nixos/server/options/default.nix new file mode 100644 index 0000000..217e7ff --- /dev/null +++ b/modules/nixos/server/options/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./server.nix + ]; +} diff --git a/modules/nixos/server/options/server.nix b/modules/nixos/server/options/server.nix new file mode 100644 index 0000000..8246da3 --- /dev/null +++ b/modules/nixos/server/options/server.nix @@ -0,0 +1,22 @@ +{lib, ...}: let + inherit (lib) mkOption; + inherit (lib.types) nullOr listOf enum bool; +in { + options.ooknet.server = { + exitNode = mkOption { + type = bool; + default = false; + description = "Whether the server will act as a tailscale exit node or not"; + }; + profile = mkOption { + type = nullOr (enum ["linode"]); + default = null; + description = "The server profile the host will use as a base"; + }; + services = mkOption { + type = listOf (enum []); + default = []; + description = "List of services the server will host"; + }; + }; +} diff --git a/modules/nixos/server/profiles/default.nix b/modules/nixos/server/profiles/default.nix new file mode 100644 index 0000000..cd85c40 --- /dev/null +++ b/modules/nixos/server/profiles/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./linode.nix + ]; +} diff --git a/modules/nixos/server/profiles/linode.nix b/modules/nixos/server/profiles/linode.nix new file mode 100644 index 0000000..2e086c9 --- /dev/null +++ b/modules/nixos/server/profiles/linode.nix @@ -0,0 +1,59 @@ +{ + config, + lib, + pkgs, + ... +}: let + inherit (builtins) attrValues; + inherit (lib) mkForce mkIf; + inherit (config.ooknet.server) profile; +in { + config = mkIf (profile == "linode") { + networking = { + tempAddresses = "disabled"; + usePredictableInterfaceNames = mkForce false; + interfaces.eth0 = { + tempAddress = "disabled"; + useDHCP = true; + }; + }; + + boot = { + kernelModules = []; + # LISH console support + kernelParams = ["console=ttys0,19200n8"]; + extraModulePackages = []; + initrd = { + availableKernelModules = ["virtio_pci" "virtio_scsi" "ahci" "sd_mod"]; + kernelModules = []; + }; + loader = { + grub = { + enable = true; + device = "/dev/sda"; + forceInstall = true; + copyKernels = true; + fsIdentifier = "provided"; + extraConfig = '' + serial --speed=19200 --unit=0 --word=8 --parity=no --stop=1; + terminal_input serial; + terminal_output serial + ''; + }; + # disable base settings + efi.canTouchEfiVariables = mkForce false; + systemd-boot.enable = mkForce false; + }; + }; + + environment.systemPackages = attrValues { + inherit + (pkgs) + inetutils + mtr + sysstat + linode-cli + ; + }; + }; +} diff --git a/modules/nixos/server/services/default.nix b/modules/nixos/server/services/default.nix new file mode 100644 index 0000000..2c63c08 --- /dev/null +++ b/modules/nixos/server/services/default.nix @@ -0,0 +1,2 @@ +{ +} diff --git a/modules/nixos/workstation/default.nix b/modules/nixos/workstation/default.nix new file mode 100644 index 0000000..8e3032b --- /dev/null +++ b/modules/nixos/workstation/default.nix @@ -0,0 +1,22 @@ +{ + config, + self, + lib, + ... +}: let + inherit (lib) mkIf; + inherit (config.ooknet.host) admin; +in { + imports = [ + ./options.nix + ./themes + ./services + ./programs + ./gaming + ./environment + ]; + + home-manager.users.${admin.name} = mkIf admin.homeManager { + imports = ["${self}/modules/home/workstation"]; + }; +} diff --git a/modules/nixos/workstation/environment/default.nix b/modules/nixos/workstation/environment/default.nix new file mode 100644 index 0000000..527c6f3 --- /dev/null +++ b/modules/nixos/workstation/environment/default.nix @@ -0,0 +1,3 @@ +{ + imports = [./hyprland]; +} diff --git a/modules/nixos/workstation/environment/hyprland/default.nix b/modules/nixos/workstation/environment/hyprland/default.nix new file mode 100644 index 0000000..f31f8f1 --- /dev/null +++ b/modules/nixos/workstation/environment/hyprland/default.nix @@ -0,0 +1,67 @@ +{ + inputs', + config, + lib, + pkgs, + ... +}: let + inherit (lib) concatStringsSep getExe mkIf; + inherit (config.ooknet.workstation) environment; + inherit (inputs'.hyprland.packages) xdg-desktop-portal-hyprland hyprland; +in { + config = mkIf (environment == "hyprland") { + programs.hyprland = { + enable = true; + package = hyprland; + portalPackage = xdg-desktop-portal-hyprland; + }; + + xdg.portal = { + enable = true; + extraPortals = [ + pkgs.xdg-desktop-portal-gtk + xdg-desktop-portal-hyprland + ]; + config.common = { + default = ["gtk"]; + "org.freedesktop.impl.portal.Screencast" = "hyprland"; + "org.freedesktop.impl.portal.Screenshot" = "hyprland"; + }; + }; + + # required for wayland screen lockers to work + security.pam.services.hyprlock.text = "auth include login"; + + services.greetd = { + enable = true; + vt = 2; + settings = { + default_session = { + command = concatStringsSep " " [ + (getExe pkgs.greetd.tuigreet) + "--time" + "--remember" + "--cmd" + (getExe hyprland) + ]; + }; + }; + }; + + systemd.services.greetd.serviceConfig = { + Type = "idle"; + StandardInput = "tty"; + StandardOutput = "tty"; + StandardError = "journal"; # Without this errors will spam on screen + # Without these bootlogs will spam on screen + TTYReset = true; + TTYVHangup = true; + TTYVTDisallocate = true; + }; + + nix.settings = { + substituters = ["https://hyprland.cachix.org"]; + trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="]; + }; + }; +} diff --git a/nixos/modules/gaming/default.nix b/modules/nixos/workstation/gaming/default.nix similarity index 59% rename from nixos/modules/gaming/default.nix rename to modules/nixos/workstation/gaming/default.nix index 89bbbab..22d0e4d 100644 --- a/nixos/modules/gaming/default.nix +++ b/modules/nixos/workstation/gaming/default.nix @@ -2,7 +2,5 @@ imports = [ ./steam.nix ./gamemode.nix - ./gamescope.nix - ./openPorts.nix ]; } diff --git a/modules/nixos/workstation/gaming/gamemode.nix b/modules/nixos/workstation/gaming/gamemode.nix new file mode 100644 index 0000000..c024086 --- /dev/null +++ b/modules/nixos/workstation/gaming/gamemode.nix @@ -0,0 +1,50 @@ +{ + lib, + config, + pkgs, + inputs', + ... +}: let + inherit (lib) optionalString elem getExe getExe' mkIf; + inherit (config.ooknet.workstation) profiles environment; + + hyprctl = "${getExe' inputs'.hyprland.packages.hyprland "hyprctl"} -i 0"; + notify-send = getExe pkgs.libnotify; + powerprofilectl = getExe pkgs.power-profiles-daemon; + + optimizeScriptStart = pkgs.writeShellScript "gamemode-start" '' + ${optionalString (environment == "hyprland") '' + ${hyprctl} -i 0 --batch "\ + keyword misc:vfr false; \ + keyword render:direct_scanout true; \ + keyword general:allow_tearing true" \ + ''} + ${powerprofilectl} set performance + ${notify-send} 'Gamemode Started' + ''; + + optimizeScriptStop = pkgs.writeShellScript "gamemode-end" '' + ${optionalString (environment == "hyprland") '' + ${hyprctl} -i 0 reload + ''} + ${powerprofilectl} set balanced + ${notify-send} 'Gamemode Stopped' + ''; +in { + config = mkIf (elem "gaming" profiles) { + environment.systemPackages = [pkgs.power-profiles-daemon]; + programs.gamemode = { + enable = true; + settings = { + general = { + renice = 15; + softrealtime = "auto"; + }; + custom = { + start = optimizeScriptStart.outPath; + end = optimizeScriptStop.outPath; + }; + }; + }; + }; +} diff --git a/modules/nixos/workstation/gaming/steam.nix b/modules/nixos/workstation/gaming/steam.nix new file mode 100644 index 0000000..ba82cb9 --- /dev/null +++ b/modules/nixos/workstation/gaming/steam.nix @@ -0,0 +1,17 @@ +{ + lib, + config, + pkgs, + ... +}: let + inherit (lib) mkIf elem; + inherit (config.ooknet.workstation) profiles; +in { + config = mkIf (elem "gaming" profiles) { + programs.steam = { + enable = true; + package = pkgs.steam-small; + extraCompatPackages = [pkgs.proton-ge-bin]; + }; + }; +} diff --git a/modules/nixos/workstation/options.nix b/modules/nixos/workstation/options.nix new file mode 100644 index 0000000..aa01f16 --- /dev/null +++ b/modules/nixos/workstation/options.nix @@ -0,0 +1,33 @@ +{lib, ...}: let + inherit (lib) mkEnableOption mkOption; + inherit (lib.types) nullOr enum listOf; +in { + options.ooknet.workstation = { + theme = mkOption { + type = nullOr (enum ["minimal"]); + default = null; + }; + profiles = mkOption { + type = listOf (enum ["gaming" "communication" "productivity" "creative" "media"]); + default = []; + }; + environment = mkOption { + type = nullOr (enum ["hyprland"]); + default = "hyprland"; + }; + default = { + browser = mkOption { + type = nullOr (enum ["firefox"]); + default = "firefox"; + }; + terminal = mkOption { + type = enum ["foot"]; + default = "foot"; + }; + }; + programs = { + firefox.enable = mkEnableOption ""; + foot.enable = mkEnableOption ""; + }; + }; +} diff --git a/modules/nixos/workstation/programs/1password.nix b/modules/nixos/workstation/programs/1password.nix new file mode 100644 index 0000000..78c2556 --- /dev/null +++ b/modules/nixos/workstation/programs/1password.nix @@ -0,0 +1,11 @@ +{config, ...}: let + inherit (config.ooknet.host) admin; +in { + programs = { + _1password.enable = true; + _1password-gui = { + enable = true; + polkitPolicyOwners = ["${admin.name}"]; + }; + }; +} diff --git a/modules/nixos/workstation/programs/dconf.nix b/modules/nixos/workstation/programs/dconf.nix new file mode 100644 index 0000000..cbdfbde --- /dev/null +++ b/modules/nixos/workstation/programs/dconf.nix @@ -0,0 +1,3 @@ +{ + programs.dconf = {enable = true;}; +} diff --git a/nixos/modules/programs/default.nix b/modules/nixos/workstation/programs/default.nix similarity index 100% rename from nixos/modules/programs/default.nix rename to modules/nixos/workstation/programs/default.nix index 7c4d05e..3caa312 100644 --- a/nixos/modules/programs/default.nix +++ b/modules/nixos/workstation/programs/default.nix @@ -1,7 +1,7 @@ { imports = [ + ./1password.nix ./dconf.nix ./kdeconnect.nix - ./1password.nix ]; } diff --git a/modules/nixos/workstation/programs/kdeconnect.nix b/modules/nixos/workstation/programs/kdeconnect.nix new file mode 100644 index 0000000..6977364 --- /dev/null +++ b/modules/nixos/workstation/programs/kdeconnect.nix @@ -0,0 +1,3 @@ +{ + programs.kdeconnect = {enable = true;}; +} diff --git a/modules/nixos/workstation/services/dbus.nix b/modules/nixos/workstation/services/dbus.nix new file mode 100644 index 0000000..c5c254d --- /dev/null +++ b/modules/nixos/workstation/services/dbus.nix @@ -0,0 +1,11 @@ +{pkgs, ...}: let + inherit (builtins) attrValues; +in { + services.dbus = { + enable = true; + packages = attrValues { + inherit (pkgs) dconf gcr udisks2; + }; + implementation = "broker"; + }; +} diff --git a/modules/nixos/workstation/services/default.nix b/modules/nixos/workstation/services/default.nix new file mode 100644 index 0000000..1ac979e --- /dev/null +++ b/modules/nixos/workstation/services/default.nix @@ -0,0 +1,6 @@ +{ + imports = [ + ./dbus.nix + ./gnome-services.nix + ]; +} diff --git a/modules/nixos/workstation/services/gnome-services.nix b/modules/nixos/workstation/services/gnome-services.nix new file mode 100644 index 0000000..c8022df --- /dev/null +++ b/modules/nixos/workstation/services/gnome-services.nix @@ -0,0 +1,10 @@ +{ + services = { + # gnome services that I depend on + gvfs.enable = true; + gnome = { + glib-networking.enable = true; + gnome-keyring.enable = true; + }; + }; +} diff --git a/nixos/modules/theme/default.nix b/modules/nixos/workstation/themes/default.nix similarity index 100% rename from nixos/modules/theme/default.nix rename to modules/nixos/workstation/themes/default.nix diff --git a/nixos/modules/theme/generatedWallpaper.nix b/modules/nixos/workstation/themes/generated-wallpaper.nix similarity index 98% rename from nixos/modules/theme/generatedWallpaper.nix rename to modules/nixos/workstation/themes/generated-wallpaper.nix index e52c818..7009f07 100644 --- a/nixos/modules/theme/generatedWallpaper.nix +++ b/modules/nixos/workstation/themes/generated-wallpaper.nix @@ -3,7 +3,7 @@ pkgs, config, }: let - inherit (config.ooknet.host.hardware) monitors; + inherit (config.ooknet.hardware) monitors; inherit (config.ooknet.appearance) colorscheme; largest = f: xs: builtins.head (builtins.sort (a: b: a > b) (map f xs)); largestWidth = largest (x: x.width) monitors; diff --git a/nixos/modules/theme/minimal.nix b/modules/nixos/workstation/themes/minimal.nix similarity index 84% rename from nixos/modules/theme/minimal.nix rename to modules/nixos/workstation/themes/minimal.nix index c0ffa14..5fd8dcc 100644 --- a/nixos/modules/theme/minimal.nix +++ b/modules/nixos/workstation/themes/minimal.nix @@ -5,9 +5,8 @@ ... }: let inherit (lib) mkIf; - inherit (config.ooknet.appearance) theme; - - generatedWallpaper = import ./generatedWallpaper.nix {inherit config pkgs;} {}; + inherit (config.ooknet.workstation) theme; + generatedWallpaper = import ./generated-wallpaper.nix {inherit config pkgs;} {}; in { config = mkIf (theme == "minimal") { ooknet.appearance = { diff --git a/nixos/default.nix b/nixos/default.nix deleted file mode 100644 index 4f1ffa0..0000000 --- a/nixos/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ - imports = [ - ./modules - ./options - ./profiles - ./roles - ]; -} diff --git a/nixos/modules/base/boot/default.nix b/nixos/modules/base/boot/default.nix deleted file mode 100644 index 898c005..0000000 --- a/nixos/modules/base/boot/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ - imports = [ - ./loader - ./plymouth.nix - ]; -} diff --git a/nixos/modules/base/boot/loader/default.nix b/nixos/modules/base/boot/loader/default.nix deleted file mode 100644 index be179d0..0000000 --- a/nixos/modules/base/boot/loader/default.nix +++ /dev/null @@ -1,12 +0,0 @@ -{lib, ...}: let - inherit (lib) types mkOption; -in { - imports = [ - ./systemd.nix - ]; - - options.ooknet.boot.loader = mkOption { - type = types.enum ["systemd" "grub"]; - default = "systemd"; - }; -} diff --git a/nixos/modules/base/boot/loader/systemd.nix b/nixos/modules/base/boot/loader/systemd.nix deleted file mode 100644 index 37bfa3d..0000000 --- a/nixos/modules/base/boot/loader/systemd.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ - lib, - config, - ... -}: let - inherit (lib) mkIf; - bootloader = config.ooknet.boot.loader; -in { - config = mkIf (bootloader == "systemd") { - boot.loader = { - systemd-boot = { - enable = true; - consoleMode = "max"; - }; - efi.canTouchEfiVariables = true; - }; - }; -} diff --git a/nixos/modules/base/boot/plymouth.nix b/nixos/modules/base/boot/plymouth.nix deleted file mode 100644 index ab3b404..0000000 --- a/nixos/modules/base/boot/plymouth.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: let - inherit (lib) mkIf mkEnableOption; - cfg = config.sys.boot.plymouth; -in { - options.sys.boot.plymouth.enable = mkEnableOption ""; - - config = mkIf cfg.enable { - boot.plymouth = { - enable = true; - themePackages = [(pkgs.catppuccin-plymouth.override {variant = "mocha";})]; - theme = "catppuccin-mocha"; - }; - }; -} diff --git a/nixos/modules/base/default.nix b/nixos/modules/base/default.nix deleted file mode 100644 index 16ee9d4..0000000 --- a/nixos/modules/base/default.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ - imports = [ - ./boot - ./displayManager - ./networking - ./nix - ./security - ./shell - ./locale.nix - ./secrets.nix - ]; -} diff --git a/nixos/modules/base/displayManager/default.nix b/nixos/modules/base/displayManager/default.nix deleted file mode 100644 index 339daf1..0000000 --- a/nixos/modules/base/displayManager/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ - imports = [ - ./tuigreet.nix - ]; -} diff --git a/nixos/modules/base/displayManager/tuigreet.nix b/nixos/modules/base/displayManager/tuigreet.nix deleted file mode 100644 index 7f125f5..0000000 --- a/nixos/modules/base/displayManager/tuigreet.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ - pkgs, - lib, - config, - ... -}: let - inherit (lib) mkIf; - tuigreet = "${pkgs.greetd.tuigreet}/bin/tuigreet"; - inherit (config.ooknet) host; -in { - config = mkIf (host.type != "phone") { - services.greetd = { - enable = true; - settings = { - default_session = { - command = "${tuigreet} --time --remember --cmd Hyprland"; # TODO: dont hardcode this - user = "greeter"; - }; - }; - }; - - systemd.services.greetd.serviceConfig = { - Type = "idle"; - StandardInput = "tty"; - StandardOutput = "tty"; - StandardError = "journal"; # Without this errors will spam on screen - # Without these bootlogs will spam on screen - TTYReset = true; - TTYVHangup = true; - TTYVTDisallocate = true; - }; - }; -} diff --git a/nixos/modules/base/locale.nix b/nixos/modules/base/locale.nix deleted file mode 100644 index 67b86cd..0000000 --- a/nixos/modules/base/locale.nix +++ /dev/null @@ -1,13 +0,0 @@ -{lib, ...}: let - inherit (lib) mkDefault; -in { - i18n = { - defaultLocale = mkDefault "en_US.UTF-8"; - supportedLocales = mkDefault [ - "en_US.UTF-8/UTF-8" - ]; - }; - time.timeZone = mkDefault "Australia/Sydney"; - location.provider = "geoclue2"; - services.geoclue2.enable = true; -} diff --git a/nixos/modules/base/networking/default.nix b/nixos/modules/base/networking/default.nix deleted file mode 100644 index b01532c..0000000 --- a/nixos/modules/base/networking/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ - lib, - config, - ... -}: let - inherit (lib) mkIf; - inherit (config.ooknet) host; -in { - imports = [ - ./firewall.nix - ./tools.nix - ./ssh.nix - ./tcp.nix - ./resolved.nix - ./tailscale.nix - ]; - - config = mkIf (host.type != "phone") { - networking.networkmanager = { - enable = true; - dns = "systemd-resolved"; - }; - - systemd = { - network.wait-online.enable = false; - services.NetworkManager-wait-online.enable = false; - }; - }; -} diff --git a/nixos/modules/base/networking/firewall.nix b/nixos/modules/base/networking/firewall.nix deleted file mode 100644 index 560ec2f..0000000 --- a/nixos/modules/base/networking/firewall.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ - lib, - config, - ... -}: let - inherit (lib) mkIf; - inherit (config.ooknet) host; -in { - config = mkIf (host.type != "phone") { - networking.firewall = { - enable = true; - allowedTCPPorts = [ - 443 # https - 57621 # spotify - ]; - }; - }; -} diff --git a/nixos/modules/base/networking/resolved.nix b/nixos/modules/base/networking/resolved.nix deleted file mode 100644 index 024b580..0000000 --- a/nixos/modules/base/networking/resolved.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ - lib, - config, - ... -}: let - inherit (lib) mkIf; - inherit (config.ooknet) host; -in { - config = mkIf (host.type != "phone") { - services.resolved = { - enable = true; - fallbackDns = ["9.9.9.9"]; - # allow-downgrade is vulnerable to downgrade attacks - extraConfig = '' - DNSOverTLS=yes # or allow-downgrade - ''; - }; - }; -} diff --git a/nixos/modules/base/networking/ssh.nix b/nixos/modules/base/networking/ssh.nix deleted file mode 100644 index 88f8c38..0000000 --- a/nixos/modules/base/networking/ssh.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ - lib, - config, - ... -}: let - inherit (lib) mkIf mkDefault; - inherit (config.ooknet) host; -in { - config = mkIf (host.type != "phone") { - services.openssh = { - enable = true; - settings = { - UseDns = false; - PasswordAuthentication = false; - AuthenticationMethods = "publickey"; - UsePAM = false; - PermitRootLogin = "no"; - StreamLocalBindUnlink = "yes"; - KbdInteractiveAuthentication = mkDefault false; - }; - }; - - programs = { - ssh = { - knownHosts = { - github = { - hostNames = ["github.com"]; - publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl"; - }; - gitlab = { - hostNames = ["gitlab.com"]; - publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAfuCHKVTjquxvt6CM6tdG4SLp1Btn/nOeHHE5UOzRdf"; - }; - }; - }; - gnupg.agent = { - enable = true; - enableSSHSupport = true; - }; - }; - }; -} diff --git a/nixos/modules/base/networking/tailscale.nix b/nixos/modules/base/networking/tailscale.nix deleted file mode 100644 index 63c256d..0000000 --- a/nixos/modules/base/networking/tailscale.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: let - cfg = config.ooknet.host.networking.tailscale; - inherit (config.services) tailscale; - inherit (lib) mkIf mkDefault mkBefore; -in { - config = mkIf cfg.enable { - services.tailscale = { - enable = true; - useRoutingFeatures = mkDefault "both"; - permitCertUid = "root"; - extraUpFlags = cfg.flags.final; - authKeyFile = "${config.age.secrets.tailscale-auth.path}"; - }; - networking.firewall = { - allowedUDPPorts = [tailscale.port]; - trustedInterfaces = ["${tailscale.interfaceName}"]; - checkReversePath = "loose"; - }; - users = { - groups.tailscaled = {}; - users.tailscaled = { - group = "tailscaled"; - isSystemUser = true; - }; - }; - systemd.network.wait-online.ignoredInterfaces = ["${tailscale.interfaceName}"]; - - environment.systemPackages = [pkgs.tailscale]; - - # disable tailscale logging - systemd.services.tailscaled.serviceConfig.Environment = mkBefore ["TS_NO_LOGS_NO_SUPPORT"]; - }; -} diff --git a/nixos/modules/base/networking/tcp.nix b/nixos/modules/base/networking/tcp.nix deleted file mode 100644 index ecebefc..0000000 --- a/nixos/modules/base/networking/tcp.nix +++ /dev/null @@ -1,79 +0,0 @@ -{ - lib, - config, - ... -}: let - inherit (lib) mkIf; - inherit (config.ooknet) host; -in { - # credit github:notashelf/nyx module - config = mkIf (host.type != "phone") { - boot = { - kernelModules = ["tls" "tcp_bbr"]; - kernel.sysctl = { - # TCP hardening - # Prevent bogus ICMP errors from filling up logs. - "net.ipv4.icmp_ignore_bogus_error_responses" = 1; - # Reverse path filtering causes the kernel to do source validation of - # packets received from all interfaces. This can mitigate IP spoofing. - "net.ipv4.conf.default.rp_filter" = 1; - "net.ipv4.conf.all.rp_filter" = 1; - # Do not accept IP source route packets (we're not a router) - "net.ipv4.conf.all.accept_source_route" = 0; - "net.ipv6.conf.all.accept_source_route" = 0; - # Don't send ICMP redirects (again, we're on a router) - "net.ipv4.conf.all.send_redirects" = 0; - "net.ipv4.conf.default.send_redirects" = 0; - # Refuse ICMP redirects (MITM mitigations) - "net.ipv4.conf.all.accept_redirects" = 0; - "net.ipv4.conf.default.accept_redirects" = 0; - "net.ipv4.conf.all.secure_redirects" = 0; - "net.ipv4.conf.default.secure_redirects" = 0; - "net.ipv6.conf.all.accept_redirects" = 0; - "net.ipv6.conf.default.accept_redirects" = 0; - # Protects against SYN flood attacks - "net.ipv4.tcp_syncookies" = 1; - # Incomplete protection again TIME-WAIT assassination - "net.ipv4.tcp_rfc1337" = 1; - # And other stuff - "net.ipv4.conf.all.log_martians" = true; - "net.ipv4.conf.default.log_martians" = true; - "net.ipv4.icmp_echo_ignore_broadcasts" = true; - "net.ipv6.conf.default.accept_ra" = 0; - "net.ipv6.conf.all.accept_ra" = 0; - "net.ipv4.tcp_timestamps" = 0; - - # TCP optimization - # TCP Fast Open is a TCP extension that reduces network latency by packing - # data in the sender’s initial TCP SYN. Setting 3 = enable TCP Fast Open for - # both incoming and outgoing connections: - "net.ipv4.tcp_fastopen" = 3; - # Bufferbloat mitigations + slight improvement in throughput & latency - "net.ipv4.tcp_congestion_control" = "bbr"; - "net.core.default_qdisc" = "cake"; - - # Other stuff that I am too lazy to document - "net.core.optmem_max" = 65536; - "net.core.rmem_default" = 1048576; - "net.core.rmem_max" = 16777216; - "net.core.somaxconn" = 8192; - "net.core.wmem_default" = 1048576; - "net.core.wmem_max" = 16777216; - "net.ipv4.ip_local_port_range" = "16384 65535"; - "net.ipv4.tcp_max_syn_backlog" = 8192; - "net.ipv4.tcp_max_tw_buckets" = 2000000; - "net.ipv4.tcp_mtu_probing" = 1; - "net.ipv4.tcp_rmem" = "4096 1048576 2097152"; - "net.ipv4.tcp_slow_start_after_idle" = 0; - "net.ipv4.tcp_tw_reuse" = 1; - "net.ipv4.tcp_wmem" = "4096 65536 16777216"; - "net.ipv4.udp_rmem_min" = 8192; - "net.ipv4.udp_wmem_min" = 8192; - "net.netfilter.nf_conntrack_generic_timeout" = 60; - "net.netfilter.nf_conntrack_max" = 1048576; - "net.netfilter.nf_conntrack_tcp_timeout_established" = 600; - "net.netfilter.nf_conntrack_tcp_timeout_time_wait" = 1; - }; - }; - }; -} diff --git a/nixos/modules/base/networking/tools.nix b/nixos/modules/base/networking/tools.nix deleted file mode 100644 index a468b17..0000000 --- a/nixos/modules/base/networking/tools.nix +++ /dev/null @@ -1,12 +0,0 @@ -{pkgs, ...}: { - environment.systemPackages = with pkgs; [ - traceroute - mtr - tcpdump - ]; - - programs = { - wireshark.enable = true; - bandwhich.enable = true; - }; -} diff --git a/nixos/modules/base/nix/default.nix b/nixos/modules/base/nix/default.nix deleted file mode 100644 index 85c727b..0000000 --- a/nixos/modules/base/nix/default.nix +++ /dev/null @@ -1,56 +0,0 @@ -{ - lib, - config, - pkgs, - inputs, - ... -}: let - inherit (lib) mkIf mapAttrs mapAttrsToList; - inherit (config.ooknet) host; -in { - imports = [ - ./nh.nix - ./nixpkgs.nix - ./subs.nix - ]; - - config = mkIf (host.type != "phone") { - environment = { - systemPackages = with pkgs; [ - git - deadnix - statix - inputs.agenix.packages.${system}.default - ]; - defaultPackages = []; - etc = { - "nix/flake-channels/nixpkgs".source = inputs.nixpkgs; - "nix/flake-channels/home-manager".source = inputs.nixpkgs; - }; - }; - nix = { - registry = mapAttrs (_: v: {flake = v;}) inputs; - nixPath = mapAttrsToList (key: value: "${key}=${value.to.path}") config.nix.registry; - optimise = { - automatic = true; - dates = ["18:00"]; - }; - gc = { - automatic = true; - dates = "Sun *-*-* 17:00"; - options = "--delete-older-than 30d"; - }; - settings = { - flake-registry = "/etc/nix/registry.json"; - allowed-users = ["root" "@wheel"]; - trusted-users = ["root" "@wheel"]; - experimental-features = ["nix-command" "flakes"]; - builders-use-substitutes = true; - }; - }; - system.switch = { - enable = false; - enableNg = true; - }; - }; -} diff --git a/nixos/modules/base/nix/nh.nix b/nixos/modules/base/nix/nh.nix deleted file mode 100644 index 6e35476..0000000 --- a/nixos/modules/base/nix/nh.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ - pkgs, - lib, - config, - ... -}: let - inherit (lib) mkIf; - inherit (config.ooknet) host; - inherit (host) admin; -in { - config = mkIf (host.type != "phone") { - environment.variables.FLAKE = mkIf admin.homeManager "/home/${admin.name}/.config/ooknet/"; - - programs.nh = { - enable = true; - package = pkgs.nh; - }; - }; -} diff --git a/nixos/modules/base/nix/nixpkgs.nix b/nixos/modules/base/nix/nixpkgs.nix deleted file mode 100644 index b9c3806..0000000 --- a/nixos/modules/base/nix/nixpkgs.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - lib, - config, - inputs, - ... -}: let - inherit (lib) mkIf; - inherit (config.ooknet) host; -in { - config = mkIf (host.type != "phone") { - nixpkgs = { - config = { - allowUnfree = true; - permittedInsecurePackages = [ - "openssl-1.1.1u" - "electron-25.9.0" - ]; - }; - overlays = [ - (_final: prev: { - zjstatus = inputs.zjstatus.packages.${prev.system}.default; - }) - ]; - }; - }; -} diff --git a/nixos/modules/base/nix/subs.nix b/nixos/modules/base/nix/subs.nix deleted file mode 100644 index fbfccdc..0000000 --- a/nixos/modules/base/nix/subs.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ - lib, - config, - ... -}: let - inherit (lib) mkIf; - inherit (config.ooknet) host; -in { - config = mkIf (host.type != "phone") { - nix.settings = { - substituters = [ - "https://cache.nixos.org?priority=10" - "https://helix.cachix.org" - "https://hyprland.cachix.org" - "https://nix-community.cachix.org" - "https://nixpkgs-wayland.cachix.org" - "https://neovim-flake.cachix.org" - ]; - - trusted-public-keys = [ - "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" - "helix.cachix.org-1:ejp9KQpR1FBI2onstMQ34yogDm4OgU2ru6lIwPvuCVs=" - "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" - "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" - "nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA=" - "neovim-flake.cachix.org-1:iyQ6lHFhnB5UkVpxhQqLJbneWBTzM8LBYOFPLNH4qZw=" - ]; - }; - }; -} diff --git a/nixos/modules/base/security/audit.nix b/nixos/modules/base/security/audit.nix deleted file mode 100644 index 366a1c6..0000000 --- a/nixos/modules/base/security/audit.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ - security = { - audit = { - enable = true; - }; - auditd.enable = true; - }; -} diff --git a/nixos/modules/base/security/default.nix b/nixos/modules/base/security/default.nix deleted file mode 100644 index 4d239f6..0000000 --- a/nixos/modules/base/security/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ - imports = [ - ./audit.nix - ./kernel.nix - ./pam.nix - ./polkit.nix - ./sudo.nix - ]; -} diff --git a/nixos/modules/base/security/pam.nix b/nixos/modules/base/security/pam.nix deleted file mode 100644 index 9741989..0000000 --- a/nixos/modules/base/security/pam.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ - security = { - pam = { - loginLimits = [ - { - domain = "@wheel"; - item = "nofile"; - type = "soft"; - value = "524288"; - } - { - domain = "@wheel"; - item = "nofile"; - type = "hard"; - value = "1048576"; - } - ]; - services = { - hyprlock = {}; - }; - }; - }; -} diff --git a/nixos/modules/base/security/polkit.nix b/nixos/modules/base/security/polkit.nix deleted file mode 100644 index 1bbacd3..0000000 --- a/nixos/modules/base/security/polkit.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ - lib, - config, - ... -}: let - inherit (lib) mkDefault mkIf; -in { - security.polkit = { - enable = true; - debug = mkDefault true; - extraConfig = mkIf config.security.polkit.debug '' - /* Log authorization checks. */ - polkit.addRule(function(action, subject) { - polkit.log("user " + subject.user + " is attempting action " + action.id + " from PID " + subject.pid); - }); - ''; - }; -} diff --git a/nixos/modules/base/security/sudo.nix b/nixos/modules/base/security/sudo.nix deleted file mode 100644 index f808934..0000000 --- a/nixos/modules/base/security/sudo.nix +++ /dev/null @@ -1,60 +0,0 @@ -{lib, ...}: let - inherit (lib) mkDefault mkForce; -in { - # nyx module - security = { - sudo-rs.enable = mkForce false; # we don't want the rust sudo fork - sudo = { - enable = true; - wheelNeedsPassword = mkDefault false; # only use false here if the extraRules below are enabled - execWheelOnly = mkForce true; # only allow wheel to execute sudo - extraConfig = - /* - shell - */ - '' - Defaults lecture = never # disable sudo lecture - Defaults pwfeedback # password feedback - Defaults env_keep += "EDITOR PATH DISPLAY" # variables to be passes to root - Defaults timestamp_timeout = 300 # asks for sudo password ever 300s - ''; - extraRules = [ - { - # allow wheel group to run nixos-rebuild without password - groups = ["wheel"]; - commands = let - currentSystem = "/run/current-system/"; - storePath = "/nix/store/"; - in [ - { - command = "${storePath}/*/bin/switch-to-configuration"; - options = ["SETENV" "NOPASSWD"]; - } - { - command = "${currentSystem}/sw/bin/nix-store"; - options = ["SETENV" "NOPASSWD"]; - } - { - command = "${currentSystem}/sw/bin/nix-env"; - options = ["SETENV" "NOPASSWD"]; - } - { - command = "${currentSystem}/sw/bin/nixos-rebuild"; - options = ["NOPASSWD"]; - } - { - # let wheel group collect garbage without password - command = "${currentSystem}/sw/bin/nix-collect-garbage"; - options = ["SETENV" "NOPASSWD"]; - } - { - # let wheel group interact with systemd without password - command = "${currentSystem}/sw/bin/systemctl"; - options = ["NOPASSWD"]; - } - ]; - } - ]; - }; - }; -} diff --git a/nixos/modules/base/shell/bash/default.nix b/nixos/modules/base/shell/bash/default.nix deleted file mode 100644 index 51c1b91..0000000 --- a/nixos/modules/base/shell/bash/default.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ - lib, - config, - ... -}: let - inherit (lib) mkIf; - adminShell = config.ooknet.host.admin.shell; -in { - config = mkIf (adminShell == "bash") { - programs.bash = { - enable = true; - }; - environment.pathsToLink = ["/share/bash-completion"]; - }; -} diff --git a/nixos/modules/base/shell/zsh/default.nix b/nixos/modules/base/shell/zsh/default.nix deleted file mode 100644 index 8e4ed9c..0000000 --- a/nixos/modules/base/shell/zsh/default.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ - lib, - config, - ... -}: let - inherit (lib) mkIf; - adminShell = config.ooknet.host.admin.shell; -in { - config = mkIf (adminShell == "zsh") { - # enable nixpkgs module if zsh is the main users login shell - # configure with home-manager module - programs.zsh = { - enable = true; - - # disable completion option as we configure with home-manager module - enableCompletion = false; - }; - environment.pathsToLink = ["/share/zsh"]; - }; -} diff --git a/nixos/modules/default.nix b/nixos/modules/default.nix deleted file mode 100644 index 9bbf800..0000000 --- a/nixos/modules/default.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ - imports = [ - ./base - ./gaming - ./host - ./programs - ./services - ./theme - ]; -} diff --git a/nixos/modules/gaming/gamemode.nix b/nixos/modules/gaming/gamemode.nix deleted file mode 100644 index 0017813..0000000 --- a/nixos/modules/gaming/gamemode.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: let - inherit (lib) mkIf; - cfg = config.ooknet.gaming.gamemode; -in { - config = mkIf cfg.enable { - programs.gamemode = { - enable = true; - settings = { - general = { - renice = 15; - softrealtime = "auto"; - }; - custom = { - start = "${pkgs.libnotify}/bin/notify-send 'GameMode started'"; - end = "${pkgs.libnotify}/bin/notify-send 'GameMode ended'"; - }; - }; - }; - }; -} diff --git a/nixos/modules/gaming/gamescope.nix b/nixos/modules/gaming/gamescope.nix deleted file mode 100644 index 3c92d17..0000000 --- a/nixos/modules/gaming/gamescope.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: let - inherit (lib) mkIf; - cfg = config.ooknet.gaming.gamescope; -in { - config = mkIf cfg.enable { - hardware.graphics.extraPackages = [pkgs.gamescope]; - programs.gamescope = { - enable = true; - capSysNice = true; - }; - }; -} diff --git a/nixos/modules/gaming/openPorts.nix b/nixos/modules/gaming/openPorts.nix deleted file mode 100644 index bc6a6be..0000000 --- a/nixos/modules/gaming/openPorts.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ - lib, - config, - ... -}: let - inherit (lib) mkIf; - cfg = config.ooknet.gaming.openPorts; -in { - config = mkIf cfg.enable { - networking.firewall = { - allowedTCPPorts = [3074]; - allowedUDPPorts = [ - 88 - 500 - 3074 - 2075 - 3544 - 4500 - ]; - }; - }; -} diff --git a/nixos/modules/gaming/steam.nix b/nixos/modules/gaming/steam.nix deleted file mode 100644 index 629437b..0000000 --- a/nixos/modules/gaming/steam.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: let - inherit (lib) mkIf; - cfg = config.ooknet.gaming.steam; - steamFix = pkgs.steam.override { - extraPkgs = pkgs: - with pkgs; [ - xorg.libXcursor - xorg.libXi - xorg.libXinerama - xorg.libXScrnSaver - libpng - libpulseaudio - libvorbis - stdenv.cc.cc.lib - libkrb5 - keyutils - mangohud - winetricks - protontricks - gtk3 - gtk3-x11 - ]; - }; -in { - config = mkIf cfg.enable { - programs.steam = { - enable = true; - package = steamFix; - extraCompatPackages = [pkgs.proton-ge-bin.steamcompattool]; - }; - }; -} diff --git a/nixos/modules/host/default.nix b/nixos/modules/host/default.nix deleted file mode 100644 index 08e3027..0000000 --- a/nixos/modules/host/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ - imports = [ - ./admin.nix - ./name.nix - ./hardware - ]; -} diff --git a/nixos/modules/host/hardware/common.nix b/nixos/modules/host/hardware/common.nix deleted file mode 100644 index 33500f6..0000000 --- a/nixos/modules/host/hardware/common.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ - lib, - config, - ... -}: let - inherit (lib) mkIf; - inherit (config.ooknet) host; -in { - config = mkIf (host.type != "phone") { - hardware = { - enableRedistributableFirmware = true; - enableAllFirmware = true; - }; - }; -} diff --git a/nixos/modules/host/hardware/features/audio.nix b/nixos/modules/host/hardware/features/audio.nix deleted file mode 100644 index 606c965..0000000 --- a/nixos/modules/host/hardware/features/audio.nix +++ /dev/null @@ -1,119 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: let - inherit (lib) mkIf; - inherit (lib.generators) toLua; - inherit (lib.lists) elem optionals; - inherit (config.ooknet) host; - inherit (host.hardware) features; - hasBT = elem "bluetooth" features; -in { - config = mkIf (elem "audio" features) { - hardware.pulseaudio.enable = !config.services.pipewire.enable; - security.rtkit.enable = config.services.pipewire.enable; - services.pipewire = let - quantum = 64; - rate = 48000; - qr = "${toString quantum}/${toString rate}"; - in { - enable = true; - - alsa.enable = true; - alsa.support32Bit = true; - pulse.enable = true; - jack.enable = true; - - # Low latency module provided by notashelf/nyx - extraConfig.pipewire."99-lowlatency" = { - context = { - properties.default.clock.min-quantum = quantum; - modules = [ - { - name = "libpipewire-module-rtkit"; - flags = ["ifexists" "nofail"]; - args = { - nice.level = -15; - rt = { - prio = 88; - time.soft = 200000; - time.hard = 200000; - }; - }; - } - { - name = "libpipewire-module-protocol-pulse"; - args = { - server.address = ["unix:native"]; - pulse.min = { - req = qr; - quantum = qr; - frag = qr; - }; - }; - } - ]; - - stream.properties = { - node.latency = qr; - resample.quality = 1; - }; - }; - }; - - wireplumber = { - enable = true; - extraConfig = mkIf (host.type == "laptop") { - "10-disable-camera" = { - "wireplumber.profiles" = { - main."monitor.libcamera" = "disabled"; - }; - }; - }; - configPackages = let - matches = toLua { - multiline = false; - indent = false; - } [[["node.name" "matches" "alsa_output.*"]]]; - - apply_properties = toLua {} { - "audio.format" = "S32LE"; - "audio.rate" = rate * 2; - "api.alsa.period-size" = 2; - }; - in - [ - (pkgs.writeTextDir "share/lowlatency.lua.d/99-alsa-lowlatency.lua" '' - alsa_monitor.rules = { - { - matches = ${matches}; - apply_properties = ${apply_properties}; - } - } - '') - ] - ++ optionals hasBT [ - (pkgs.writeTextDir "share/bluetooth.lua.d/51-bluez-config.lua" - /* - lua - */ - '' - bluez_monitor.properties = { - ["bluez5.enable-sbc-xq"] = true, - ["bluez5.enable-msbc"] = true, - ["bluez5.enable-hw-volume"] = true, - ["bluez5.headset-roles"] = "[ hsp_hs hsp_ag hfp_hf hfp_ag ]" - } - '') - ]; - }; - }; - - systemd.user.services = { - pipewire.wantedBy = ["default.target"]; - pipewire-pulse.wantedBy = ["default.target"]; - }; - }; -} diff --git a/nixos/modules/host/hardware/features/battery.nix b/nixos/modules/host/hardware/features/battery.nix deleted file mode 100644 index 2cefe2f..0000000 --- a/nixos/modules/host/hardware/features/battery.nix +++ /dev/null @@ -1,65 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: let - inherit (config.ooknet.host.hardware) features; - cfg = config.ooknet.host.hardware.battery; - inherit (lib) mkIf mkDefault; - inherit (builtins) elem; - MHz = x: x * 1000; -in { - config = mkIf (elem "battery" features) { - boot = { - kernelModules = ["acpi_call"]; - extraModulePackages = with config.boot.kernelPackages; [ - acpi_call - cpupower - ]; - }; - - services = { - auto-cpufreq = { - enable = true; - settings = { - battery = { - governor = "powersave"; - scaling_min_freq = mkDefault (MHz cfg.powersave.minFreq); - scaling_max_freq = mkDefault (MHz cfg.powersave.maxFreq); - turbo = "never"; - }; - charger = { - governor = "performance"; - scaling_min_freq = mkDefault (MHz cfg.performance.minFreq); - scaling_max_freq = mkDefault (MHz cfg.performance.maxFreq); - turbo = "auto"; - }; - }; - }; - - upower = { - enable = true; - percentageLow = 25; - percentageCritical = 5; - percentageAction = 3; - criticalPowerAction = "Hibernate"; - }; - - undervolt = { - enable = true; - tempBat = 65; - }; - - thermald.enable = true; - - logind = { - lidSwitch = "suspend"; - }; - }; - environment.systemPackages = with pkgs; [ - acpi - powertop - ]; - }; -} diff --git a/nixos/modules/host/hardware/features/video.nix b/nixos/modules/host/hardware/features/video.nix deleted file mode 100644 index 6407f1b..0000000 --- a/nixos/modules/host/hardware/features/video.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ - lib, - inputs, - config, - pkgs, - ... -}: let - inherit (lib) mkIf; - inherit (builtins) elem; - isx86Linux = pkgs: with pkgs.stdenv; hostPlatform.isLinux && hostPlatform.isx86; - inherit (config.ooknet.host.hardware) features; -in { - config = mkIf (elem "video" features) { - hardware = { - graphics = { - enable = true; - enable32Bit = isx86Linux pkgs; - }; - }; - xdg.portal = { - enable = true; - xdgOpenUsePortal = true; - extraPortals = with pkgs; [ - inputs.xdg-portal-hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland - xdg-desktop-portal-gtk - ]; - config = { - common.default = ["gtk"]; - hyprland.default = ["gtk" "hyprland"]; - }; - }; - }; -} diff --git a/nixos/modules/host/hardware/gpu/intel.nix b/nixos/modules/host/hardware/gpu/intel.nix deleted file mode 100644 index 5776eac..0000000 --- a/nixos/modules/host/hardware/gpu/intel.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: let - inherit (config.ooknet.host.hardware) gpu; - inherit (lib) mkIf; - inherit (builtins) elem; - # vaapiIntel = pkgs.vaapiIntel.override {enableHybridCodec = true;}; -in { - config = mkIf (elem gpu.type ["intel"]) { - services.xserver.videoDrivers = ["modesetting"]; - hardware.graphics = { - extraPackages = with pkgs; [ - vaapiIntel - vaapiVdpau - libvdpau-va-gl - - intel-compute-runtime - intel-media-driver - ]; - extraPackages32 = with pkgs.pkgsi686Linux; [ - vaapiIntel - vaapiVdpau - libvdpau-va-gl - - intel-media-driver - ]; - }; - boot.initrd.kernelModules = ["i915"]; - environment.variables = mkIf config.hardware.graphics.enable { - VDPAU_DRIVER = "va_gl"; - }; - }; -} diff --git a/nixos/modules/host/name.nix b/nixos/modules/host/name.nix deleted file mode 100644 index 2c88c92..0000000 --- a/nixos/modules/host/name.nix +++ /dev/null @@ -1,8 +0,0 @@ -{config, ...}: let - cfg = config.ooknet.host; -in { - config = { - networking.hostName = cfg.name; - environment.sessionVariables.HN = cfg.name; - }; -} diff --git a/nixos/modules/programs/1password.nix b/nixos/modules/programs/1password.nix deleted file mode 100644 index 18e3a58..0000000 --- a/nixos/modules/programs/1password.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ - lib, - config, - ... -}: let - inherit (lib) mkIf; - inherit (config.ooknet.host) admin; - cfg = config.ooknet.programs._1password; -in { - config = mkIf cfg.enable { - programs = { - _1password.enable = true; - _1password-gui = { - enable = true; - polkitPolicyOwners = ["${admin.name}"]; - }; - }; - }; -} diff --git a/nixos/modules/programs/dconf.nix b/nixos/modules/programs/dconf.nix deleted file mode 100644 index ad29acd..0000000 --- a/nixos/modules/programs/dconf.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ - lib, - config, - ... -}: let - inherit (lib) mkIf; - cfg = config.ooknet.programs.dconf; -in { - config = mkIf cfg.enable { - programs.dconf.enable = true; - }; -} diff --git a/nixos/modules/programs/kdeconnect.nix b/nixos/modules/programs/kdeconnect.nix deleted file mode 100644 index bc8ce41..0000000 --- a/nixos/modules/programs/kdeconnect.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ - lib, - config, - ... -}: let - inherit (lib) mkIf; - cfg = config.ooknet.programs.kdeconnect; -in { - config = mkIf cfg.enable { - programs.kdeconnect = { - enable = true; - }; - }; -} diff --git a/nixos/modules/services/dbus.nix b/nixos/modules/services/dbus.nix deleted file mode 100644 index fe142c9..0000000 --- a/nixos/modules/services/dbus.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: let - inherit (lib) mkIf; - cfg = config.ooknet.services.dbus; -in { - config = mkIf cfg.enable { - services.dbus = { - enable = true; - packages = with pkgs; [dconf gcr udisks2]; - implementation = "broker"; - }; - }; -} diff --git a/nixos/modules/services/default.nix b/nixos/modules/services/default.nix deleted file mode 100644 index 228e7ea..0000000 --- a/nixos/modules/services/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ - imports = [ - ./system76Scheduler.nix - ./dbus.nix - ./gnome.nix - ./gvfs.nix - ./flatpak.nix - ]; -} diff --git a/nixos/modules/services/flatpak.nix b/nixos/modules/services/flatpak.nix deleted file mode 100644 index 395c68c..0000000 --- a/nixos/modules/services/flatpak.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ - lib, - config, - ... -}: let - inherit (lib) mkIf; - cfg = config.ooknet.services.flatpak; -in { - config = mkIf cfg.enable { - services.flatpak.enable = true; - }; -} diff --git a/nixos/modules/services/gnome.nix b/nixos/modules/services/gnome.nix deleted file mode 100644 index ebec7a3..0000000 --- a/nixos/modules/services/gnome.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: let - inherit (lib) mkIf; - cfg = config.ooknet.services.gnomeServices; -in { - config = mkIf cfg.enable { - services = { - gnome = { - glib-networking.enable = true; - gnome-keyring.enable = true; - }; - udev.packages = [pkgs.gnome-settings-daemon]; - }; - }; -} diff --git a/nixos/modules/services/gvfs.nix b/nixos/modules/services/gvfs.nix deleted file mode 100644 index 245d83b..0000000 --- a/nixos/modules/services/gvfs.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ - lib, - config, - ... -}: let - inherit (lib) mkIf; - cfg = config.ooknet.services.gvfs; -in { - config = mkIf cfg.enable { - services.gvfs.enable = true; - }; -} diff --git a/nixos/modules/services/system76Scheduler.nix b/nixos/modules/services/system76Scheduler.nix deleted file mode 100644 index 96f2583..0000000 --- a/nixos/modules/services/system76Scheduler.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ - lib, - config, - ... -}: let - inherit (lib) mkIf; - cfg = config.ooknet.services.system76Scheduler; -in { - config = mkIf cfg.enable { - services.system76-scheduler = { - enable = true; - }; - # fix suspend issues - powerManagement = { - powerDownCommands = "systemctl stop system76-scheduler"; - resumeCommands = "systemctl start system76-scheduler"; - }; - }; -} diff --git a/nixos/modules/virtualization/default.nix b/nixos/modules/virtualization/default.nix deleted file mode 100644 index cf1c172..0000000 --- a/nixos/modules/virtualization/default.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: let - cfg = config.ooknet.virtualisation; -in { - config = lib.mkIf cfg.enable { - environment.systemPackages = with pkgs; [ - virt-manager - virt-viewer - spice - spice-gtk - spice-protocol - win-virtio - win-spice - gnome.adwaita-icon-theme - ]; - - virtualisation = { - libvirtd = { - enable = true; - qemu = { - swtpm.enable = true; - ovmf.enable = true; - ovmf.packages = [pkgs.OVMFFull.fd]; - }; - }; - spiceUSBRedirection.enable = true; - }; - services.spice-vdagentd.enable = true; - }; -} diff --git a/nixos/options/appearance/palettes/default.nix b/nixos/options/appearance/palettes/default.nix deleted file mode 100644 index 5b5a834..0000000 --- a/nixos/options/appearance/palettes/default.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ - imports = [./hozen-dark.nix]; -} diff --git a/nixos/options/appearance/palettes/hozen-dark.nix b/nixos/options/appearance/palettes/hozen-dark.nix deleted file mode 100644 index 05adb63..0000000 --- a/nixos/options/appearance/palettes/hozen-dark.nix +++ /dev/null @@ -1,50 +0,0 @@ -{ - colorscheme = { - palette = { - crust = "2b2927"; - mantle = "33312e"; - base = "3f3b37"; - surface-0 = "48423c"; - surface-1 = "534d46"; - surface-2 = "655c53"; - overlay-0 = "766b60"; - overlay-1 = "9c8c7c"; - overlay-2 = "ac9a86"; - subtext-0 = "bfaa92"; - subtext-1 = "c9b39c"; - text = "d2bda7"; - red = "cc6666"; - dull-red = "b87a7a"; - orange = "cc8566"; - dull-orange = "b88d7a"; - yellow = "ccad66"; - dull-yellow = "ada185"; - green = "a0cc66"; - dull-green = "9db87a"; - cyan = "85ad98"; - dull-cyan = "92a099"; - blue = "7A9EBB"; - dull-blue = "8a94a8"; - purple = "8166cc"; - dull-purple = "998aa8"; - - base00 = "2b2927"; - base01 = "33312e"; - base02 = "48423c"; - base03 = "534d46"; - base04 = "655c53"; - base05 = "c9B39C"; - base06 = "deccba"; - base07 = "e7d9cb"; - - base08 = "CC6666"; #red - base09 = "C28970"; #orange - base0A = "C2A970"; #yellow - base0B = "ACC270"; #green - base0C = "70C296"; #cyan - base0D = "7A9EB8"; #blue - base0E = "C982B0"; #purple - base0F = "B88D7A"; #dim-orange - }; - }; -} diff --git a/nixos/options/default.nix b/nixos/options/default.nix deleted file mode 100644 index 54c6f19..0000000 --- a/nixos/options/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ - imports = [ - ./appearance - ./gaming.nix - ./host.nix - ./programs.nix - ./services.nix - ]; -} diff --git a/nixos/options/gaming.nix b/nixos/options/gaming.nix deleted file mode 100644 index 37cd673..0000000 --- a/nixos/options/gaming.nix +++ /dev/null @@ -1,10 +0,0 @@ -{lib, ...}: let - inherit (lib) mkEnableOption; -in { - options.ooknet.gaming = { - steam.enable = mkEnableOption ""; - gamescope.enable = mkEnableOption ""; - gamemode.enable = mkEnableOption ""; - openPorts.enable = mkEnableOption ""; - }; -} diff --git a/nixos/options/host.nix b/nixos/options/host.nix deleted file mode 100644 index 56000f4..0000000 --- a/nixos/options/host.nix +++ /dev/null @@ -1,216 +0,0 @@ -{ - lib, - config, - ... -}: let - inherit (lib) mkOption mkEnableOption; - inherit (lib.types) bool enum listOf int submodule nullOr str; - inherit (lib.lists) optionals concatLists; - - inherit (config.ooknet.host) admin; - inherit (config.ooknet.host) hardware; - inherit (config.ooknet.host.networking) tailscale; -in { - options.ooknet.host = { - name = mkOption { - type = str; - default = "ooksgeneric"; - }; - - type = mkOption { - type = enum ["desktop" "laptop" "phone" "micro" "vm"]; - default = "desktop"; - }; - - role = mkOption { - type = enum ["workstation" "server"]; - default = "workstation"; - }; - - profiles = mkOption { - type = listOf (enum ["gaming" "creative" "productivity" "console-tools" "media" "media-server"]); - default = []; - }; - - admin = { - name = mkOption { - type = str; - default = "ooks"; - }; - shell = mkOption { - type = enum ["bash" "zsh" "fish"]; - default = "bash"; - }; - gitName = mkOption { - type = str; - default = "ooks-io"; - }; - gitEmail = mkOption { - type = str; - default = "ooks@protonmail.com"; - }; - homeManager = mkEnableOption ""; - }; - - # tailscale options brought to you by github:notashelf/nyx - networking = { - tailscale = { - enable = mkEnableOption "Enable tailscale system module"; - autoconnect = mkEnableOption "Enable auto connect tailscale service"; - authkey = mkOption { - type = str; - default = config.age.secrets.tailscale-auth.path; - }; - server = mkOption { - type = bool; - default = false; - description = "Define if the host is a server"; - }; - client = mkOption { - type = bool; - default = tailscale.enable; - description = "Define if the host is a client"; - }; - tags = mkOption { - type = listOf str; - default = - if tailscale.server - then ["tag:server"] - else []; - description = "Sets host tag depending on if server/client"; - }; - operator = mkOption { - type = str; - default = "${admin.name}"; - description = "Name of the tailscale operator"; - }; - flags = { - default = mkOption { - type = listOf str; - default = ["--ssh"]; - }; - final = mkOption { - type = listOf str; - internal = true; - readOnly = true; - default = concatLists [ - tailscale.flags.default - (optionals (tailscale.authkey != null) ["--authkey file:${config.age.secrets.tailscale-auth.path}"]) - (optionals (tailscale.operator != null) ["--operator ${tailscale.operator}"]) - # (optionals (tailscale.tags != []) ["--advertise-tags" (concatStringsSep "," tailscale.tags)]) - (optionals tailscale.server ["--advertise-exit-node"]) - ]; - }; - }; - }; - }; - - hardware = { - gpu = { - type = mkOption { - type = nullOr (enum ["intel" "amd" "nvidia"]); - default = null; - }; - }; - - cpu = { - type = mkOption { - type = nullOr (enum ["intel" "amd"]); - default = null; - }; - amd.pstate.enable = mkEnableOption ""; - }; - - features = mkOption { - type = listOf (enum ["audio" "video" "bluetooth" "backlight" "battery" "ssd"]); - default = ["ssd"]; - }; - - battery = { - powersave = { - minFreq = mkOption { - type = int; - default = 800; - description = "Minimum frequency for powersave mode in MHz"; - }; - maxFreq = mkOption { - type = int; - default = 1100; - description = "Maximum frequency for powersave mode in MHz"; - }; - }; - performance = { - minFreq = mkOption { - type = int; - default = 1500; - description = "Minimum frequency for performance mode in MHz"; - }; - maxFreq = mkOption { - type = int; - default = 2600; - description = "Maximum frequency for performance mode in MHz"; - }; - }; - }; - - monitors = mkOption { - type = listOf (submodule { - options = { - name = mkOption { - type = str; - example = "DP-1"; - }; - primary = mkOption { - type = bool; - default = false; - }; - width = mkOption { - type = int; - example = 1920; - }; - height = mkOption { - type = int; - example = 1080; - }; - refreshRate = mkOption { - type = int; - default = 60; - }; - x = mkOption { - type = int; - default = 0; - }; - y = mkOption { - type = int; - default = 0; - }; - transform = mkOption { - type = int; - default = 0; - }; - enabled = mkOption { - type = bool; - default = true; - }; - workspace = mkOption { - type = nullOr str; - default = null; - }; - }; - }); - default = []; - }; - }; - }; - - config = { - assertions = [ - { - assertion = - ((lib.length hardware.monitors) != 0) - -> ((lib.length (lib.filter (m: m.primary) hardware.monitors)) == 1); - message = "At least 1 primary monitor is required"; - } - ]; - }; -} diff --git a/nixos/options/programs.nix b/nixos/options/programs.nix deleted file mode 100644 index 76458f5..0000000 --- a/nixos/options/programs.nix +++ /dev/null @@ -1,9 +0,0 @@ -{lib, ...}: let - inherit (lib) mkEnableOption; -in { - options.ooknet.programs = { - _1password.enable = mkEnableOption ""; - dconf.enable = mkEnableOption ""; - kdeconnect.enable = mkEnableOption ""; - }; -} diff --git a/nixos/options/services.nix b/nixos/options/services.nix deleted file mode 100644 index 3c81cbb..0000000 --- a/nixos/options/services.nix +++ /dev/null @@ -1,12 +0,0 @@ -{lib, ...}: let - inherit (lib) mkEnableOption; -in { - options.ooknet.services = { - nixarr.enable = mkEnableOption ""; - gnomeServices.enable = mkEnableOption ""; - gvfs.enable = mkEnableOption ""; - dbus.enable = mkEnableOption ""; - system76Scheduler.enable = mkEnableOption ""; - flatpak.enable = mkEnableOption ""; - }; -} diff --git a/nixos/profiles/default.nix b/nixos/profiles/default.nix deleted file mode 100644 index 733bd37..0000000 --- a/nixos/profiles/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ - imports = [ - ./gaming.nix - ./media-server.nix - ]; -} diff --git a/nixos/profiles/gaming.nix b/nixos/profiles/gaming.nix deleted file mode 100644 index c675f14..0000000 --- a/nixos/profiles/gaming.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ - lib, - config, - ... -}: let - inherit (lib) mkIf; - inherit (builtins) elem; - inherit (config.ooknet.host) profiles; -in { - config = mkIf (elem "gaming" profiles) { - ooknet.gaming = { - steam.enable = true; - gamescope.enable = true; - gamemode.enable = true; - }; - ooknet.services.flatpak.enable = true; - }; -} diff --git a/nixos/profiles/media-server.nix b/nixos/profiles/media-server.nix deleted file mode 100644 index 315a877..0000000 --- a/nixos/profiles/media-server.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ - lib, - config, - ... -}: let - inherit (lib) mkIf; - inherit (builtins) elem; - inherit (config.ooknet.host) profiles; -in { - config = mkIf (elem "media-server" profiles) { - ooknet.services.nixarr.enable = true; - }; -} diff --git a/nixos/roles/default.nix b/nixos/roles/default.nix deleted file mode 100644 index 66ff35e..0000000 --- a/nixos/roles/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ - imports = [ - ./desktop-workstation.nix - ./laptop-workstation.nix - ]; -} diff --git a/nixos/roles/desktop-workstation.nix b/nixos/roles/desktop-workstation.nix deleted file mode 100644 index 3d24500..0000000 --- a/nixos/roles/desktop-workstation.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ - lib, - config, - ... -}: let - inherit (lib) mkIf; - inherit (config.ooknet) host; -in { - config = mkIf (host.type == "desktop" && host.role == "workstation") { - ooknet = { - appearance.theme = "minimal"; - services = { - gnomeServices.enable = true; - gvfs.enable = true; - dbus.enable = true; - system76Scheduler.enable = true; - }; - programs = { - _1password.enable = true; - dconf.enable = true; - kdeconnect.enable = true; - }; - }; - }; -} diff --git a/nixos/roles/laptop-workstation.nix b/nixos/roles/laptop-workstation.nix deleted file mode 100644 index be1679d..0000000 --- a/nixos/roles/laptop-workstation.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ - lib, - config, - ... -}: let - inherit (lib) mkIf; - inherit (config.ooknet) host; -in { - config = mkIf (host.type == "laptop" && host.role == "workstation") { - ooknet = { - appearance.theme = "minimal"; - services = { - gnomeServices.enable = true; - gvfs.enable = true; - dbus.enable = true; - system76Scheduler.enable = true; - }; - programs = { - _1password.enable = true; - dconf.enable = true; - kdeconnect.enable = true; - }; - }; - }; -} diff --git a/outputs/apps.nix b/outputs/apps.nix new file mode 100644 index 0000000..95e35df --- /dev/null +++ b/outputs/apps.nix @@ -0,0 +1,10 @@ +{lib, ...}: let + inherit (lib) getExe; +in { + perSystem = {config, ...}: { + apps = { + ooks-vim.program = getExe config.packages.ook-vim; + default = config.apps.ook-vim; + }; + }; +} diff --git a/outputs/default.nix b/outputs/default.nix index 635c85f..a0f66b6 100644 --- a/outputs/default.nix +++ b/outputs/default.nix @@ -1,9 +1,9 @@ { imports = [ - ./nixos.nix - ./sshKeys.nix - ./formatter.nix + ./apps.nix ./lib + ./hosts + ./keys.nix ./pkgs ]; } diff --git a/outputs/formatter.nix b/outputs/formatter.nix deleted file mode 100644 index 18380d0..0000000 --- a/outputs/formatter.nix +++ /dev/null @@ -1,5 +0,0 @@ -_: { - perSystem = {pkgs, ...}: { - formatter = pkgs.alejandra; - }; -} diff --git a/home/modules/console/editor/default.nix b/outputs/hosts/default.nix similarity index 50% rename from home/modules/console/editor/default.nix rename to outputs/hosts/default.nix index 224f37d..d2b141c 100644 --- a/home/modules/console/editor/default.nix +++ b/outputs/hosts/default.nix @@ -1,6 +1,5 @@ { imports = [ - ./helix - ./nvim + ./workstations.nix ]; } diff --git a/outputs/hosts/workstations.nix b/outputs/hosts/workstations.nix new file mode 100644 index 0000000..0584476 --- /dev/null +++ b/outputs/hosts/workstations.nix @@ -0,0 +1,22 @@ +{ + withSystem, + ook, + ... +}: let + inherit (ook.lib.builders) mkWorkstation; +in { + flake.nixosConfigurations = { + ookst480s = mkWorkstation { + inherit withSystem; + system = "x86_64-linux"; + hostname = "ookst480s"; + type = "laptop"; + }; + ooksdesk = mkWorkstation { + inherit withSystem; + system = "x86_64-linux"; + hostname = "ooksdesk"; + type = "desktop"; + }; + }; +} diff --git a/outputs/keys.nix b/outputs/keys.nix new file mode 100644 index 0000000..7c84285 --- /dev/null +++ b/outputs/keys.nix @@ -0,0 +1,6 @@ +let + keys = import ../secrets/keys.nix; +in { + perSystem._module.args.keys = keys; + flake.keys = keys; +} diff --git a/outputs/lib/builders.nix b/outputs/lib/builders.nix index e0b03fd..f9b5e36 100644 --- a/outputs/lib/builders.nix +++ b/outputs/lib/builders.nix @@ -4,15 +4,24 @@ self, ... }: let + inherit (inputs) nixpkgs; inherit (lib) singleton recursiveUpdate mkDefault; inherit (builtins) concatLists; inherit (self) keys; hm = inputs.home-manager.nixosModules.home-manager; agenix = inputs.agenix.nixosModules.default; - nixosModules = "${self}/nixos"; - mkNixos = inputs.nixpkgs.lib.nixosSystem; + nixosModules = "${self}/modules/nixos"; + baseModules = nixosModules + "/base"; + hardwareModules = nixosModules + "/hardware"; + appearanceModules = nixosModules + "/appearance"; + consoleModules = nixosModules + "/console"; + workstationModules = nixosModules + "/workstation"; + serverModules = nixosModules + "/server"; + core = [baseModules hardwareModules consoleModules appearanceModules hm agenix]; hostModules = "${self}/hosts"; + mkNixos = nixpkgs.lib.nixosSystem; + mkBaseSystem = { withSystem, hostname, @@ -36,7 +45,10 @@ modules = concatLists [ (singleton { networking.hostName = hostname; - nixpkgs.hostPlatform = mkDefault system; + nixpkgs = { + flake.source = nixpkgs.outPath; + hostPlatform = mkDefault system; + }; ooknet.host = { name = hostname; inherit role type; @@ -59,7 +71,8 @@ inherit withSystem hostname system type specialArgs; role = "workstation"; additionalModules = concatLists [ - [hm agenix nixosModules] + core + [workstationModules] additionalModules ]; }; @@ -83,6 +96,8 @@ inherit platform services; }; }) + core + [serverModules] additionalModules ]; }; diff --git a/outputs/lib/default.nix b/outputs/lib/default.nix index 9c5c3ec..d458ab7 100644 --- a/outputs/lib/default.nix +++ b/outputs/lib/default.nix @@ -2,11 +2,15 @@ lib, self, inputs, + pkgs, ... }: let - builders = import ./builders.nix {inherit self lib inputs;}; -in { - _module.args.ooknet.lib = { - inherit builders; + # My person functions + ook-lib = { + builders = import ./builders.nix {inherit self lib inputs;}; + mkNeovim = import ./mkNeovim.nix {inherit inputs;}; }; +in { + _module.args.ook.lib = ook-lib; + flake.ook.lib = ook-lib; } diff --git a/outputs/lib/mkNeovim.nix b/outputs/lib/mkNeovim.nix new file mode 100644 index 0000000..951d4f0 --- /dev/null +++ b/outputs/lib/mkNeovim.nix @@ -0,0 +1,12 @@ +{inputs, ...}: let + inherit (inputs.nvf.lib) neovimConfiguration; + + mkNeovim = pkgs: modules: + (neovimConfiguration { + inherit pkgs; + extraSpecialArgs = {inherit inputs;}; + inherit modules; + }) + .neovim; +in + mkNeovim diff --git a/outputs/nixos.nix b/outputs/nixos.nix deleted file mode 100644 index 430b679..0000000 --- a/outputs/nixos.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ - self, - withSystem, - ooknet, - ... -}: let - inherit (ooknet.lib.builders) mkServer mkWorkstation; -in { - flake.nixosConfigurations = { - ooksdesk = mkWorkstation { - inherit withSystem; - hostname = "ooksdesk"; - system = "x86_64-linux"; - type = "desktop"; - }; - - ookst480s = mkWorkstation { - inherit withSystem; - system = "x86_64-linux"; - hostname = "ookst480s"; - type = "laptop"; - }; - - ooksmedia = mkWorkstation { - inherit withSystem; - system = "x86_64-linux"; - hostname = "ooksmedia"; - type = "desktop"; - }; - - ooksmicro = mkWorkstation { - inherit withSystem; - system = "x86_64-linux"; - hostname = "ooksmicro"; - }; - - ooksx1 = mkWorkstation { - inherit withSystem; - system = "x86_64-linux"; - hostname = "ooksx1"; - }; - ooknode = mkServer { - inherit withSystem; - system = "x86_64-linux"; - hostname = "ooknode"; - }; - }; -} diff --git a/outputs/overlays/default.nix b/outputs/overlays/default.nix deleted file mode 100644 index e2c6223..0000000 --- a/outputs/overlays/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{inputs, ...}: { - # For every flake input, aliases 'pkgs.inputs.${flake}' to - # 'inputs.${flake}.packages.${pkgs.system}' or - # 'inputs.${flake}.legacyPackages.${pkgs.system}' - flake-inputs = final: _: { - inputs = - builtins.mapAttrs - ( - _: flake: let - legacyPackages = (flake.legacyPackages or {}).${final.system} or {}; - packages = (flake.packages or {}).${final.system} or {}; - in - if legacyPackages != {} - then legacyPackages - else packages - ) - inputs; - }; - - zjstatus = _final: prev: { - zjstatus = inputs.zjstatus.packages.${prev.system}.default; - }; - - # waybar = final: prev: { - # waybar = inputs.nixpkgs-wayland.packages.${prev.system}.waybar; - # }; - - additions = final: _prev: import ../pkgs {pkgs = final;}; -} diff --git a/outputs/pkgs/default.nix b/outputs/pkgs/default.nix index b57ba98..2fd7ca7 100644 --- a/outputs/pkgs/default.nix +++ b/outputs/pkgs/default.nix @@ -1,8 +1,12 @@ -{ - perSystem = {pkgs, ...}: { +{ook, ...}: { + perSystem = {pkgs, ...}: let + inherit (ook.lib) mkNeovim; + ook-vim-config = import ./ook-vim; + in { packages = { - live-buds-cli = pkgs.callPackage ./live-buds-cli {}; repopack = pkgs.callPackage ./repopack {}; + live-buds-cli = pkgs.callPackage ./live-buds-cli {}; + ook-vim = mkNeovim pkgs [ook-vim-config]; }; }; } diff --git a/outputs/pkgs/live-buds-cli/default.nix b/outputs/pkgs/live-buds-cli/default.nix index b2546ad..590f4a9 100644 --- a/outputs/pkgs/live-buds-cli/default.nix +++ b/outputs/pkgs/live-buds-cli/default.nix @@ -18,14 +18,14 @@ rustPlatform.buildRustPackage rec { sha256 = "A4XQiJrk4ehb6+935L2JFOeAhUJ7bdukV5mL0Jxn0sQ="; }; - cargoSha256 = "w/dt7Q9TACw5N/+QNAKMUEngf8sAhWyGslnw3B16crQ="; + cargoHash = "sha256-w/dt7Q9TACw5N/+QNAKMUEngf8sAhWyGslnw3B16crQ"; nativeBuildInputs = [pkg-config]; buildInputs = [libpulseaudio bluez dbus]; - meta = with lib; { + meta = { description = "A free cli tool to control your Galaxy buds live, Galaxy Buds+, Galaxy Buds Pro, Galaxy Buds 2 and Galaxy Buds 2 Pro"; - license = licenses.gpl3; - platforms = platforms.unix; + license = lib.licenses.gpl3; + platforms = lib.platforms.unix; }; } diff --git a/outputs/pkgs/ook-vim/default.nix b/outputs/pkgs/ook-vim/default.nix new file mode 100644 index 0000000..c460a8c --- /dev/null +++ b/outputs/pkgs/ook-vim/default.nix @@ -0,0 +1,9 @@ +{ + imports = [ + ./settings.nix + ./theme.nix + ./keymaps.nix + ./plugins + ./modules + ]; +} diff --git a/outputs/pkgs/ook-vim/keymaps.nix b/outputs/pkgs/ook-vim/keymaps.nix new file mode 100644 index 0000000..2fbb68d --- /dev/null +++ b/outputs/pkgs/ook-vim/keymaps.nix @@ -0,0 +1,5 @@ +{ + config.vim = { + globals.mapleader = " "; + }; +} diff --git a/outputs/pkgs/ook-vim/modules/default.nix b/outputs/pkgs/ook-vim/modules/default.nix new file mode 100644 index 0000000..2d1a48e --- /dev/null +++ b/outputs/pkgs/ook-vim/modules/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./plugins + ]; +} diff --git a/outputs/pkgs/ook-vim/modules/plugins/default.nix b/outputs/pkgs/ook-vim/modules/plugins/default.nix new file mode 100644 index 0000000..d4ef450 --- /dev/null +++ b/outputs/pkgs/ook-vim/modules/plugins/default.nix @@ -0,0 +1,6 @@ +{ + imports = [ + ./gruvbox-material + ./telescope + ]; +} diff --git a/outputs/pkgs/ook-vim/modules/plugins/gruvbox-material/config.nix b/outputs/pkgs/ook-vim/modules/plugins/gruvbox-material/config.nix new file mode 100644 index 0000000..d03cab7 --- /dev/null +++ b/outputs/pkgs/ook-vim/modules/plugins/gruvbox-material/config.nix @@ -0,0 +1,80 @@ +{ + config, + lib, + inputs, + pkgs, + ... +}: let + inherit (lib) mkOption mkIf boolToString; + inherit (lib.types) bool enum lines; + inherit (inputs.nvf.lib.nvim.dag) entryAfter; + + cfg = config.vim.gruvbox-material; +in { + options.vim.gruvbox-material = { + enable = mkOption { + type = bool; + description = "Enable gruvbox-material-theme"; + default = false; + }; + contrast = mkOption { + type = enum ["dark" "medium" "soft"]; + description = "Set contrast, can be any of 'hard', 'medium', 'soft'"; + default = "dark"; + }; + italics = mkOption { + type = bool; + description = "Enable italic comments"; + default = true; + }; + transparent = mkOption { + type = bool; + description = "Set background to transparent"; + default = false; + }; + floatForceBackground = mkOption { + type = bool; + description = "Force backgrounds on floats even when transparent = true"; + default = false; + }; + signsHighlight = mkOption { + type = bool; + description = "Enable sign highlighting"; + default = true; + }; + extraConfig = mkOption { + type = lines; + description = "Additional lua configuration after"; + }; + }; + + config = mkIf cfg.enable { + vim = { + startPlugins = [pkgs.vimPlugins.gruvbox-material-nvim]; + luaConfigRC.theme = + entryAfter ["basic"] + /* + lua + */ + '' + require('gruvbox-material').setup{ + contrast = "${cfg.contrast}", + comments = { + italics = ${boolToString cfg.italics}, + }, + background = { + transparent = ${boolToString cfg.transparent}, + }, + float = { + force_background = ${boolToString cfg.floatForceBackground}, + background_color = nil, + }, + signs = { + highlight = ${boolToString cfg.signsHighlight}, + }, + } + ${cfg.extraConfig} + ''; + }; + }; +} diff --git a/outputs/pkgs/ook-vim/modules/plugins/gruvbox-material/default.nix b/outputs/pkgs/ook-vim/modules/plugins/gruvbox-material/default.nix new file mode 100644 index 0000000..6b0d6c3 --- /dev/null +++ b/outputs/pkgs/ook-vim/modules/plugins/gruvbox-material/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./config.nix + ]; +} diff --git a/outputs/pkgs/ook-vim/modules/plugins/telescope/config.nix b/outputs/pkgs/ook-vim/modules/plugins/telescope/config.nix new file mode 100644 index 0000000..6efab9d --- /dev/null +++ b/outputs/pkgs/ook-vim/modules/plugins/telescope/config.nix @@ -0,0 +1,55 @@ +{ + config, + lib, + inputs, + ... +}: let + inherit (lib) mkIf mkOption; + inherit (lib.types) bool; + inherit (inputs.nvf.lib.nvim.dag) entryAfter; + cfg = config.vim.telescope; +in { + options.vim.telescope = { + autostart = mkOption { + type = bool; + default = false; + description = "Auto start telescope when opening neovim unless opening a file"; + }; + }; + config = mkIf cfg.autostart { + vim.luaConfigRC.telescope-autostart = + entryAfter ["pluginConfigs"] + #lua + '' + local find_files_hijack_netrw = vim.api.nvim_create_augroup("find_files_hijack_netrw", { clear = true }) + -- clear FileExplorer appropriately to prevent netrw from launching on folders + -- netrw may or may not be loaded before telescope-find-files + -- conceptual credits to nvim-tree and telescope-file-browser + vim.api.nvim_create_autocmd("VimEnter", { + pattern = "*", + once = true, + callback = function() + pcall(vim.api.nvim_clear_autocmds, { group = "FileExplorer" }) + end, + }) + vim.api.nvim_create_autocmd("BufEnter", { + group = find_files_hijack_netrw, + pattern = "*", + callback = function() + vim.schedule(function() + -- Early return if netrw or not a directory + if vim.bo[0].filetype == "netrw" or vim.fn.isdirectory(vim.fn.expand("%:p")) == 0 then + return + end + + vim.api.nvim_buf_set_option(0, "bufhidden", "wipe") + + require("telescope.builtin").find_files({ + cwd = vim.fn.expand("%:p:h"), + }) + end) + end, + }) + ''; + }; +} diff --git a/outputs/pkgs/ook-vim/modules/plugins/telescope/default.nix b/outputs/pkgs/ook-vim/modules/plugins/telescope/default.nix new file mode 100644 index 0000000..6b0d6c3 --- /dev/null +++ b/outputs/pkgs/ook-vim/modules/plugins/telescope/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./config.nix + ]; +} diff --git a/outputs/pkgs/ook-vim/plugins/cmp.nix b/outputs/pkgs/ook-vim/plugins/cmp.nix new file mode 100644 index 0000000..e772e32 --- /dev/null +++ b/outputs/pkgs/ook-vim/plugins/cmp.nix @@ -0,0 +1,5 @@ +{ + vim.autocomplete.nvim-cmp = { + enable = true; + }; +} diff --git a/outputs/pkgs/ook-vim/plugins/comments.nix b/outputs/pkgs/ook-vim/plugins/comments.nix new file mode 100644 index 0000000..1613590 --- /dev/null +++ b/outputs/pkgs/ook-vim/plugins/comments.nix @@ -0,0 +1,5 @@ +{ + vim.comments = { + comment-nvim.enable = true; + }; +} diff --git a/outputs/pkgs/ook-vim/plugins/default.nix b/outputs/pkgs/ook-vim/plugins/default.nix new file mode 100644 index 0000000..a1a72f6 --- /dev/null +++ b/outputs/pkgs/ook-vim/plugins/default.nix @@ -0,0 +1,15 @@ +{ + imports = [ + ./telescope.nix + ./filetree.nix + ./cmp.nix + ./terminal.nix + ./git.nix + ./projects.nix + ./utility.nix + ./ui.nix + ./languages + ./statusline.nix + ./snippets.nix + ]; +} diff --git a/outputs/pkgs/ook-vim/plugins/filetree.nix b/outputs/pkgs/ook-vim/plugins/filetree.nix new file mode 100644 index 0000000..13068c0 --- /dev/null +++ b/outputs/pkgs/ook-vim/plugins/filetree.nix @@ -0,0 +1,17 @@ +{ + vim.filetree = { + neo-tree = { + enable = true; + setupOpts = { + filesystem = { + hijack_netrw_behavior = "open_current"; + follow_current_file.enabled = true; + }; + }; + }; + }; + vim.maps.normal."" = { + desc = "Toggle Tree"; + action = "Neotree toggle reveal"; + }; +} diff --git a/outputs/pkgs/ook-vim/plugins/git.nix b/outputs/pkgs/ook-vim/plugins/git.nix new file mode 100644 index 0000000..046153a --- /dev/null +++ b/outputs/pkgs/ook-vim/plugins/git.nix @@ -0,0 +1,9 @@ +{ + vim.git = { + enable = true; + gitsigns = { + enable = true; + codeActions.enable = false; + }; + }; +} diff --git a/outputs/pkgs/ook-vim/plugins/languages/bash.nix b/outputs/pkgs/ook-vim/plugins/languages/bash.nix new file mode 100644 index 0000000..bf157aa --- /dev/null +++ b/outputs/pkgs/ook-vim/plugins/languages/bash.nix @@ -0,0 +1,5 @@ +{ + vim.languages.bash = { + enable = true; + }; +} diff --git a/outputs/pkgs/ook-vim/plugins/languages/css.nix b/outputs/pkgs/ook-vim/plugins/languages/css.nix new file mode 100644 index 0000000..4fc2a28 --- /dev/null +++ b/outputs/pkgs/ook-vim/plugins/languages/css.nix @@ -0,0 +1,6 @@ +{ + vim.languages.css = { + enable = true; + format.enable = true; + }; +} diff --git a/outputs/pkgs/ook-vim/plugins/languages/default.nix b/outputs/pkgs/ook-vim/plugins/languages/default.nix new file mode 100644 index 0000000..a87b632 --- /dev/null +++ b/outputs/pkgs/ook-vim/plugins/languages/default.nix @@ -0,0 +1,19 @@ +{ + imports = [ + ./nix.nix + ./lsp.nix + ./bash.nix + ./treesitter.nix + ./html.nix + ./ts.nix + ]; + + vim.languages = { + enableLSP = true; + enableTreesitter = true; + enableFormat = true; + enableExtraDiagnostics = true; + + typst.enable = true; + }; +} diff --git a/outputs/pkgs/ook-vim/plugins/languages/html.nix b/outputs/pkgs/ook-vim/plugins/languages/html.nix new file mode 100644 index 0000000..35dad9b --- /dev/null +++ b/outputs/pkgs/ook-vim/plugins/languages/html.nix @@ -0,0 +1,5 @@ +{ + vim.languages.html = { + enable = true; + }; +} diff --git a/outputs/pkgs/ook-vim/plugins/languages/lsp.nix b/outputs/pkgs/ook-vim/plugins/languages/lsp.nix new file mode 100644 index 0000000..a5cbb77 --- /dev/null +++ b/outputs/pkgs/ook-vim/plugins/languages/lsp.nix @@ -0,0 +1,8 @@ +{ + vim.lsp = { + formatOnSave = true; + lspkind.enable = true; + lspSignature.enable = true; + trouble = {enable = true;}; + }; +} diff --git a/outputs/pkgs/ook-vim/plugins/languages/markdown.nix b/outputs/pkgs/ook-vim/plugins/languages/markdown.nix new file mode 100644 index 0000000..79e953e --- /dev/null +++ b/outputs/pkgs/ook-vim/plugins/languages/markdown.nix @@ -0,0 +1,11 @@ +{ + vim = { + languages.markdown = { + enable = true; + format = true; + }; + utility = { + preview.markdownPreview = {enable = true;}; + }; + }; +} diff --git a/outputs/pkgs/ook-vim/plugins/languages/nix.nix b/outputs/pkgs/ook-vim/plugins/languages/nix.nix new file mode 100644 index 0000000..e5ca2b1 --- /dev/null +++ b/outputs/pkgs/ook-vim/plugins/languages/nix.nix @@ -0,0 +1,5 @@ +{ + vim.languages.nix = { + enable = true; + }; +} diff --git a/outputs/pkgs/ook-vim/plugins/languages/treesitter.nix b/outputs/pkgs/ook-vim/plugins/languages/treesitter.nix new file mode 100644 index 0000000..33c3410 --- /dev/null +++ b/outputs/pkgs/ook-vim/plugins/languages/treesitter.nix @@ -0,0 +1,11 @@ +{pkgs, ...}: { + vim.treesitter = { + enable = true; + fold = true; + grammars = with pkgs.vimPlugins.nvim-treesitter.builtGrammars; [ + kdl + regex + fish + ]; + }; +} diff --git a/outputs/pkgs/ook-vim/plugins/languages/ts.nix b/outputs/pkgs/ook-vim/plugins/languages/ts.nix new file mode 100644 index 0000000..45e775f --- /dev/null +++ b/outputs/pkgs/ook-vim/plugins/languages/ts.nix @@ -0,0 +1,5 @@ +{ + vim.languages.ts = { + enable = true; + }; +} diff --git a/outputs/pkgs/ook-vim/plugins/projects.nix b/outputs/pkgs/ook-vim/plugins/projects.nix new file mode 100644 index 0000000..cccccb0 --- /dev/null +++ b/outputs/pkgs/ook-vim/plugins/projects.nix @@ -0,0 +1,16 @@ +{ + vim.projects = { + project-nvim = { + enable = true; + setupOpts = { + manualMode = false; + detectionMethods = ["lsp" "pattern"]; + patterns = [ + ".git" + "index.*" + "flake.nix" + ]; + }; + }; + }; +} diff --git a/outputs/pkgs/ook-vim/plugins/snippets.nix b/outputs/pkgs/ook-vim/plugins/snippets.nix new file mode 100644 index 0000000..72acf88 --- /dev/null +++ b/outputs/pkgs/ook-vim/plugins/snippets.nix @@ -0,0 +1,5 @@ +{ + vim.snippets.luasnip = { + enable = true; + }; +} diff --git a/outputs/pkgs/ook-vim/plugins/statusline.nix b/outputs/pkgs/ook-vim/plugins/statusline.nix new file mode 100644 index 0000000..f376a24 --- /dev/null +++ b/outputs/pkgs/ook-vim/plugins/statusline.nix @@ -0,0 +1,52 @@ +{ + vim.statusline.lualine = { + enable = true; + activeSection = { + a = [ + #lua + '' + { + "mode", + icons_enabled = true, + seperator = {left = "", right = " ", } + } + '' + #lua + '' + { + draw_empty = true, + seperator = { left = " ", right = " " } + } + '' + ]; + b = [ + #lua + '' + { + "", + draw_empty = true, + } + '' + ]; + c = ["filename"]; + x = [ + # lua + '' + { + "diagnostics", + sources = {'nvim_lsp', 'nvim_diagnostic', 'nvim_diagnostic', 'vim_lsp'}, + symbols = {error = '󰅙 ', warn = ' ', info = ' ', hint = '󰌵 '}, + colored = true, + update_in_insert = false, + always_visible = false, + diagnostics_color = { + color_error = { fg = 'red' }, + color_warn = { fg = 'yellow' }, + color_info = { fg = 'cyan' }, + } + } + '' + ]; + }; + }; +} diff --git a/outputs/pkgs/ook-vim/plugins/telescope.nix b/outputs/pkgs/ook-vim/plugins/telescope.nix new file mode 100644 index 0000000..ea86ea6 --- /dev/null +++ b/outputs/pkgs/ook-vim/plugins/telescope.nix @@ -0,0 +1,16 @@ +{ + vim.telescope = { + enable = true; + mappings = { + findFiles = "ff"; + liveGrep = "/"; + + open = null; + gitCommits = null; + gitBufferCommits = null; + gitBranches = null; + gitStatus = null; + gitStash = null; + }; + }; +} diff --git a/outputs/pkgs/ook-vim/plugins/terminal.nix b/outputs/pkgs/ook-vim/plugins/terminal.nix new file mode 100644 index 0000000..9549707 --- /dev/null +++ b/outputs/pkgs/ook-vim/plugins/terminal.nix @@ -0,0 +1,11 @@ +{ + vim.terminal = { + toggleterm = { + enable = true; + lazygit = { + enable = true; + direction = "float"; + }; + }; + }; +} diff --git a/outputs/pkgs/ook-vim/plugins/ui.nix b/outputs/pkgs/ook-vim/plugins/ui.nix new file mode 100644 index 0000000..f709199 --- /dev/null +++ b/outputs/pkgs/ook-vim/plugins/ui.nix @@ -0,0 +1,35 @@ +{ + vim = { + ui = { + borders = { + enable = true; + globalStyle = "single"; + }; + + # better cmd line + noice.enable = true; + + colorizer.enable = true; + illuminate.enable = true; + }; + # < https://github.com/NotAShelf/nvf/tree/main/modules/plugins/visuals > + visuals = { + enable = true; + + # icons that other plugins depend on. + nvimWebDevicons.enable = true; + fidget-nvim.enable = true; + + # indent lines + indentBlankline = { + enable = true; + setupOpts = { + scope = { + enabled = false; + injected_languages = false; + }; + }; + }; + }; + }; +} diff --git a/outputs/pkgs/ook-vim/plugins/utility.nix b/outputs/pkgs/ook-vim/plugins/utility.nix new file mode 100644 index 0000000..b769715 --- /dev/null +++ b/outputs/pkgs/ook-vim/plugins/utility.nix @@ -0,0 +1,5 @@ +{ + vim.binds.whichKey = { + enable = true; + }; +} diff --git a/outputs/pkgs/ook-vim/settings.nix b/outputs/pkgs/ook-vim/settings.nix new file mode 100644 index 0000000..5c41a32 --- /dev/null +++ b/outputs/pkgs/ook-vim/settings.nix @@ -0,0 +1,23 @@ +{pkgs, ...}: { + vim = { + package = pkgs.neovim-unwrapped; + leaderKey = " "; + tabWidth = 2; + autoIndent = true; + searchCase = "smart"; + enableLuaLoader = true; + enableEditorconfig = true; + useSystemClipboard = true; + autopairs.nvim-autopairs.enable = true; + hideSearchHighlight = true; + theme = { + enable = false; + }; + }; + # Additional sets can be added here + # vim.luaConfigRC.basic = + # entryAfter ["entryAfter"] #lua + # '' + # + # ''; +} diff --git a/outputs/pkgs/ook-vim/theme.nix b/outputs/pkgs/ook-vim/theme.nix new file mode 100644 index 0000000..3e0335d --- /dev/null +++ b/outputs/pkgs/ook-vim/theme.nix @@ -0,0 +1,20 @@ +{ + vim.gruvbox-material = { + enable = true; + contrast = "medium"; + italics = false; + transparent = false; + extraConfig = + # lua + '' + local g_colors = require("gruvbox-material.colors") + local colors = g_colors.get(vim.o.background, "soft") + + -- Noice + vim.api.nvim_set_hl(0, "NoiceCmdlinePopupBorderHelp", { fg = colors.yellow }) + vim.api.nvim_set_hl(0, "NoiceCmdlinePopupBorder", { fg = colors.grey1 }) + vim.api.nvim_set_hl(0, "NoiceCmdlineIcon", { fg = colors.green }) + vim.api.nvim_set_hl(0, "NoiceCmdLinePopupTitle", { fg = colors.grey1 }) + ''; + }; +} diff --git a/outputs/sshKeys.nix b/outputs/sshKeys.nix deleted file mode 100644 index 2c32101..0000000 --- a/outputs/sshKeys.nix +++ /dev/null @@ -1,6 +0,0 @@ -let - sshKeys = import ../secrets/keys.nix; -in { - perSystem = _: {_module.args.keys = sshKeys;}; - flake.keys = sshKeys; -}