├── nixos ├── home-manager │ ├── desktops │ │ ├── xfce │ │ │ ├── config │ │ │ │ ├── Kvantum │ │ │ │ │ └── kvantum.kvconfig │ │ │ │ ├── eww │ │ │ │ │ ├── eww.yuck │ │ │ │ │ ├── images │ │ │ │ │ │ ├── avatar.png │ │ │ │ │ │ └── avatar-00.png │ │ │ │ │ ├── scripts │ │ │ │ │ │ ├── weather_reload │ │ │ │ │ │ ├── blight │ │ │ │ │ │ ├── disk │ │ │ │ │ │ ├── opendir │ │ │ │ │ │ ├── vol │ │ │ │ │ │ ├── uptime │ │ │ │ │ │ ├── mem │ │ │ │ │ │ ├── battery │ │ │ │ │ │ └── cpu │ │ │ │ │ ├── sidebar │ │ │ │ │ │ ├── date.yuck │ │ │ │ │ │ ├── pacman_updates.yuck │ │ │ │ │ │ ├── memory.yuck │ │ │ │ │ │ ├── battery.yuck │ │ │ │ │ │ ├── profile.yuck │ │ │ │ │ │ ├── weather.yuck │ │ │ │ │ │ ├── disk.yuck │ │ │ │ │ │ └── system.yuck │ │ │ │ │ ├── variables.yuck │ │ │ │ │ └── sidebar.yuck │ │ │ │ ├── xfce4-picom │ │ │ │ │ ├── helpers.rc │ │ │ │ │ ├── panel │ │ │ │ │ │ ├── genmon-15.rc │ │ │ │ │ │ ├── genmon-17.rc │ │ │ │ │ │ ├── genmon-16.rc │ │ │ │ │ │ ├── datetime-5.rc │ │ │ │ │ │ ├── cpugraph-13.rc │ │ │ │ │ │ ├── launcher-1 │ │ │ │ │ │ │ └── 16518400331.desktop │ │ │ │ │ │ ├── docklike-3.rc │ │ │ │ │ │ └── xfce4-clipman-actions.xml │ │ │ │ │ ├── xfce4-screenshooter │ │ │ │ │ ├── xfconf │ │ │ │ │ │ └── xfce-perchannel-xml │ │ │ │ │ │ │ ├── keyboards.xml │ │ │ │ │ │ │ ├── xfce4-taskmanager.xml │ │ │ │ │ │ │ ├── ristretto.xml │ │ │ │ │ │ │ ├── xfce4-settings-manager.xml │ │ │ │ │ │ │ ├── xfce4-appfinder.xml │ │ │ │ │ │ │ ├── keyboard-layout.xml │ │ │ │ │ │ │ ├── xfce4-settings-editor.xml │ │ │ │ │ │ │ ├── xfce4-notifyd.xml │ │ │ │ │ │ │ ├── xfce4-power-manager.xml │ │ │ │ │ │ │ ├── thunar.xml │ │ │ │ │ │ │ ├── xfce4-session.xml │ │ │ │ │ │ │ └── xsettings.xml │ │ │ │ │ ├── desktop │ │ │ │ │ │ ├── icons.screen.latest.rc │ │ │ │ │ │ ├── icons.screen0-1904x1064.rc │ │ │ │ │ │ └── icons.screen0-3270x1064.rc │ │ │ │ │ └── terminal │ │ │ │ │ │ └── terminalrc │ │ │ │ └── xfce4-refined │ │ │ │ │ └── panel │ │ │ │ │ ├── launcher-19 │ │ │ │ │ └── 16972816909.desktop │ │ │ │ │ ├── launcher-18 │ │ │ │ │ └── 16972816788.desktop │ │ │ │ │ ├── launcher-17 │ │ │ │ │ └── 16972816637.desktop │ │ │ │ │ ├── launcher-21 │ │ │ │ │ └── 169728172411.desktop │ │ │ │ │ ├── launcher-15 │ │ │ │ │ └── 16972816125.desktop │ │ │ │ │ ├── launcher-8 │ │ │ │ │ └── 16972815053.desktop │ │ │ │ │ ├── launcher-9 │ │ │ │ │ └── 16972810932.desktop │ │ │ │ │ ├── launcher-16 │ │ │ │ │ └── 16972815964.desktop │ │ │ │ │ ├── launcher-10 │ │ │ │ │ └── 16972816226.desktop │ │ │ │ │ └── launcher-20 │ │ │ │ │ └── 169728170410.desktop │ │ │ ├── fonts │ │ │ │ └── feather.ttf │ │ │ ├── themes │ │ │ │ └── everblush │ │ │ │ │ └── xfwm4 │ │ │ │ │ ├── hide-active.png │ │ │ │ │ ├── left-active.png │ │ │ │ │ ├── bottom-active.png │ │ │ │ │ ├── close-active.png │ │ │ │ │ ├── close-pressed.png │ │ │ │ │ ├── hide-inactive.png │ │ │ │ │ ├── hide-prelight.png │ │ │ │ │ ├── hide-pressed.png │ │ │ │ │ ├── left-inactive.png │ │ │ │ │ ├── right-active.png │ │ │ │ │ ├── bottom-inactive.png │ │ │ │ │ ├── close-inactive.png │ │ │ │ │ ├── close-prelight.png │ │ │ │ │ ├── maximize-active.png │ │ │ │ │ ├── maximize-pressed.png │ │ │ │ │ ├── right-inactive.png │ │ │ │ │ ├── title-1-active.png │ │ │ │ │ ├── title-1-inactive.png │ │ │ │ │ ├── title-2-active.png │ │ │ │ │ ├── title-2-inactive.png │ │ │ │ │ ├── title-3-active.png │ │ │ │ │ ├── title-3-inactive.png │ │ │ │ │ ├── title-4-active.png │ │ │ │ │ ├── title-4-inactive.png │ │ │ │ │ ├── title-5-active.png │ │ │ │ │ ├── title-5-inactive.png │ │ │ │ │ ├── maximize-inactive.png │ │ │ │ │ ├── maximize-prelight.png │ │ │ │ │ ├── maximize-toggled-active.png │ │ │ │ │ ├── maximize-toggled-inactive.png │ │ │ │ │ ├── maximize-toggled-prelight.png │ │ │ │ │ ├── maximize-toggled-pressed.png │ │ │ │ │ └── themerc │ │ │ ├── assets │ │ │ │ ├── scalable │ │ │ │ │ ├── clock.svg │ │ │ │ │ ├── pie-chart.svg │ │ │ │ │ ├── cpu.svg │ │ │ │ │ ├── ghost.svg │ │ │ │ │ └── power-button.svg │ │ │ │ └── archlinux.svg │ │ │ ├── bin │ │ │ │ ├── genmon-mem │ │ │ │ ├── genmon-datetime │ │ │ │ ├── xfce-init │ │ │ │ ├── i3lock-everblush │ │ │ │ └── genmon-cpu │ │ │ └── default.nix │ │ ├── default.nix │ │ ├── none │ │ │ └── default.nix │ │ ├── gnome │ │ │ └── config │ │ │ │ └── menus │ │ │ │ └── applications-merged │ │ │ │ └── gnome-applications.menu │ │ ├── kde │ │ │ ├── config │ │ │ │ └── menus │ │ │ │ │ └── applications-merged │ │ │ │ │ └── applications-kmenuedit.menu │ │ │ └── default.nix │ │ ├── cinnamon │ │ │ ├── config │ │ │ │ └── menus │ │ │ │ │ └── applications-merged │ │ │ │ │ └── cinnamon-applications.menu │ │ │ └── default.nix │ │ ├── mate │ │ │ └── config │ │ │ │ └── menus │ │ │ │ └── applications-merged │ │ │ │ └── mate-applications.menu │ │ ├── axyl │ │ │ ├── dunst.nix │ │ │ └── alacritty.nix │ │ └── bspwm │ │ │ ├── default.nix │ │ │ └── alacritty │ │ │ └── default.nix │ ├── browsers │ │ └── default.nix │ ├── default.nix │ ├── terminals │ │ ├── default.nix │ │ ├── kitty │ │ │ └── default.nix │ │ └── alacritty │ │ │ └── default.nix │ ├── shells │ │ ├── bash │ │ │ └── blerc │ │ ├── zsh │ │ │ └── shopt │ │ ├── powershell │ │ │ ├── Microsoft.PowerShell_profile.ps1 │ │ │ └── default.nix │ │ └── default.nix │ └── home │ │ ├── default.nix │ │ └── config │ │ └── kando │ │ └── config.json ├── modules │ ├── dev │ │ ├── neovim │ │ │ ├── lua │ │ │ │ ├── user │ │ │ │ │ ├── dap │ │ │ │ │ │ ├── init.lua │ │ │ │ │ │ └── vscode-js.lua │ │ │ │ │ ├── impatient.lua │ │ │ │ │ ├── lsp │ │ │ │ │ │ ├── init.lua │ │ │ │ │ │ ├── settings │ │ │ │ │ │ │ ├── eslint.lua │ │ │ │ │ │ │ ├── lua_ls.lua │ │ │ │ │ │ │ └── tsserver.lua │ │ │ │ │ │ ├── null-ls.lua │ │ │ │ │ │ ├── mason.lua │ │ │ │ │ │ └── handlers.lua │ │ │ │ │ ├── barbar.lua │ │ │ │ │ ├── lualine.lua │ │ │ │ │ ├── copilot.lua │ │ │ │ │ ├── pretty-fold.lua │ │ │ │ │ ├── neotest.lua │ │ │ │ │ ├── indentline.lua │ │ │ │ │ ├── harpoon.lua │ │ │ │ │ ├── git.lua │ │ │ │ │ ├── autopairs.lua │ │ │ │ │ ├── telescope.lua │ │ │ │ │ ├── toggleterm.lua │ │ │ │ │ ├── nvim-tree.lua │ │ │ │ │ ├── treesitter.lua │ │ │ │ │ ├── keymaps.lua │ │ │ │ │ ├── colorscheme.lua │ │ │ │ │ └── options.lua │ │ │ │ └── .luarc.json │ │ │ ├── init.lua │ │ │ └── default.nix │ │ ├── default.nix │ │ ├── starship │ │ │ └── default.nix │ │ └── vscodium │ │ │ └── default.nix │ ├── misc │ │ ├── default.nix │ │ ├── dunst │ │ │ ├── icons │ │ │ │ └── cve.png │ │ │ └── default.nix │ │ └── nist-feed │ │ │ └── default.nix │ ├── boot │ │ ├── default.nix │ │ ├── grub │ │ │ └── default.nix │ │ └── systemd │ │ │ └── default.nix │ ├── hardware │ │ ├── virtualization │ │ │ ├── default.nix │ │ │ ├── host.nix │ │ │ └── guest.nix │ │ ├── network │ │ │ └── default.nix │ │ ├── bluetooth │ │ │ └── default.nix │ │ ├── kernel │ │ │ └── default.nix │ │ ├── sound │ │ │ └── default.nix │ │ └── default.nix │ ├── dms │ │ ├── default.nix │ │ ├── lightdm │ │ │ └── default.nix │ │ ├── gdm │ │ │ └── default.nix │ │ └── sddm │ │ │ └── default.nix │ ├── default.nix │ ├── cyber │ │ ├── roles │ │ │ ├── dos.nix │ │ │ ├── blue.nix │ │ │ ├── student.nix │ │ │ ├── forensic.nix │ │ │ ├── bugbounty.nix │ │ │ ├── mobile.nix │ │ │ ├── cracker.nix │ │ │ ├── osint.nix │ │ │ ├── malware.nix │ │ │ ├── web.nix │ │ │ └── network.nix │ │ └── default.nix │ └── design │ │ ├── default.nix │ │ ├── sweet │ │ └── default.nix │ │ ├── frost │ │ └── default.nix │ │ ├── graphite │ │ └── default.nix │ │ ├── samurai │ │ └── default.nix │ │ ├── temple │ │ └── default.nix │ │ ├── hackthebox │ │ └── default.nix │ │ ├── cyborg │ │ └── default.nix │ │ └── redmoon │ │ └── default.nix ├── pkgs │ ├── default.nix │ ├── nist-feed │ │ ├── cron.patch │ │ └── package.nix │ ├── athena-config-nix │ │ └── package.nix │ ├── aegis-nix │ │ └── package.nix │ ├── themes │ │ ├── athena-gruvbox-base │ │ │ └── package.nix │ │ ├── athena-blue-base │ │ │ └── package.nix │ │ ├── athena-green-base │ │ │ └── package.nix │ │ ├── athena-purple-base │ │ │ └── package.nix │ │ ├── athena-red-base │ │ │ └── package.nix │ │ └── athena-cyan-base │ │ │ └── package.nix │ ├── aegis-tui │ │ └── package.nix │ └── athena-welcome │ │ └── package.nix ├── hosts │ ├── locale │ │ └── default.nix │ └── software │ │ ├── goofcord │ │ └── default.nix │ │ └── default.nix ├── installation │ ├── installation-cd-graphical-mate.nix │ ├── installation-cd-graphical-xfce.nix │ ├── installation-cd-base.nix │ ├── installation-cd-graphical-base.nix │ └── iso.nix └── configuration.nix ├── .github └── ISSUE_TEMPLATE │ ├── -question.md │ ├── config.yml │ ├── --feature-request.md │ └── --submit-design.yml ├── LICENSE ├── flake.lock └── docs └── templates ├── nixpkgs-python-standalone.nix └── nixpkgs-python-module.nix /nixos/home-manager/desktops/xfce/config/Kvantum/kvantum.kvconfig: -------------------------------------------------------------------------------- 1 | [General] 2 | theme=Everblush 3 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/eww/eww.yuck: -------------------------------------------------------------------------------- 1 | ;; Sidebar 2 | (include "sidebar.yuck") 3 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/xfce4-picom/helpers.rc: -------------------------------------------------------------------------------- 1 | TerminalEmulator=xfce4-terminal 2 | 3 | -------------------------------------------------------------------------------- /nixos/home-manager/browsers/default.nix: -------------------------------------------------------------------------------- 1 | { ... }: { 2 | imports = [ 3 | ./firefox 4 | ]; 5 | } 6 | -------------------------------------------------------------------------------- /nixos/modules/dev/neovim/lua/user/dap/init.lua: -------------------------------------------------------------------------------- 1 | require "user.dap.vscode-js" 2 | require "user.dap.dap" 3 | -------------------------------------------------------------------------------- /nixos/modules/misc/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | imports = [ 3 | ./dunst 4 | ./nist-feed 5 | ]; 6 | } 7 | -------------------------------------------------------------------------------- /nixos/modules/boot/default.nix: -------------------------------------------------------------------------------- 1 | { ... }: { 2 | imports = [ 3 | ./grub 4 | ./systemd 5 | ]; 6 | } 7 | -------------------------------------------------------------------------------- /nixos/home-manager/default.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | { 3 | imports = [ 4 | ./home 5 | ./shells 6 | ]; 7 | } 8 | -------------------------------------------------------------------------------- /nixos/modules/hardware/virtualization/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | imports = [ 3 | ./guest.nix 4 | ./host.nix 5 | ]; 6 | } -------------------------------------------------------------------------------- /nixos/home-manager/terminals/default.nix: -------------------------------------------------------------------------------- 1 | { ... }: { 2 | imports = [ 3 | ./alacritty 4 | ./kitty 5 | ]; 6 | } 7 | -------------------------------------------------------------------------------- /nixos/modules/dms/default.nix: -------------------------------------------------------------------------------- 1 | { ... }: { 2 | imports = [ 3 | ./gdm 4 | ./lightdm 5 | ./sddm 6 | ]; 7 | } 8 | -------------------------------------------------------------------------------- /nixos/modules/misc/dunst/icons/cve.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Athena-OS/athena-nix/HEAD/nixos/modules/misc/dunst/icons/cve.png -------------------------------------------------------------------------------- /nixos/modules/dev/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | imports = [ 3 | ./neovim 4 | ./starship 5 | ./tmux 6 | ./vscodium 7 | ]; 8 | } 9 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/fonts/feather.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Athena-OS/athena-nix/HEAD/nixos/home-manager/desktops/xfce/fonts/feather.ttf -------------------------------------------------------------------------------- /nixos/modules/default.nix: -------------------------------------------------------------------------------- 1 | { lib, config, ... }: 2 | { 3 | imports = [ 4 | ./cyber 5 | ./dev 6 | ./hardware 7 | ./misc 8 | ]; 9 | } 10 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/xfce4-picom/panel/genmon-15.rc: -------------------------------------------------------------------------------- 1 | Command=genmon-cpu 2 | UseLabel=0 3 | Text=(genmon) 4 | UpdatePeriod=1000 5 | Font=Roboto 10 6 | 7 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/xfce4-picom/panel/genmon-17.rc: -------------------------------------------------------------------------------- 1 | Command=genmon-mem 2 | UseLabel=0 3 | Text=(genmon) 4 | UpdatePeriod=750 5 | Font=Roboto 10 6 | 7 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/eww/images/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Athena-OS/athena-nix/HEAD/nixos/home-manager/desktops/xfce/config/eww/images/avatar.png -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/xfce4-picom/panel/genmon-16.rc: -------------------------------------------------------------------------------- 1 | Command=genmon-datetime 2 | UseLabel=0 3 | Text=(genmon) 4 | UpdatePeriod=1000 5 | Font=Roboto 10 6 | 7 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/eww/images/avatar-00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Athena-OS/athena-nix/HEAD/nixos/home-manager/desktops/xfce/config/eww/images/avatar-00.png -------------------------------------------------------------------------------- /nixos/modules/dev/neovim/lua/user/impatient.lua: -------------------------------------------------------------------------------- 1 | local status_ok, impatient = pcall(require, "impatient") 2 | if not status_ok then 3 | return 4 | end 5 | 6 | impatient.enable_profile() 7 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/eww/scripts/weather_reload: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # I know this sucks and perhaps I don't have any better idea 3 | ~/.config/eww/scripts/weather & eww reload -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/hide-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Athena-OS/athena-nix/HEAD/nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/hide-active.png -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/left-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Athena-OS/athena-nix/HEAD/nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/left-active.png -------------------------------------------------------------------------------- /nixos/home-manager/shells/bash/blerc: -------------------------------------------------------------------------------- 1 | # Set proper background color on the autocomplete 2 | ble-face auto_complete='fg=242,bg=235' 3 | ble-face region_insert='' 4 | bleopt exec_errexit_mark='' 5 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/-question.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: "❓Question" 3 | about: Ask your question 4 | title: "[QUESTION]:" 5 | labels: question 6 | assignees: '' 7 | 8 | --- 9 | 10 | ## Question 11 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/bottom-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Athena-OS/athena-nix/HEAD/nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/bottom-active.png -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/close-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Athena-OS/athena-nix/HEAD/nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/close-active.png -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/close-pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Athena-OS/athena-nix/HEAD/nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/close-pressed.png -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/hide-inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Athena-OS/athena-nix/HEAD/nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/hide-inactive.png -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/hide-prelight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Athena-OS/athena-nix/HEAD/nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/hide-prelight.png -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/hide-pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Athena-OS/athena-nix/HEAD/nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/hide-pressed.png -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/left-inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Athena-OS/athena-nix/HEAD/nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/left-inactive.png -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/right-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Athena-OS/athena-nix/HEAD/nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/right-active.png -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/xfce4-picom/panel/datetime-5.rc: -------------------------------------------------------------------------------- 1 | layout=3 2 | date_font=Bitstream Vera Sans 8 3 | time_font=Bitstream Vera Sans 8 4 | date_format=%Y-%m-%d 5 | time_format=%H:%M 6 | 7 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/bottom-inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Athena-OS/athena-nix/HEAD/nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/bottom-inactive.png -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/close-inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Athena-OS/athena-nix/HEAD/nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/close-inactive.png -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/close-prelight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Athena-OS/athena-nix/HEAD/nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/close-prelight.png -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/maximize-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Athena-OS/athena-nix/HEAD/nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/maximize-active.png -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/maximize-pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Athena-OS/athena-nix/HEAD/nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/maximize-pressed.png -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/right-inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Athena-OS/athena-nix/HEAD/nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/right-inactive.png -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/title-1-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Athena-OS/athena-nix/HEAD/nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/title-1-active.png -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/title-1-inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Athena-OS/athena-nix/HEAD/nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/title-1-inactive.png -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/title-2-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Athena-OS/athena-nix/HEAD/nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/title-2-active.png -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/title-2-inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Athena-OS/athena-nix/HEAD/nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/title-2-inactive.png -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/title-3-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Athena-OS/athena-nix/HEAD/nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/title-3-active.png -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/title-3-inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Athena-OS/athena-nix/HEAD/nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/title-3-inactive.png -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/title-4-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Athena-OS/athena-nix/HEAD/nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/title-4-active.png -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/title-4-inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Athena-OS/athena-nix/HEAD/nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/title-4-inactive.png -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/title-5-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Athena-OS/athena-nix/HEAD/nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/title-5-active.png -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/title-5-inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Athena-OS/athena-nix/HEAD/nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/title-5-inactive.png -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/maximize-inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Athena-OS/athena-nix/HEAD/nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/maximize-inactive.png -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/maximize-prelight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Athena-OS/athena-nix/HEAD/nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/maximize-prelight.png -------------------------------------------------------------------------------- /nixos/modules/cyber/roles/dos.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | with pkgs; 4 | 5 | [ 6 | ddosify 7 | katana 8 | netsniff-ng 9 | siege 10 | slowhttptest 11 | slowlorust 12 | thc-ipv6 13 | ] 14 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/maximize-toggled-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Athena-OS/athena-nix/HEAD/nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/maximize-toggled-active.png -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/eww/scripts/blight: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | get_blight() { 4 | brightnessctl -m -d intel_backlight | awk -F, '{print substr($4, 0, length($4)-1)}' | tr -d '%' 5 | } 6 | 7 | get_blight -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/maximize-toggled-inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Athena-OS/athena-nix/HEAD/nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/maximize-toggled-inactive.png -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/maximize-toggled-prelight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Athena-OS/athena-nix/HEAD/nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/maximize-toggled-prelight.png -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/maximize-toggled-pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Athena-OS/athena-nix/HEAD/nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/maximize-toggled-pressed.png -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/eww/scripts/disk: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ## Get Free Disk Space 4 | get_disk() { 5 | free=$(df -h / | awk '{print $3}' | tail -n 1 | sed 's/G/GB/') 6 | echo "$free" 7 | } 8 | 9 | get_disk -------------------------------------------------------------------------------- /nixos/modules/design/default.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | { 3 | imports = [ 4 | ./cyborg 5 | ./frost 6 | ./graphite 7 | ./hackthebox 8 | ./redmoon 9 | ./samurai 10 | ./sweet 11 | ./temple 12 | ]; 13 | } 14 | -------------------------------------------------------------------------------- /nixos/modules/dev/neovim/lua/user/lsp/init.lua: -------------------------------------------------------------------------------- 1 | local status_ok, _ = pcall(require, "lspconfig") 2 | if not status_ok then 3 | return 4 | end 5 | 6 | require("user.lsp.mason") 7 | require("user.lsp.handlers").setup() 8 | require "user.lsp.null-ls" 9 | -------------------------------------------------------------------------------- /nixos/modules/dev/neovim/lua/user/lsp/settings/eslint.lua: -------------------------------------------------------------------------------- 1 | return { 2 | settings = { 3 | codeActionOnSave = { 4 | enable = false, 5 | mode = "all" 6 | }, 7 | format = true, 8 | run = "onSave", 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/default.nix: -------------------------------------------------------------------------------- 1 | { ... }: 2 | { 3 | imports = [ 4 | ./axyl 5 | ./bspwm 6 | ./bspwm-critical 7 | ./cinnamon 8 | ./gnome 9 | ./kde 10 | ./mate 11 | ./xfce 12 | ./none 13 | ]; 14 | } 15 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/eww/scripts/opendir: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | if [[ "$1" == "--path" ]]; then 4 | thunar $2 5 | else 6 | notify-send -i "notification" "No such directory!" 7 | fi 8 | 9 | # vim:ft=bash:nowrap 10 | -------------------------------------------------------------------------------- /nixos/modules/dev/neovim/lua/.luarc.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/sumneko/vscode-lua/master/setting/schema.json", 3 | "Lua.diagnostics.globals": [ 4 | "vim", 5 | "require", 6 | "theme_name" 7 | ] 8 | } -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: 🔥Discord 4 | url: https://discord.gg/GuDyREsNkj 5 | about: Join our Discord server. Feel free to ask for any question about Athena OS, IT or Cyber Security. 6 | -------------------------------------------------------------------------------- /nixos/modules/dev/neovim/lua/user/barbar.lua: -------------------------------------------------------------------------------- 1 | local status_ok, barbar = pcall(require, 'barbar') 2 | if not status_ok then 3 | return 4 | end 5 | 6 | vim.g.barbar_auto_setup = false -- disable auto-setup 7 | barbar.setup { 8 | exclude_ft = {'qf'} 9 | } 10 | -------------------------------------------------------------------------------- /nixos/modules/dms/lightdm/default.nix: -------------------------------------------------------------------------------- 1 | { lib, config, ... }: { 2 | config = lib.mkIf (config.athena.displayManager == "lightdm") { 3 | services.xserver.displayManager.lightdm = { 4 | enable = true; 5 | greeters.slick.enable = true; 6 | }; 7 | }; 8 | } 9 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/xfce4-picom/panel/cpugraph-13.rc: -------------------------------------------------------------------------------- 1 | UpdateInterval=0 2 | TimeScale=0 3 | Size=128 4 | Mode=0 5 | Frame=0 6 | Border=0 7 | Bars=1 8 | ColorMode=1 9 | Foreground1=rgb(39,119,255) 10 | Foreground2=rgb(0,255,224) 11 | BarsColor=rgb(0,255,224) 12 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/xfce4-picom/panel/launcher-1/16518400331.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Version=1.0 3 | Type=Application 4 | Name=Logout 5 | Comment= 6 | Exec=xfce4-session-logout 7 | Icon=power-button 8 | Path= 9 | Terminal=false 10 | StartupNotify=false 11 | -------------------------------------------------------------------------------- /nixos/home-manager/shells/zsh/shopt: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ################################### 4 | # https://github.com/larz258/Zshopt 5 | ################################### 6 | 7 | args=''; 8 | for item in $@ 9 | do 10 | args="$args $item"; 11 | done 12 | shopt $args; -------------------------------------------------------------------------------- /nixos/modules/dev/neovim/lua/user/lualine.lua: -------------------------------------------------------------------------------- 1 | local status_ok, lualine = pcall(require, "lualine") 2 | if not status_ok then 3 | return 4 | end 5 | 6 | lualine.setup({ 7 | extensions = { 'nvim-tree', 'toggleterm', 'nvim-dap-ui' }, 8 | options = { 9 | theme = theme_name, 10 | }, 11 | }) 12 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/xfce4-picom/xfce4-screenshooter: -------------------------------------------------------------------------------- 1 | app=ristretto 2 | last_user= 3 | last_extension=png 4 | screenshot_dir=file:/home/athena/Pictures 5 | enable_imgur_upload=true 6 | show_in_folder=false 7 | action=1 8 | delay=2 9 | region=1 10 | show_mouse=1 11 | show_border=1 12 | 13 | -------------------------------------------------------------------------------- /nixos/home-manager/shells/powershell/Microsoft.PowerShell_profile.ps1: -------------------------------------------------------------------------------- 1 | function prompt() 2 | { 3 | $ESC=$([char]27) 4 | "$ESC[1;31m┌──L3ts D0 1t $(whoami)💥$ESC[00m$($executionContext.SessionState.Path.CurrentLocation)$("`r`n$ESC[1;34m└──╼Weaponizing PowerShell...🚀>$ESC[00m" * ($nestedPromptLevel + 1)) "; 5 | } -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/xfce4-picom/xfconf/xfce-perchannel-xml/keyboards.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /nixos/pkgs/default.nix: -------------------------------------------------------------------------------- 1 | { lib, pkgs, config, ... }: 2 | { 3 | environment.systemPackages = lib.mkIf config.athena.baseConfiguration (with pkgs; [ 4 | (callPackage ./athena-config-nix/package.nix { }) 5 | (callPackage ./athena-welcome/package.nix { }) 6 | (callPackage ./nist-feed/package.nix { }) 7 | ]); 8 | } 9 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/xfce4-picom/xfconf/xfce-perchannel-xml/xfce4-taskmanager.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /nixos/modules/boot/grub/default.nix: -------------------------------------------------------------------------------- 1 | { lib, config, ... }: { 2 | config = lib.mkIf (config.athena.bootloader == "grub") { 3 | # Bootloader 4 | boot.loader = { 5 | grub = { 6 | device = "/dev/sda"; 7 | enableCryptodisk = true; 8 | configurationLimit = 5; 9 | }; 10 | }; 11 | }; 12 | } 13 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/xfce4-picom/panel/docklike-3.rc: -------------------------------------------------------------------------------- 1 | [user] 2 | showWindowCount=true 3 | forceIconSize=true 4 | iconSize=24 5 | indicatorStyle=5 6 | inactiveIndicatorStyle=5 7 | showPreviews=true 8 | indicatorOrientation=1 9 | pinned= 10 | indicatorColorFromTheme=true 11 | keyComboActive=false 12 | keyAloneActive=false 13 | -------------------------------------------------------------------------------- /nixos/modules/dev/starship/default.nix: -------------------------------------------------------------------------------- 1 | { lib, config, ...}: { 2 | config = lib.mkIf config.athena.baseConfiguration { 3 | home-manager.users.${config.athena.homeManagerUser} = { pkgs, ...}: { 4 | programs.starship = { 5 | enable = false; 6 | enableZshIntegration = false; 7 | }; 8 | }; 9 | }; 10 | } 11 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/assets/scalable/clock.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /nixos/modules/dms/gdm/default.nix: -------------------------------------------------------------------------------- 1 | { lib, config, ... }: { 2 | config = lib.mkIf (config.athena.displayManager == "gdm") { 3 | services.displayManager.gdm = { 4 | enable = true; 5 | wayland = true; 6 | }; 7 | 8 | # Change GDM Background. Ref: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3877 9 | }; 10 | } 11 | -------------------------------------------------------------------------------- /nixos/modules/hardware/network/default.nix: -------------------------------------------------------------------------------- 1 | { lib, config, ... }: { 2 | config = lib.mkIf config.athena.baseConfiguration { 3 | networking.networkmanager.enable = true; 4 | services.vnstat.enable = true; 5 | users.users.${config.athena.homeManagerUser} = { 6 | extraGroups = [ "networkmanager" ]; 7 | }; 8 | }; 9 | } 10 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/assets/scalable/pie-chart.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /nixos/modules/dev/neovim/lua/user/lsp/settings/lua_ls.lua: -------------------------------------------------------------------------------- 1 | return { 2 | settings = { 3 | Lua = { 4 | diagnostics = { 5 | globals = { "vim" }, 6 | }, 7 | workspace = { 8 | library = { 9 | [vim.fn.expand("$VIMRUNTIME/lua")] = true, 10 | [vim.fn.stdpath("config") .. "/lua"] = true, 11 | }, 12 | }, 13 | }, 14 | }, 15 | } 16 | -------------------------------------------------------------------------------- /nixos/modules/dev/neovim/lua/user/copilot.lua: -------------------------------------------------------------------------------- 1 | local status_ok, copilot = pcall(require, "copilot") 2 | if not status_ok then 3 | return 4 | end 5 | 6 | copilot.setup { 7 | method = "getCompletionsCycling", 8 | cmp = { enabled = true }, 9 | suggestion = { enabled = false }, 10 | panel = { enabled = false }, 11 | ft_disable = { "markdown" }, 12 | } 13 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/xfce4-refined/panel/launcher-19/16972816909.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | Name=CyberChef 4 | Comment=The Cyber Swiss Army Knife 5 | Icon=cyberchef 6 | Exec=cyberchef 7 | Terminal=false 8 | Categories=Utility;Development; 9 | StartupWMClass=CyberChef 10 | X-XFCE-Source=file:///usr/share/applications/cyberchef.desktop 11 | -------------------------------------------------------------------------------- /nixos/modules/cyber/roles/blue.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | with pkgs; 4 | 5 | [ 6 | amass 7 | clamav 8 | cryptsetup 9 | ddrescue 10 | exploitdb 11 | ext4magic 12 | extundelete 13 | foremost 14 | fwbuilder 15 | ghidra 16 | netsniff-ng 17 | python313Packages.impacket 18 | recoverjpeg 19 | sleuthkit 20 | wapiti 21 | wireshark 22 | zap 23 | ] 24 | -------------------------------------------------------------------------------- /nixos/modules/hardware/bluetooth/default.nix: -------------------------------------------------------------------------------- 1 | { lib, config, ... }: { 2 | config = lib.mkIf config.athena.baseConfiguration { 3 | # Bluetooth 4 | services.blueman.enable = true; 5 | hardware.bluetooth = { 6 | enable = true; # enables support for Bluetooth 7 | powerOnBoot = true; # powers up the default Bluetooth controller on boot 8 | }; 9 | }; 10 | } 11 | -------------------------------------------------------------------------------- /nixos/modules/boot/systemd/default.nix: -------------------------------------------------------------------------------- 1 | { lib, config, ... }: { 2 | config = lib.mkIf (config.athena.bootloader == "systemd") { 3 | # Bootloader 4 | boot.loader = { 5 | efi.canTouchEfiVariables = true; 6 | efi.efiSysMountPoint = "/efi"; 7 | systemd-boot = { 8 | enable = true; 9 | configurationLimit = 5; 10 | }; 11 | }; 12 | }; 13 | } 14 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/xfce4-picom/xfconf/xfce-perchannel-xml/ristretto.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/xfce4-picom/xfconf/xfce-perchannel-xml/xfce4-settings-manager.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /nixos/home-manager/shells/powershell/default.nix: -------------------------------------------------------------------------------- 1 | { lib, config, pkgs, ... }: { 2 | # Needed to install at system-level to source their .zsh files in .zshrc 3 | environment.systemPackages = with pkgs; [ powershell ]; 4 | home-manager.users.${config.athena.homeManagerUser} = { 5 | xdg.configFile."powershell/Microsoft.PowerShell_profile.ps1".source = ./Microsoft.PowerShell_profile.ps1; 6 | }; 7 | } 8 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/xfce4-refined/panel/launcher-18/16972816788.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | Encoding=UTF-8 4 | Name=PowerShell 5 | Comment=PowerShell 6 | Icon=powershell 7 | Exec=exo-open --launch TerminalEmulator /usr/bin/bash -c 'pwsh' 8 | Terminal=false 9 | Categories=Tags;Describing;Application 10 | X-XFCE-Source=file:///usr/share/applications/powershell.desktop 11 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/xfce4-refined/panel/launcher-17/16972816637.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | Encoding=UTF-8 4 | Name=Fish Shell 5 | Comment=Fish Shell 6 | Icon=shell 7 | Exec=exo-open --launch TerminalEmulator 8 | Terminal=false 9 | Categories=Tags;Describing;Application 10 | X-XFCE-Source=file:///usr/share/applications/shell.desktop 11 | Path= 12 | StartupNotify=false 13 | -------------------------------------------------------------------------------- /nixos/modules/dev/neovim/lua/user/pretty-fold.lua: -------------------------------------------------------------------------------- 1 | local status_ok, prettyfold = pcall(require, "pretty-fold") 2 | if not status_ok then 3 | return 4 | end 5 | 6 | prettyfold.setup { 7 | keep_indentation = true, 8 | fill_char = ' ', 9 | sections = { 10 | left = { 11 | '+', function() return string.rep('-', vim.v.foldlevel) end, 12 | ' ', 'number_of_folded_lines', ':', 'content', 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/xfce4-picom/xfconf/xfce-perchannel-xml/xfce4-appfinder.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /nixos/pkgs/nist-feed/cron.patch: -------------------------------------------------------------------------------- 1 | --- a/nist-feed 2024-01-28 19:03:44.721621784 +0530 2 | +++ b/nist-feed 2024-01-28 19:07:35.724932362 +0530 3 | @@ -1,6 +1,6 @@ 4 | #!/bin/sh 5 | 6 | -pkill -f "/usr/bin/gjs /usr/share/gnome-shell/org.gnome.Shell.Notifications" 7 | +ps aux | grep gjs | awk '{print $2}' | xargs kill 8 | 9 | ############################################################ 10 | # Colors # 11 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/xfce4-picom/xfconf/xfce-perchannel-xml/keyboard-layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /nixos/modules/dev/neovim/lua/user/neotest.lua: -------------------------------------------------------------------------------- 1 | local status_ok, neotest = pcall(require, "neotest") 2 | if not status_ok then 3 | return 4 | end 5 | 6 | neotest.setup({ 7 | discovery = { 8 | enabled = false, 9 | }, 10 | quickfix = { 11 | enabled = true, 12 | open = false, 13 | }, 14 | adapters = { 15 | require('neotest-jest')({}), 16 | }, 17 | summary = { 18 | open = "topleft vsplit | vertical resize 50" 19 | } 20 | }) 21 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/xfce4-picom/xfconf/xfce-perchannel-xml/xfce4-settings-editor.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/eww/scripts/vol: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ## Get output volume with amixer 4 | get_vol() { 5 | amixer -D pulse sget Master | grep 'Left:' | awk -F'[][]' '{ print $2 }' | tr -d '%' 6 | } 7 | 8 | ## Microphone 9 | get_micro() { 10 | amixer -D pulse sget Capture | grep 'Left:' | awk -F'[][]' '{ print $2 }' | tr -d '%' 11 | } 12 | 13 | if [[ "$1" == "--vol" ]]; then 14 | get_vol 15 | elif [[ "$1" == "--micro" ]]; then 16 | get_micro 17 | fi 18 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/eww/sidebar/date.yuck: -------------------------------------------------------------------------------- 1 | (defwidget date [] 2 | (box :class "genwin" 3 | (box :orientation "v" 4 | :space-evenly "false" 5 | :halign "start" 6 | :valign "center" 7 | 8 | (label :text "${day}" 9 | :halign "start" 10 | :class "title") 11 | 12 | (label :text "${month} ${date}" 13 | :class "description" 14 | :halign "start") 15 | ) 16 | ) 17 | ) -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/eww/sidebar/pacman_updates.yuck: -------------------------------------------------------------------------------- 1 | (defwidget updates [] 2 | (box :class "genwin" 3 | (box :orientation "v" 4 | :space-evenly "false" 5 | :halign "start" 6 | :valign "center" 7 | (label :text "Updates" 8 | :halign "start" 9 | :class "title") 10 | (label :text "${UPDATES} available" 11 | :class "description" 12 | :halign "start") 13 | ) 14 | ) 15 | ) -------------------------------------------------------------------------------- /nixos/modules/dev/neovim/lua/user/indentline.lua: -------------------------------------------------------------------------------- 1 | local status_ok, indent_blankline = pcall(require, "ibl") 2 | if not status_ok then 3 | return 4 | end 5 | 6 | indent_blankline.setup { 7 | indent = { char = "▏" }, 8 | scope = { show_start = false, show_end = false }, 9 | exclude = { 10 | buftypes = { 11 | "nofile", 12 | "terminal", 13 | }, 14 | filetypes = { 15 | "help", 16 | "dashboard", 17 | "NvimTree", 18 | "packer", 19 | }, 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /nixos/modules/hardware/kernel/default.nix: -------------------------------------------------------------------------------- 1 | { lib, pkgs, config, ... }: { 2 | config = lib.mkIf config.athena.baseConfiguration { 3 | # If change kernel, remember to run 'sudo nixos-rebuild boot' and 'sudo reboot' 4 | boot = { 5 | kernelPackages = lib.mkDefault pkgs.linuxPackages; # LTS Kernel 6 | kernelModules = [ "rtl8821cu" ]; 7 | loader.grub.useOSProber = true; 8 | extraModulePackages = with config.boot.kernelPackages; [ vmware ]; /*vmware needed to install VMware Workstation software*/ 9 | }; 10 | }; 11 | } 12 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/bin/genmon-mem: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | MEM=$(printf "%.0f\n" $(free -m | grep Mem | awk '{print ($3/$2)*100}')) 4 | readonly FONTICON="\Uebe4" 5 | #readonly ICON="/usr/share/icons/assets/scalable/pie-chart.svg" 6 | 7 | # Panel 8 | #INFO="${ICON}" 9 | #INFO+="${MEM}%" 10 | INFO+="${FONTICON}\n${MEM}%" 11 | 12 | # Tooltip 13 | MORE_INFO="" 14 | MORE_INFO+="MEM Usage: ${MEM}%" 15 | MORE_INFO+="" 16 | 17 | # Panel Print 18 | echo -e "${INFO}" 19 | 20 | # Tooltip Print 21 | echo -e "${MORE_INFO}" 22 | -------------------------------------------------------------------------------- /nixos/modules/hardware/sound/default.nix: -------------------------------------------------------------------------------- 1 | { lib, pkgs, config, ... }: { 2 | config = lib.mkIf config.athena.baseConfiguration { 3 | users.users.${config.athena.homeManagerUser} = { extraGroups = [ "audio" ]; }; 4 | 5 | # Sound settings 6 | security.rtkit.enable = true; 7 | environment.systemPackages = with pkgs; [ pulseaudio ]; 8 | services.pulseaudio.enable = false; 9 | services.pipewire = { 10 | enable = true; 11 | alsa.enable = true; 12 | alsa.support32Bit = true; 13 | pulse.enable = true; 14 | wireplumber.enable = true; 15 | }; 16 | }; 17 | } 18 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/xfce4-refined/panel/launcher-21/169728172411.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | Encoding=UTF-8 4 | Name=FuzzDB 5 | Comment=FuzzDB 6 | Icon=athena-ike-scan 7 | Exec=exo-open --launch TerminalEmulator /usr/bin/bash -c "if test -d /usr/share/payloads/fuzzdb;then cd /usr/share/payloads/fuzzdb;$SHELL;else echo \\"FuzzDB not found. I'm retrieving it for you...\\";sudo pacman -S --noconfirm athena-fuzzdb;cd /usr/share/payloads/fuzzdb;$SHELL;fi;" 8 | Terminal=false 9 | Categories=Tags;Describing;Application 10 | X-XFCE-Source=file:///usr/share/applications/fuzzdb.desktop 11 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/xfce4-picom/xfconf/xfce-perchannel-xml/xfce4-notifyd.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/xfce4-picom/xfconf/xfce-perchannel-xml/xfce4-power-manager.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /nixos/modules/dev/neovim/init.lua: -------------------------------------------------------------------------------- 1 | require "user.options" 2 | require "user.keymaps" 3 | require "user.plugins" 4 | require "user.colorscheme" 5 | require "user.completion" 6 | require "user.telescope" 7 | require "user.treesitter" 8 | require "user.autopairs" 9 | require "user.git" 10 | require "user.nvim-tree" 11 | require "user.which-key" 12 | require "user.lualine" 13 | require "user.toggleterm" 14 | require "user.impatient" 15 | require "user.dashboard" 16 | require "user.pretty-fold" 17 | require "user.indentline" 18 | require "user.harpoon" 19 | require "user.neotest" 20 | require "user.lsp" 21 | require "user.dap" 22 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/eww/sidebar/memory.yuck: -------------------------------------------------------------------------------- 1 | (defwidget memory [] 2 | (box :class "genwin" 3 | :space-evenly "true" 4 | 5 | (box :orientation "v" 6 | :space-evenly "false" 7 | :valign "center" 8 | :halign "center" 9 | :spacing 15 10 | 11 | (label :text "Mem: ${MEM_USAGE}" 12 | :class "title") 13 | 14 | (box :class "res-circle" 15 | :valign "center" 16 | :halign "center" 17 | (circular-progress :class "res-mem" 18 | :value MEM_USAGE_PERC 19 | :thickness 4 20 | (label :class "res-circle-small" 21 | :text "") 22 | ) 23 | ) 24 | ) 25 | ) 26 | ) -------------------------------------------------------------------------------- /nixos/home-manager/desktops/none/default.nix: -------------------------------------------------------------------------------- 1 | { lib, pkgs, config, ... }: 2 | { 3 | config = lib.mkIf (config.athena.desktopManager == "none") { 4 | services.xserver.enable = lib.mkForce false; 5 | services.displayManager.enable = lib.mkForce false; 6 | services.flatpak.enable = lib.mkForce false; 7 | 8 | services.displayManager.gdm.enable = lib.mkForce false; 9 | services.displayManager.sddm.enable = lib.mkForce false; 10 | services.xserver.displayManager.lightdm.enable = lib.mkForce false; 11 | 12 | systemd.services.display-manager.enable = lib.mkForce false; 13 | systemd.defaultUnit = "multi-user.target"; 14 | }; 15 | } 16 | -------------------------------------------------------------------------------- /nixos/modules/dms/sddm/default.nix: -------------------------------------------------------------------------------- 1 | { lib, config, pkgs, ... }: { 2 | config = lib.mkIf (config.athena.displayManager == "sddm") { 3 | services.displayManager.sddm = { 4 | package = pkgs.kdePackages.sddm; 5 | enable = true; 6 | theme = "sddm-astronaut-theme"; 7 | wayland.enable = true; 8 | extraPackages = with pkgs; [ 9 | kdePackages.qtsvg 10 | kdePackages.qtmultimedia 11 | kdePackages.qtvirtualkeyboard 12 | ]; 13 | }; 14 | environment.systemPackages = with pkgs; [ 15 | (sddm-astronaut.override { 16 | embeddedTheme = config.athena.sddmTheme; 17 | }) 18 | ]; 19 | }; 20 | } 21 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/bin/genmon-datetime: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | #genmon script for displaying the time 4 | #displays date and time on the tooltip 5 | readonly FONTICON="\Uf43a" 6 | #readonly ICON="/usr/share/icons/assets/scalable/clock.svg" 7 | 8 | TIME=`date '+%H:%M'` 9 | DATE=$(echo "\uf073 ") 10 | DATE+=`date '+ %d %B %A %H:%M'` 11 | 12 | # Panel 13 | #INFO="${ICON}" 14 | #INFO+="${TIME}" 15 | INFO+="${FONTICON}\n${TIME}" 16 | 17 | # Tooltip 18 | MORE_INFO="" 19 | MORE_INFO+="${DATE}" 20 | MORE_INFO+="" 21 | 22 | # Panel Print 23 | echo -e "${INFO}" 24 | 25 | # Tooltip Print 26 | echo -e "${MORE_INFO}" 27 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/xfce4-refined/panel/launcher-15/16972816125.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | Encoding=UTF-8 4 | Name=SecLists 5 | Comment=SecLists 6 | Icon=athena-bettercap 7 | Exec=exo-open --launch TerminalEmulator /usr/bin/bash -c "if test -d /usr/share/payloads/SecLists; then cd /usr/share/payloads/SecLists;$SHELL;else echo \\"SecLists not found. I'm retrieving it for you...\\";sudo git clone https://github.com/danielmiessler/SecLists /usr/share/payloads/SecLists;cd /usr/share/payloads/SecLists;$SHELL;fi;" 8 | Terminal=false 9 | Categories=Tags;Describing;Application 10 | X-XFCE-Source=file:///usr/share/applications/seclists.desktop 11 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/xfce4-refined/panel/launcher-8/16972815053.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=mimikatz 3 | Encoding=UTF-8 4 | Exec=exo-open --launch TerminalEmulator /usr/bin/bash -c "if test -d /usr/share/windows/mimikatz;then cd /usr/share/windows/mimikatz;$SHELL;else echo \\"Mimikatz is not installed. I'm retrieving it for you...\\";sudo pacman -S --noconfirm mimikatz;cd /usr/share/windows/mimikatz;$SHELL;fi;" 5 | Icon=athena-mimikatz 6 | StartupNotify=false 7 | Terminal=false 8 | Type=Application 9 | Categories=10-maintaining-access;05-04-pass-hash; 10 | X-BlackArch-Package=mimikatz 11 | X-XFCE-Source=file:///usr/share/applications/athena-mimikatz.desktop 12 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/xfce4-refined/panel/launcher-9/16972810932.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | Encoding=UTF-8 4 | Name=Auto Wordlists 5 | Comment=Auto Wordlists 6 | Icon=athena-wordlists 7 | Exec=exo-open --launch TerminalEmulator /usr/bin/bash -c "if test -d /usr/share/payloads/Auto_Wordlists;then cd /usr/share/payloads/Auto_Wordlists;$SHELL;else echo \\"Auto Wordlists not found. I'm retrieving it for you...\\";sudo pacman -S --noconfirm athena-auto-wordlists;cd /usr/share/payloads/Auto_Wordlists;$SHELL;fi;" 8 | Terminal=false 9 | Categories=Tags;Describing;Application 10 | X-XFCE-Source=file:///usr/share/applications/autowordlists.desktop 11 | -------------------------------------------------------------------------------- /nixos/modules/hardware/virtualization/host.nix: -------------------------------------------------------------------------------- 1 | { lib, config, ... }: { 2 | config = lib.mkIf config.athena.baseConfiguration { 3 | programs.virt-manager.enable = lib.mkDefault false; 4 | virtualisation = { 5 | /* QEMU - Virt Manager */ 6 | libvirtd.enable = lib.mkDefault false; 7 | 8 | /*VMware Workstation software*/ 9 | vmware.host = { 10 | enable = false; 11 | extraConfig = '' 12 | # Allow unsupported device's OpenGL and Vulkan acceleration for guest vGPU 13 | mks.gl.allowUnsupportedDrivers = "TRUE" 14 | mks.vk.allowUnsupportedDevices = "TRUE" 15 | ''; 16 | }; 17 | }; 18 | }; 19 | } 20 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/xfce4-picom/desktop/icons.screen.latest.rc: -------------------------------------------------------------------------------- 1 | [xfdesktop-version-4.10.3+-rcfile_format] 2 | 4.10.3+=true 3 | 4 | [523b041b-1418-4174-8c97-4fefec7c570e] 5 | row=2 6 | col=0 7 | 8 | [389cd00b-93e7-45f3-bb9f-baac69272107] 9 | row=5 10 | col=0 11 | 12 | [dbeae0ca-f072-4e58-ab65-6cb1b79b3f9b] 13 | row=1 14 | col=0 15 | 16 | [2c266ed8-b8c4-4487-bb01-8919d9f7748d] 17 | row=4 18 | col=0 19 | 20 | [031a6f8c-c557-40ff-9fe4-3533a617960a] 21 | row=0 22 | col=0 23 | 24 | [843d60bb-b1b7-4508-b444-5a720eef7e1d] 25 | row=3 26 | col=0 27 | 28 | [Trash] 29 | row=6 30 | col=0 31 | 32 | [/] 33 | row=0 34 | col=1 35 | 36 | [/home/athena] 37 | row=1 38 | col=1 39 | 40 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/assets/scalable/cpu.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/xfce4-picom/desktop/icons.screen0-1904x1064.rc: -------------------------------------------------------------------------------- 1 | [xfdesktop-version-4.10.3+-rcfile_format] 2 | 4.10.3+=true 3 | 4 | [523b041b-1418-4174-8c97-4fefec7c570e] 5 | row=2 6 | col=0 7 | 8 | [389cd00b-93e7-45f3-bb9f-baac69272107] 9 | row=5 10 | col=0 11 | 12 | [dbeae0ca-f072-4e58-ab65-6cb1b79b3f9b] 13 | row=1 14 | col=0 15 | 16 | [2c266ed8-b8c4-4487-bb01-8919d9f7748d] 17 | row=4 18 | col=0 19 | 20 | [031a6f8c-c557-40ff-9fe4-3533a617960a] 21 | row=0 22 | col=0 23 | 24 | [843d60bb-b1b7-4508-b444-5a720eef7e1d] 25 | row=3 26 | col=0 27 | 28 | [Trash] 29 | row=6 30 | col=0 31 | 32 | [/] 33 | row=0 34 | col=1 35 | 36 | [/home/athena] 37 | row=1 38 | col=1 39 | 40 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/xfce4-picom/desktop/icons.screen0-3270x1064.rc: -------------------------------------------------------------------------------- 1 | [xfdesktop-version-4.10.3+-rcfile_format] 2 | 4.10.3+=true 3 | 4 | [523b041b-1418-4174-8c97-4fefec7c570e] 5 | row=2 6 | col=0 7 | 8 | [389cd00b-93e7-45f3-bb9f-baac69272107] 9 | row=5 10 | col=0 11 | 12 | [dbeae0ca-f072-4e58-ab65-6cb1b79b3f9b] 13 | row=1 14 | col=0 15 | 16 | [2c266ed8-b8c4-4487-bb01-8919d9f7748d] 17 | row=4 18 | col=0 19 | 20 | [031a6f8c-c557-40ff-9fe4-3533a617960a] 21 | row=0 22 | col=0 23 | 24 | [843d60bb-b1b7-4508-b444-5a720eef7e1d] 25 | row=3 26 | col=0 27 | 28 | [Trash] 29 | row=6 30 | col=0 31 | 32 | [/] 33 | row=0 34 | col=1 35 | 36 | [/home/athena] 37 | row=1 38 | col=1 39 | 40 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/eww/sidebar/battery.yuck: -------------------------------------------------------------------------------- 1 | (defwidget battery [] 2 | (box :class "genwin" 3 | :space-evenly "true" 4 | :orientation "v" 5 | 6 | (box :orientation "v" 7 | :space-evenly "false" 8 | :valign "center" 9 | :halign "center" 10 | :spacing 15 11 | 12 | (label :text "${BAT_PERCENTAGE}%, ${BAT_STATUS}" 13 | :class "title") 14 | 15 | (box :class "res-circle" 16 | :valign "center" 17 | :halign "center" 18 | (circular-progress :class "res-bat" 19 | :value BAT_PERCENTAGE 20 | :thickness 4 21 | (label :class "res-circle-small" 22 | :text "${BAT_ICON}") 23 | ) 24 | ) 25 | ) 26 | ) 27 | ) -------------------------------------------------------------------------------- /nixos/modules/dev/neovim/lua/user/harpoon.lua: -------------------------------------------------------------------------------- 1 | local status_ok, harpoon = pcall(require, "harpoon") 2 | if not status_ok then 3 | return 4 | end 5 | 6 | harpoon:setup({ 7 | settings = { 8 | ui_width_ratio = 0.3, 9 | save_on_toggle = true, 10 | } 11 | }) 12 | 13 | vim.keymap.set("n", "", function() harpoon:list():select(1) end) 14 | vim.keymap.set("n", "", function() harpoon:list():select(2) end) 15 | vim.keymap.set("n", "", function() harpoon:list():select(3) end) 16 | vim.keymap.set("n", "", function() harpoon:list():select(4) end) 17 | vim.keymap.set("n", "", function() harpoon:list():prev() end) 18 | vim.keymap.set("n", "", function() harpoon:list():next() end) 19 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/eww/scripts/uptime: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | get_uptime() { 4 | s=$(< /proc/uptime) 5 | s=${s/.*} 6 | 7 | d="$((s / 60 / 60 / 24)) days" 8 | h="$((s / 60 / 60 % 24)) hours" 9 | m="$((s / 60 % 60)) mins" 10 | 11 | # Remove plural if < 2. 12 | ((${d/ *} == 1)) && d=${d/s} 13 | ((${h/ *} == 1)) && h=${h/s} 14 | ((${m/ *} == 1)) && m=${m/s} 15 | 16 | # Hide empty fields. 17 | ((${d/ *} == 0)) && unset d 18 | ((${h/ *} == 0)) && unset h 19 | ((${m/ *} == 0)) && unset m 20 | 21 | uptime=${d:+$d, }${h:+$h, }$m 22 | uptime=${uptime%', '} 23 | uptime=${uptime:-$s secs} 24 | 25 | echo ${uptime} 26 | } 27 | 28 | get_uptime -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/xfce4-refined/panel/launcher-16/16972815964.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=powersploit 3 | Encoding=UTF-8 4 | Exec=exo-open --launch TerminalEmulator /usr/bin/bash -c "if test -d /usr/share/windows/powersploit;then cd /usr/share/windows/powersploit;$SHELL;else echo \\"Powersploit is not installed. I'm retrieving it for you...\\";sudo pacman -S --noconfirm powersploit;cd /usr/share/windows/powersploit;$SHELL;fi;" 5 | Icon=athena-powersploit 6 | StartupNotify=false 7 | Terminal=false 8 | Type=Application 9 | Categories=10-01-os-backdoors;10-maintaining-access; 10 | X-BlackArch-Package=powersploit 11 | X-XFCE-Source=file:///usr/share/applications/athena-powersploit.desktop 12 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/xfce4-refined/panel/launcher-10/16972816226.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | Encoding=UTF-8 4 | Name=PayloadsAllTheThings 5 | Comment=PayloadsAllTheThings 6 | Icon=athena-commix 7 | Exec=exo-open --launch TerminalEmulator /usr/bin/bash -c "if test -d /usr/share/payloads/PayloadsAllTheThings;then cd /usr/share/payloads/PayloadsAllTheThings;$SHELL;else echo \\"PayloadsAllTheThings not found. I'm retrieving it for you...\\";sudo pacman -S --noconfirm athena-payloadsallthethings;cd /usr/share/payloads/PayloadsAllTheThings;$SHELL;fi;" 8 | Terminal=false 9 | Categories=Tags;Describing;Application 10 | X-XFCE-Source=file:///usr/share/applications/payloadsallthethings.desktop 11 | -------------------------------------------------------------------------------- /nixos/hosts/locale/default.nix: -------------------------------------------------------------------------------- 1 | { lib, config, pkgs, ... }: { 2 | config = lib.mkIf config.athena.baseLocale { 3 | # Set your time zone. 4 | time.timeZone = "Europe/Zurich"; 5 | 6 | # Select internationalisation properties. 7 | i18n.defaultLocale = "en_US.UTF-8"; 8 | 9 | console = { 10 | earlySetup = true; 11 | font = "${pkgs.terminus_font}/share/consolefonts/ter-v24n.psf.gz"; 12 | packages = with pkgs; [ terminus_font ]; 13 | keyMap = "us"; 14 | }; 15 | 16 | # Configure keymap in X11 17 | services.xserver = { 18 | exportConfiguration = true; 19 | xkb = { 20 | layout = "us"; 21 | variant = ""; 22 | }; 23 | }; 24 | }; 25 | } 26 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/assets/archlinux.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/xfce4-refined/panel/launcher-20/169728170410.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | Encoding=UTF-8 4 | Name=Security Wordlist 5 | Comment=Security Wordlist 6 | Icon=athena-golismero 7 | Exec=exo-open --launch TerminalEmulator /usr/bin/bash -c "if test -d /usr/share/payloads/Security-Wordlist;then cd /usr/share/payloads/Security-Wordlist;$SHELL;else echo \\"Security Wordlist not found. I'm retrieving it for you...\\";sudo git clone https://github.com/DragonJAR/Security-Wordlist /usr/share/payloads/Security-Wordlist;cd /usr/share/payloads/Security-Wordlist;$SHELL;fi;" 8 | Terminal=false 9 | Categories=Tags;Describing;Application 10 | X-XFCE-Source=file:///usr/share/applications/securitywordlist.desktop 11 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/--feature-request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: "\U0001F4A1Feature request" 3 | about: Suggest an idea for this project 4 | title: "[ENHANCEMENT]:" 5 | labels: enhancement 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /nixos/installation/installation-cd-graphical-mate.nix: -------------------------------------------------------------------------------- 1 | # This module defines a NixOS installation CD that contains X11 and 2 | # XFCE. 3 | 4 | { pkgs, ... }: 5 | { 6 | imports = [ ./installation-cd-graphical-base.nix ]; 7 | 8 | isoImage.edition = "mate"; 9 | 10 | services.xserver = { 11 | enable = true; 12 | desktopManager = { 13 | mate.enable = true; 14 | }; 15 | displayManager = { 16 | lightdm.enable = true; 17 | autoLogin = { 18 | enable = true; 19 | user = "athena"; 20 | }; 21 | }; 22 | }; 23 | environment.pathsToLink = [ 24 | "/share/backgrounds" # TODO: https://github.com/NixOS/nixpkgs/issues/47173 25 | ]; 26 | environment.systemPackages = [ 27 | pkgs.xdg-user-dirs 28 | ]; 29 | } 30 | -------------------------------------------------------------------------------- /nixos/installation/installation-cd-graphical-xfce.nix: -------------------------------------------------------------------------------- 1 | # This module defines a NixOS installation CD that contains X11 and 2 | # XFCE. 3 | 4 | { pkgs, ... }: 5 | 6 | { 7 | imports = [ ./installation-cd-graphical-base.nix ]; 8 | 9 | isoImage.edition = "xfce"; 10 | 11 | environment.pathsToLink = [ 12 | "/share/backgrounds" # TODO: https://github.com/NixOS/nixpkgs/issues/47173 13 | ]; 14 | 15 | services.xserver = { 16 | enable = true; 17 | desktopManager = { 18 | xfce = { 19 | enable = true; 20 | enableScreensaver = false; 21 | }; 22 | }; 23 | displayManager = { 24 | lightdm.enable = true; 25 | autoLogin = { 26 | enable = true; 27 | user = "athena"; 28 | }; 29 | }; 30 | }; 31 | } -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/eww/scripts/mem: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Memory used by percentage 4 | mem_perc() { 5 | printf "%.0f\n" $(free -m | grep Mem | awk '{print ($3/$2)*100}') 6 | } 7 | 8 | # Memory used by value 9 | mem_val() { 10 | printf $(free -h --si | grep Mem | awk '{print($3)}') 11 | } 12 | 13 | # Swap 14 | swap_val() { 15 | printf $(free -h --si | grep Swap | awk '{print($3)}') 16 | } 17 | 18 | # Swap (Percentage) 19 | swap_perc() { 20 | printf "%.0f\n" $(free -m | grep Swap | awk '{print ($3/$2)*100}') 21 | } 22 | 23 | if [[ "$1" == "--mem_perc" ]]; then 24 | mem_perc 25 | elif [[ "$1" == "--mem_val" ]]; then 26 | mem_val 27 | elif [[ "$1" == "--swap_perc" ]]; then 28 | swap_perc 29 | elif [[ "$1" == "--swap_val" ]]; then 30 | swap_val 31 | fi -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/themes/everblush/xfwm4/themerc: -------------------------------------------------------------------------------- 1 | button_offset=3 2 | button_spacing=0 3 | 4 | show_app_icon=false 5 | 6 | full_width_title=true 7 | 8 | title_shadow_active=false 9 | title_shadow_inactive=false 10 | 11 | title_horizontal_offset=5 12 | title_vertical_offset_active=0 13 | title_vertical_offset_inactive=0 14 | 15 | active_text_color=#bbbbbb 16 | active_text_shadow_color=#bbbbbb 17 | 18 | inactive_text_color=#bbbbbb 19 | inactive_text_shadow_color=#bbbbbb 20 | 21 | shadow_delta_height=10 22 | shadow_delta_width=0 23 | shadow_delta_x=0 24 | shadow_delta_y=0 25 | shadow_opacity=75 26 | 27 | # button_layout 28 | # O = Option menu 29 | # T = Stick 30 | # H = hide 31 | # S = shade 32 | # M = maximize 33 | # C = close 34 | # | = title 35 | button_layout=|HMC -------------------------------------------------------------------------------- /nixos/home-manager/terminals/kitty/default.nix: -------------------------------------------------------------------------------- 1 | { lib, config, ... }: { 2 | config = lib.mkIf (config.athena.terminal == "kitty") { 3 | home-manager.users.${config.athena.homeManagerUser}.programs.kitty = { 4 | enable = true; 5 | settings = { 6 | font_family = "JetBrainsMono NF Medium"; 7 | bold_font = "JetBrainsMono NF Bold"; 8 | italic_font = "JetBrainsMono NF Italic"; 9 | bold_italic_font = "JetBrainsMono NF Bold Italic"; 10 | 11 | font_size = "12.0"; 12 | 13 | adjust_line_height = "92%"; 14 | 15 | scrollback_lines = 3000; 16 | 17 | macos_thicken_font = "0.3"; 18 | 19 | linux_display_server = "x11"; 20 | 21 | confirm_os_window_close = 0; 22 | }; 23 | }; 24 | }; 25 | } 26 | -------------------------------------------------------------------------------- /nixos/hosts/software/goofcord/default.nix: -------------------------------------------------------------------------------- 1 | { lib, config, pkgs, ... }: { 2 | config = lib.mkIf config.athena.baseSoftware { 3 | # For discord wayland pipewire screensharing 4 | nixpkgs.config.ungoogled-chromium.commandLineArgs = " 5 | --ozone-platform=auto 6 | --disable-features=UseChromeOSDirectVideoDecoder 7 | --enable-features=RunVideoCaptureServiceInBrowserProcess 8 | --disable-gpu-memory-buffer-compositor-resources 9 | --disable-gpu-memory-buffer-video-frames 10 | --enable-hardware-overlays 11 | "; 12 | 13 | /*nixpkgs.config.permittedInsecurePackages = [ 14 | "libtiff-4.0.3-opentoonz" 15 | "libxls-1.6.2" 16 | ];*/ 17 | 18 | environment.systemPackages = with pkgs; [ 19 | goofcord 20 | ]; 21 | }; 22 | } 23 | -------------------------------------------------------------------------------- /nixos/home-manager/shells/default.nix: -------------------------------------------------------------------------------- 1 | { lib, config, ... }: { 2 | imports = [ 3 | ./bash 4 | ./fish 5 | ./powershell 6 | ./zsh 7 | ]; 8 | 9 | config = lib.mkIf config.athena.baseConfiguration { 10 | home-manager.users.${config.athena.homeManagerUser} = { pkgs, ...}: { 11 | home.file.".bash_aliases".source = ./bash_aliases; 12 | # home.packages = with pkgs; [ 13 | # fastfetch 14 | # zoxide 15 | # ]; 16 | 17 | xdg.desktopEntries."shell" = { 18 | type = "Application"; 19 | name = "Shell"; 20 | comment = "Shell"; 21 | icon = "shell"; 22 | exec = "${config.athena.terminal}"; 23 | terminal = false; 24 | categories = [ "Application" "Utility" ]; 25 | }; 26 | }; 27 | }; 28 | } 29 | -------------------------------------------------------------------------------- /nixos/home-manager/home/default.nix: -------------------------------------------------------------------------------- 1 | { lib, config, ... }: { 2 | config = lib.mkIf config.athena.baseConfiguration { 3 | home-manager.users.${config.athena.homeManagerUser} = { pkgs, ...}: { 4 | # It copies "./config/menus/xfce-applications.menu" source file to the nix store, and then symlinks it to the location. 5 | xdg.configFile."menus/blue-applications.menu".source = ./config/menus/blue-applications.menu; 6 | xdg.configFile."menus/red-applications.menu".source = ./config/menus/red-applications.menu; 7 | xdg.configFile."menus/mitre-applications.menu".source = ./config/menus/mitre-applications.menu; 8 | xdg.configFile."kando/config.json".source = ./config/kando/config.json; 9 | xdg.configFile."kando/menus.json".source = ./config/kando/menus.json; 10 | }; 11 | }; 12 | } 13 | -------------------------------------------------------------------------------- /nixos/modules/dev/neovim/default.nix: -------------------------------------------------------------------------------- 1 | { lib, config, ... }: { 2 | config = lib.mkIf config.athena.baseConfiguration { 3 | home-manager.users.${config.athena.homeManagerUser} = { pkgs, ...}: { 4 | #home.packages = with pkgs; [ 5 | # gcc # during nixos-install on Arch seems to produce an error. To delete. 6 | # gnumake 7 | # nodejs 8 | # nodePackages.npm 9 | # vscode-extensions.ms-vscode.cpptools 10 | # vscode-extensions.vadimcn.vscode-lldb 11 | #]; 12 | programs = { 13 | neovim = { 14 | enable = true; 15 | viAlias = true; 16 | vimAlias = true; 17 | }; 18 | }; 19 | #xdg.configFile."nvim/lua".source = ./lua; 20 | #xdg.configFile."nvim/init.lua".source = ./init.lua; 21 | }; 22 | }; 23 | } 24 | -------------------------------------------------------------------------------- /nixos/modules/dev/neovim/lua/user/lsp/null-ls.lua: -------------------------------------------------------------------------------- 1 | local null_ls_status_ok, null_ls = pcall(require, "null-ls") 2 | if not null_ls_status_ok then 3 | return 4 | end 5 | 6 | local formatting = null_ls.builtins.formatting 7 | local organize_import_action = { 8 | method = null_ls.methods.CODE_ACTION, 9 | filetypes = { "javascript", "javascriptreact", "typescript", "typescriptreact" }, 10 | generator = { 11 | fn = function(_) 12 | return { 13 | { 14 | title = "Organize imports", 15 | action = function() 16 | vim.cmd [[OrganizeImports]] 17 | end 18 | } 19 | } 20 | end 21 | } 22 | } 23 | 24 | null_ls.register(organize_import_action) 25 | 26 | null_ls.setup({ 27 | debug = false, 28 | sources = { 29 | formatting.prettier, 30 | }, 31 | }) 32 | -------------------------------------------------------------------------------- /nixos/modules/cyber/roles/student.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | with pkgs; 4 | 5 | [ 6 | aircrack-ng 7 | binwalk 8 | burpsuite 9 | caido 10 | cewl 11 | crunch 12 | dirb 13 | dnsmasq 14 | edb 15 | enum4linux 16 | enum4linux-ng 17 | evil-winrm 18 | exploitdb 19 | ffuf 20 | fierce 21 | ghidra 22 | gobuster 23 | hashcat 24 | hashcat-utils 25 | hcxtools 26 | john 27 | kismet 28 | medusa 29 | metasploit 30 | mitmproxy 31 | nasm 32 | nikto 33 | nmap 34 | proxychains-ng 35 | pwncat 36 | python313Packages.pypykatz 37 | radare2 38 | responder 39 | social-engineer-toolkit 40 | sqlmap 41 | thc-hydra 42 | theharvester 43 | wafw00f 44 | wfuzz 45 | wifite2 46 | wireshark 47 | wpscan 48 | ### payloads and wordlists 49 | payloadsallthethings 50 | seclists 51 | ] 52 | -------------------------------------------------------------------------------- /nixos/modules/hardware/virtualization/guest.nix: -------------------------------------------------------------------------------- 1 | { lib, config, ... }: { 2 | config = lib.mkIf config.athena.baseConfiguration { 3 | # To not change upstream! It is managed by the installer 4 | services = { 5 | spice-vdagentd.enable = lib.mkDefault false; 6 | qemuGuest.enable = lib.mkDefault false; 7 | xe-guest-utilities.enable = lib.mkDefault false; 8 | }; 9 | 10 | virtualisation = { 11 | # VM guest additions to improve host-guest interaction 12 | vmware.guest.enable = lib.mkDefault true; 13 | hypervGuest.enable = lib.mkDefault false; 14 | # The VirtualBox guest additions rely on an out-of-tree kernel module 15 | # which lags behind kernel releases, potentially causing broken builds. 16 | virtualbox.guest.enable = lib.mkDefault false; 17 | }; 18 | }; 19 | } 20 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/eww/scripts/battery: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | BAT=`ls /sys/class/power_supply | grep BAT | head -n 1` 4 | dir="/sys/class/power_supply/${BAT}/status" 5 | 6 | # Battery percentage 7 | bat_perc() { 8 | cat /sys/class/power_supply/${BAT}/capacity 9 | } 10 | 11 | # Battery status 12 | bat_stat() { 13 | cat /sys/class/power_supply/${BAT}/status 14 | } 15 | 16 | # Icon indicating if device is charging or not 17 | # Requires icomoon feather font 18 | bat_icon() { 19 | read -r status < "$dir" 20 | if [ $status == "Discharging" ]; then 21 | printf ""; 22 | else 23 | printf ""; 24 | fi 25 | } 26 | 27 | if [[ "$1" == "--perc" ]]; then 28 | bat_perc 29 | elif [[ "$1" == "--stat" ]]; then 30 | bat_stat 31 | elif [[ "$1" == "--icon" ]]; then 32 | bat_icon 33 | fi -------------------------------------------------------------------------------- /nixos/modules/cyber/roles/forensic.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | with pkgs; 4 | 5 | [ 6 | acquire 7 | aesfix 8 | aeskeyfind 9 | afflib 10 | autopsy 11 | bmaptool 12 | bulk_extractor 13 | chainsaw 14 | chipsec 15 | chntpw 16 | dc3dd 17 | dcfldd 18 | ddrescue 19 | dmg2img 20 | exiftool 21 | fatcat 22 | file 23 | firefox_decrypt 24 | foremost 25 | hstsparser 26 | libewf 27 | libpst 28 | mac-robber 29 | # https://github.com/NixOS/nixpkgs/issues/425426 30 | # mdbtools 31 | ms-sys 32 | # networkminer 33 | ntfs3g 34 | oletools 35 | osquery 36 | pdf-parser 37 | pev 38 | pngcheck 39 | prowler 40 | recoverjpeg 41 | regripper 42 | safecopy 43 | scalpel 44 | sleuthkit 45 | snort 46 | tell-me-your-secrets 47 | testdisk 48 | tracee 49 | usbrip 50 | volatility3 51 | ] 52 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/assets/scalable/ghost.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /nixos/modules/misc/dunst/default.nix: -------------------------------------------------------------------------------- 1 | { lib, config, ... }: { 2 | config = lib.mkIf config.athena.baseConfiguration { 3 | home-manager.users.${config.athena.homeManagerUser} = {pkgs, ...}: { 4 | services.dunst = { 5 | enable = true; 6 | settings = { 7 | global = { 8 | background = "#285577"; 9 | timeout = 20; 10 | width = "(300, 600)"; 11 | height = 500; 12 | origin = "top-center"; 13 | notification_limit = 0; 14 | font = "Monospace 12"; 15 | format = "%s\\n%b"; 16 | corner_radius = 20; 17 | force_xwayland = true; 18 | mouse_left_click = "open_url, close_current"; 19 | mouse_middle_click = "close_current"; 20 | default_icon = "./icons/cve.png"; 21 | }; 22 | }; 23 | }; 24 | }; 25 | }; 26 | } 27 | 28 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/eww/sidebar/profile.yuck: -------------------------------------------------------------------------------- 1 | (defwidget profile [] 2 | (box :class "genwin profile" 3 | (box :orientation "h" 4 | :valign "center" 5 | :halign "start" 6 | :space-evenly "false" 7 | :spacing 17 8 | 9 | (box :class "profile-picture" 10 | :height 48 11 | :width 48 12 | ) 13 | 14 | (box :orientation "v" 15 | :space-evenly "false" 16 | :valign "center" 17 | 18 | (label :text "Hello ${username} !" 19 | :class "username" 20 | :halign "start" 21 | ) 22 | 23 | (label :text "Uptime: ${uptime}" 24 | :class "extra-info" 25 | :halign "start" 26 | ) 27 | ) 28 | ) 29 | ) 30 | ) -------------------------------------------------------------------------------- /nixos/modules/dev/neovim/lua/user/git.lua: -------------------------------------------------------------------------------- 1 | local status_ok, gitsigns = pcall(require, "gitsigns") 2 | if not status_ok then 3 | return 4 | end 5 | 6 | local git_blame_status_ok, gitblame = pcall(require, "gitblame") 7 | if not git_blame_status_ok then 8 | return 9 | end 10 | 11 | gitsigns.setup { 12 | signs = { 13 | add = { hl = 'GitSignsAdd' , text = "▎", numhl='GitSignsAddNr' , linehl='GitSignsAddLn' }, 14 | change = { hl = 'GitSignsChange', text = "▎", numhl='GitSignsChangeNr', linehl='GitSignsChangeLn' }, 15 | delete = { hl = 'GitSignsDelete', text = "󰐊", numhl='GitSignsDeleteNr', linehl='GitSignsDeleteLn' }, 16 | topdelete = { hl = 'GitSignsDelete', text = "󰐊", numhl='GitSignsDeleteNr', linehl='GitSignsDeleteLn' }, 17 | changedelete = { hl = 'GitSignsChange', text = "▎", numhl='GitSignsChangeNr', linehl='GitSignsChangeLn' }, 18 | }, 19 | } 20 | 21 | gitblame.setup{ 22 | enabled = false 23 | } 24 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/eww/sidebar/weather.yuck: -------------------------------------------------------------------------------- 1 | (defwidget weather [] 2 | (box :class "genwin weather" 3 | (box :orientation "v" 4 | :space-evenly "false" 5 | 6 | (box :orientation "v" 7 | :space-evenly "false" 8 | 9 | (button :class "reload" 10 | :onclick "scripts/weather_reload" 11 | (label :text "" 12 | :halign "end")) 13 | 14 | (label :class "location" 15 | :wrap "true" 16 | :text " ${location}" 17 | :halign "start" 18 | ) 19 | 20 | (label :class "description" 21 | :text "${tempt}°C" 22 | :halign "start" 23 | ) 24 | 25 | (label :class "title" 26 | :wrap "true" 27 | :text descr 28 | :halign "start" 29 | ) 30 | ) 31 | 32 | (box :halign "end" 33 | :valign "end" 34 | (label :class "weathicon" 35 | :text "${weathericon} " 36 | ) 37 | ) 38 | ) 39 | ) 40 | ) -------------------------------------------------------------------------------- /nixos/home-manager/desktops/gnome/config/menus/applications-merged/gnome-applications.menu: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | Applications 6 | /etc/xdg/menus/gnome-applications.menu 7 | X-GNOME-Menu-Applications.directory 8 | 9 | 10 | 11 | 12 | 13 | Blue Team 14 | 00-blue-team.directory 15 | ../blue-applications.menu 16 | 17 | 18 | 19 | Red Team 20 | 00-red-team.directory 21 | ../red-applications.menu 22 | 23 | 24 | 25 | MITRE 26 | 00-mitre-menu.directory 27 | ../mitre-applications.menu 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /nixos/modules/dev/neovim/lua/user/dap/vscode-js.lua: -------------------------------------------------------------------------------- 1 | local dap_status_ok, dap = pcall(require, "dap") 2 | if not dap_status_ok then 3 | return 4 | end 5 | 6 | dap.adapters["pwa-node"] = { 7 | type = "server", 8 | host = "localhost", 9 | port = "${port}", 10 | executable = { 11 | command = vim.fn.exepath "js-debug-adapter", 12 | args = { "${port}" }, 13 | }, 14 | } 15 | 16 | for _, language in ipairs({ "typescript", "javascript" }) do 17 | dap.configurations[language] = { 18 | { 19 | name = "Debug watch:node", 20 | request = "launch", 21 | runtimeArgs = { 22 | "watch:node" 23 | }, 24 | runtimeExecutable = "yarn", 25 | skipFiles = { 26 | "/**" 27 | }, 28 | type = "pwa-node", 29 | envFile = "${workspaceFolder}/.env.local", 30 | rootPath = "${workspaceFolder}", 31 | cwd = "${workspaceFolder}", 32 | console = "integratedTerminal", 33 | internalConsoleOptions = "neverOpen", 34 | }, 35 | } 36 | end 37 | -------------------------------------------------------------------------------- /nixos/pkgs/athena-config-nix/package.nix: -------------------------------------------------------------------------------- 1 | { lib 2 | , stdenvNoCC 3 | , fetchFromGitHub 4 | , pciutils 5 | , bash 6 | }: 7 | 8 | stdenvNoCC.mkDerivation (finalAttrs: { 9 | pname = "athena-config-nix"; 10 | version = "0-unstable-2025-10-19"; 11 | 12 | src = fetchFromGitHub { 13 | owner = "Athena-OS"; 14 | repo = "athena-config-nix"; 15 | rev = "6ef682395584a264bb1bc576ecc90b8671320386"; 16 | hash = "sha256-c8WjYlsUX+FbFHnsTGrNpl79ZX8nJerlrbCJCwj8dyQ="; 17 | }; 18 | 19 | buildInputs = [ pciutils ]; 20 | 21 | postPatch = '' 22 | patchShebangs athena-motd shell-rocket troubleshoot 23 | ''; 24 | 25 | installPhase = '' 26 | mkdir -p $out/{bin,share} 27 | cp -r bin/* $out/bin/ 28 | cp -r share/* $out/share/ 29 | ''; 30 | 31 | meta = with lib; { 32 | description = "Athena OS environment files"; 33 | homepage = "https://github.com/Athena-OS/athena-config-nix"; 34 | maintainers = with maintainers; [ d3vil0p3r ]; 35 | platforms = platforms.unix; 36 | license = licenses.gpl3Plus; 37 | }; 38 | }) 39 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/kde/config/menus/applications-merged/applications-kmenuedit.menu: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | Applications 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | Blue Team 17 | 00-blue-team.directory 18 | ../blue-applications.menu 19 | 20 | 21 | 22 | Red Team 23 | 00-red-team.directory 24 | ../red-applications.menu 25 | 26 | 27 | 28 | MITRE 29 | 00-mitre-menu.directory 30 | ../mitre-applications.menu 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /nixos/modules/hardware/default.nix: -------------------------------------------------------------------------------- 1 | { lib, config, ... }: { 2 | imports = [ 3 | ./bluetooth 4 | ./kernel 5 | ./network 6 | ./sound 7 | ./virtualization 8 | ]; 9 | 10 | config = lib.mkIf config.athena.baseConfiguration { 11 | # KDE complains if power management is disabled (to be precise, if 12 | # there is no power management backend such as upower). 13 | powerManagement = { 14 | enable = true; 15 | cpuFreqGovernor = "performance"; 16 | }; 17 | 18 | services = { 19 | hardware.bolt.enable = true; 20 | printing.enable = false; 21 | timesyncd.enable = true; 22 | libinput.enable = true; 23 | }; 24 | 25 | zramSwap.enable = true; 26 | hardware = { 27 | cpu.intel.updateMicrocode = true; # To not change upstream! It is managed by the installer 28 | bluetooth.enable = true; 29 | #enableAllFirmware = true; # Need allowUnfree = true 30 | enableRedistributableFirmware = true; 31 | graphics = { 32 | enable = true; 33 | }; 34 | }; 35 | }; 36 | } 37 | -------------------------------------------------------------------------------- /nixos/modules/cyber/roles/bugbounty.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | with pkgs; 4 | 5 | [ 6 | amass 7 | arjun 8 | assetfinder 9 | burpsuite 10 | caido 11 | cewl 12 | chaos 13 | commix 14 | crlfuzz 15 | crunch 16 | dalfox 17 | detect-secrets 18 | dirb 19 | dirstalk 20 | dnsx 21 | exploitdb 22 | feroxbuster 23 | ffuf 24 | # https://github.com/NixOS/nixpkgs/issues/425366 25 | # findomain 26 | gau 27 | gitleaks 28 | gobuster 29 | gospider 30 | gowitness 31 | graphqlmap 32 | hakrawler 33 | httpx 34 | jaeles 35 | joomscan 36 | jwt-hack 37 | knockpy 38 | masscan 39 | metasploit 40 | naabu 41 | nikto 42 | nmap 43 | nosqli 44 | nuclei 45 | psudohash 46 | pwncat 47 | python313Packages.httpx 48 | # python313Packages.patator # marked as broken 49 | rustscan 50 | sqlmap 51 | subfinder 52 | thc-hydra 53 | theharvester 54 | trufflehog 55 | wafw00f 56 | webanalyze 57 | wfuzz 58 | whatweb 59 | whispers 60 | wpscan 61 | ### payloads and wordlists 62 | payloadsallthethings 63 | seclists 64 | ] 65 | -------------------------------------------------------------------------------- /nixos/modules/dev/neovim/lua/user/autopairs.lua: -------------------------------------------------------------------------------- 1 | -- Setup nvim-cmp. 2 | local status_ok, npairs = pcall(require, "nvim-autopairs") 3 | if not status_ok then 4 | return 5 | end 6 | 7 | npairs.setup { 8 | check_ts = true, 9 | ts_config = { 10 | lua = { "string", "source" }, 11 | javascript = { "string", "template_string" }, 12 | java = false, 13 | }, 14 | disable_filetype = { "TelescopePrompt", "spectre_panel" }, 15 | fast_wrap = { 16 | map = "", 17 | chars = { "{", "[", "(", '"', "'" }, 18 | pattern = string.gsub([[ [%'%"%)%>%]%)%}%,] ]], "%s+", ""), 19 | offset = 0, -- Offset from pattern match 20 | end_key = "$", 21 | keys = "qwertyuiopzxcvbnmasdfghjkl", 22 | check_comma = true, 23 | highlight = "PmenuSel", 24 | highlight_grey = "LineNr", 25 | }, 26 | } 27 | 28 | local cmp_autopairs = require "nvim-autopairs.completion.cmp" 29 | local cmp_status_ok, cmp = pcall(require, "cmp") 30 | if not cmp_status_ok then 31 | return 32 | end 33 | cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done { map_char = { tex = "" } }) 34 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/eww/sidebar/disk.yuck: -------------------------------------------------------------------------------- 1 | (defwidget disk [] 2 | (box :class "genwin" 3 | :orientation "h" 4 | :space-evenly false 5 | 6 | (box :orientation "v" 7 | :halign "center" 8 | :valign "center" 9 | :space-evenly false 10 | :class "disk-usage-box" 11 | :spacing 5 12 | (label :text "" 13 | :class "disk-usage-icon") 14 | (label :text "${DISK_USAGE} " 15 | :class "disk-usage-value") 16 | ) 17 | 18 | (box :orientation "v" 19 | :halign "center" 20 | :valign "center" 21 | :class "dirs" 22 | 23 | (button :onclick "scripts/opendir --path ~/" 24 | (label :text " → ~/Home" 25 | :halign "start")) 26 | (button :onclick "scripts/opendir --path ~/Downloads" 27 | (label :text " → ~/Downloads" 28 | :halign "start")) 29 | (button :onclick "scripts/opendir --path ~/.config" 30 | (label :text " → ~/.config" 31 | :halign "start")) 32 | ) 33 | ) 34 | ) 35 | -------------------------------------------------------------------------------- /nixos/modules/dev/neovim/lua/user/lsp/settings/tsserver.lua: -------------------------------------------------------------------------------- 1 | local function organize_imports() 2 | local params = { 3 | command = "_typescript.organizeImports", 4 | arguments = {vim.api.nvim_buf_get_name(0)}, 5 | title = "" 6 | } 7 | vim.lsp.buf.execute_command(params) 8 | end 9 | 10 | return { 11 | root_dir = function(...) 12 | return require("lspconfig.util").root_pattern(".git")(...) 13 | end, 14 | settings = { 15 | typescript = { 16 | inlayHints = { 17 | includeInlayEnumMemberValueHints = true, 18 | includeInlayFunctionLikeReturnTypeHints = true, 19 | includeInlayFunctionParameterTypeHints = true, 20 | includeInlayParameterNameHints = "all", -- 'none' | 'literals' | 'all'; 21 | includeInlayParameterNameHintsWhenArgumentMatchesName = true, 22 | includeInlayPropertyDeclarationTypeHints = true, 23 | includeInlayVariableTypeHints = true, 24 | }, 25 | }, 26 | }, 27 | commands = { 28 | OrganizeImports = { 29 | organize_imports, 30 | description = "Organize Imports" 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /nixos/pkgs/aegis-nix/package.nix: -------------------------------------------------------------------------------- 1 | { lib 2 | , rustPlatform 3 | , fetchFromGitHub 4 | , stdenv 5 | , darwin 6 | , openssl 7 | }: 8 | 9 | rustPlatform.buildRustPackage { 10 | pname = "aegis-nix"; 11 | version = "0-unstable-2024-02-05"; 12 | 13 | src = fetchFromGitHub { 14 | owner = "Athena-OS"; 15 | repo = "aegis-nix"; 16 | rev = "63c85ebea16663324db45e26707e9dbc2a57fd00"; 17 | hash = "sha256-6wYWtSDGnqWz5elbXq2GoxpJl4MDBq1r7S6KnmmsH+U="; 18 | }; 19 | 20 | cargoHash = "sha256-B/vJh9ii90klnlDxAmIkkVqfa9tDjkJqFF61kIh+RhM="; 21 | 22 | buildInputs = lib.optionals stdenv.isDarwin [ 23 | darwin.apple_sdk.frameworks.Security 24 | ]; 25 | 26 | postPatch = '' 27 | substituteInPlace src/functions/users.rs \ 28 | --replace "\"openssl\"" "\"${openssl}/bin/openssl\"" 29 | ''; 30 | 31 | meta = with lib; { 32 | description = "Aegis - secure, rust-based installer back-end for Athena OS"; 33 | mainProgram = "athena-aegis"; 34 | homepage = "https://github.com/Athena-OS/aegis-nix"; 35 | license = licenses.gpl3Plus; 36 | maintainers = with maintainers; [ d3vil0p3r ]; 37 | }; 38 | } -------------------------------------------------------------------------------- /nixos/home-manager/desktops/cinnamon/config/menus/applications-merged/cinnamon-applications.menu: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | Applications 7 | cinnamon-menu-applications.directory 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | Blue Team 18 | 00-blue-team.directory 19 | ../blue-applications.menu 20 | 21 | 22 | 23 | Red Team 24 | 00-red-team.directory 25 | ../red-applications.menu 26 | 27 | 28 | 29 | MITRE 30 | 00-mitre-menu.directory 31 | ../mitre-applications.menu 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Athena OS 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/xfce4-picom/xfconf/xfce-perchannel-xml/thunar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /nixos/hosts/software/default.nix: -------------------------------------------------------------------------------- 1 | { lib, config, pkgs, ... }: 2 | let 3 | utilities = with pkgs; [ 4 | asciinema 5 | bat 6 | bfetch 7 | bind 8 | cmatrix 9 | cowsay 10 | cyberchef 11 | figlet 12 | file 13 | fortune 14 | ghex 15 | gparted 16 | htb-toolkit 17 | hw-probe 18 | imagemagick 19 | kando 20 | lolcat 21 | lsd 22 | mesa-demos 23 | ncdu 24 | netcat-openbsd 25 | nixpkgs-review 26 | nyancat 27 | openvpn 28 | orca 29 | pciutils 30 | pfetch 31 | python3 32 | sl 33 | toilet 34 | tree 35 | unzip 36 | wget 37 | xclip 38 | xcp 39 | zoxide 40 | ]; 41 | 42 | devel = with pkgs; [ 43 | # cargo 44 | # gcc 45 | # jq 46 | # killall 47 | # python3 48 | ]; 49 | 50 | exploits = with pkgs; [ 51 | #powersploit 52 | ]; 53 | 54 | wordlists = with pkgs; [ 55 | #seclists 56 | ]; 57 | in 58 | { 59 | #imports = [ 60 | # ./goofcord 61 | #]; 62 | 63 | config = lib.mkIf config.athena.baseSoftware { 64 | environment.systemPackages = devel ++ utilities ++ exploits ++ wordlists; 65 | }; 66 | } 67 | -------------------------------------------------------------------------------- /nixos/modules/cyber/roles/mobile.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | with pkgs; 4 | 5 | [ 6 | amoco 7 | apkid 8 | apkleaks 9 | apktool 10 | binwalk 11 | bsdiff 12 | capstone 13 | cargo-ndk 14 | ctypes_sh 15 | cutter 16 | cutterPlugins.rz-ghidra 17 | dex2jar 18 | edb 19 | eresi 20 | flasm 21 | frida-tools 22 | ghidra 23 | ghost 24 | # https://github.com/NixOS/nixpkgs/issues/425348 25 | # hopper 26 | iaito 27 | jadx 28 | jsbeautifier 29 | kalibrate-rtl 30 | # Marked as broken 31 | # klee 32 | lief 33 | pe-bear 34 | pev 35 | pwntools 36 | # https://github.com/NixOS/nixpkgs/issues/425357 37 | # python313Packages.angrop 38 | python313Packages.distorm3 39 | python313Packages.frida-python 40 | python313Packages.pwntools 41 | python313Packages.pyaxmlparser 42 | python313Packages.pyjsparser 43 | quark-engine 44 | radare2 45 | # https://github.com/NixOS/nixpkgs/issues/466575 46 | # retdec 47 | rizin 48 | rizinPlugins.rz-ghidra 49 | # https://github.com/NixOS/nixpkgs/issues/425430 50 | # scanmem 51 | # swftools # Insecure 52 | udis86 53 | # qtwebengine deps is insecure 54 | # vivisect 55 | ] 56 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/default.nix: -------------------------------------------------------------------------------- 1 | # In XFCE module, home.nix is used to set if implementing xfce.refined or xfce.picom 2 | { lib, pkgs, config, ... }: { 3 | config = lib.mkIf (config.athena.desktopManager == "xfce") { 4 | # ---- System Configuration ---- 5 | services.xserver = { 6 | enable = true; 7 | desktopManager = { 8 | xfce = { 9 | enable = true; 10 | enableScreensaver = false; 11 | }; 12 | }; 13 | }; 14 | 15 | programs.xfconf.enable = true; 16 | environment = { 17 | pathsToLink = [ "/share/backgrounds" ]; # TODO: https://github.com/NixOS/nixpkgs/issues/47173 18 | systemPackages = with pkgs.xfce; [ 19 | xfce4-cpugraph-plugin 20 | xfce4-docklike-plugin 21 | xfce4-genmon-plugin 22 | xfce4-pulseaudio-plugin 23 | xfce4-settings 24 | xfce4-whiskermenu-plugin 25 | ]; 26 | }; 27 | 28 | # ---- Home Configuration ---- 29 | home-manager.users.${config.athena.homeManagerUser} = { pkgs, ...}: { 30 | imports = [ 31 | ./xfce.nix 32 | ]; 33 | 34 | _module.args.theme = config.athena.theme; 35 | athena.desktops.xfce.refined = true; 36 | }; 37 | }; 38 | } 39 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/mate/config/menus/applications-merged/mate-applications.menu: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | Applications 7 | /etc/xdg/menus/mate-applications.menu 8 | mate-menu-applications.directory 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | applications-merged 17 | 18 | 19 | Blue Team 20 | 00-blue-team.directory 21 | ../blue-applications.menu 22 | 23 | 24 | 25 | Red Team 26 | 00-red-team.directory 27 | ../red-applications.menu 28 | 29 | 30 | 31 | MITRE 32 | 00-mitre-menu.directory 33 | ../mitre-applications.menu 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /nixos/modules/cyber/roles/cracker.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | with pkgs; 4 | 5 | [ 6 | aesfix 7 | aeskeyfind 8 | aespipe 9 | ares-rs 10 | # https://github.com/NixOS/nixpkgs/issues/468666 11 | # asleap 12 | bkcrack 13 | bruteforce-luks 14 | brutespray 15 | bully 16 | cewl 17 | chntpw 18 | cmospwd 19 | cowpatty 20 | crackle 21 | crackql 22 | crowbar 23 | dislocker 24 | fcrackzip 25 | gnutls 26 | gomapenum 27 | hash_extender 28 | hash-identifier 29 | hashcat 30 | hashdeep 31 | hashpump 32 | hashrat 33 | hcxtools 34 | john 35 | johnny 36 | jwt-hack 37 | katana 38 | kerbrute 39 | libargon2 40 | libbde 41 | libgcrypt 42 | medusa 43 | mfoc 44 | # https://github.com/NixOS/nixpkgs/issues/425354 45 | # ncrack 46 | onesixtyone 47 | pdfcrack 48 | phrasendrescher 49 | pixiewps 50 | psudohash 51 | python313Packages.myjwt 52 | # python313Packages.patator # marked as broken 53 | python313Packages.pypykatz 54 | rarcrack 55 | reaverwps-t6x 56 | sha1collisiondetection 57 | snow 58 | spiped 59 | ssdeep 60 | sslscan 61 | testssl 62 | thc-hydra 63 | truecrack 64 | veracrypt 65 | wifite2 66 | xortool 67 | ### payloads and wordlists 68 | payloadsallthethings 69 | seclists 70 | ] 71 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/xfce4-picom/panel/xfce4-clipman-actions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Bugz 5 | bug\s*#?\s*([0-9]+) 6 | 0 7 | 8 | 9 | GNOME Bug 10 | exo-open http://bugzilla.gnome.org/show_bug.cgi?id=\1 11 | 12 | 13 | Xfce Bug 14 | exo-open http://bugzilla.xfce.org/show_bug.cgi?id=\1 15 | 16 | 17 | 18 | 19 | Image 20 | (http|ftp).+\.(jpg|png|gif) 21 | 0 22 | 23 | 24 | View with Ristretto 25 | ristretto "\0" 26 | 27 | 28 | Edit with Gimp 29 | gimp-remote "\0" 30 | 31 | 32 | 33 | 34 | Long URL 35 | http://[^\s]{120,} 36 | 0 37 | 38 | 39 | Shrink the URL 40 | exo-open http://tinyurl.com/create.php?url=\0 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /nixos/home-manager/home/config/kando/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "locale": "auto", 3 | "menuTheme": "neon-lights", 4 | "darkMenuTheme": "rainbow-labels", 5 | "menuThemeColors": { 6 | "neon-lights": { 7 | "glow-color": "rgba(255, 140, 210, 1)" 8 | } 9 | }, 10 | "darkMenuThemeColors": {}, 11 | "enableDarkModeForMenuThemes": false, 12 | "soundTheme": "none", 13 | "soundVolume": 0.5, 14 | "sidebarVisible": false, 15 | "ignoreWriteProtectedConfigFiles": false, 16 | "trayIconFlavor": "color", 17 | "enableVersionCheck": true, 18 | "zoomFactor": 1.5, 19 | "menuOptions": { 20 | "centerDeadZone": 50, 21 | "minParentDistance": 150, 22 | "dragThreshold": 15, 23 | "fadeInDuration": 150, 24 | "fadeOutDuration": 200, 25 | "enableMarkingMode": true, 26 | "enableTurboMode": true, 27 | "hoverModeNeedsConfirmation": false, 28 | "gestureMinStrokeLength": 150, 29 | "gestureMinStrokeAngle": 20, 30 | "gestureJitterThreshold": 10, 31 | "gesturePauseTimeout": 100, 32 | "fixedStrokeLength": 0, 33 | "rmbSelectsParent": false, 34 | "gamepadBackButton": 1, 35 | "gamepadCloseButton": 2 36 | }, 37 | "editorOptions": { 38 | "showSidebarButtonVisible": true, 39 | "showEditorButtonVisible": true 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/eww/sidebar/system.yuck: -------------------------------------------------------------------------------- 1 | (defwidget system [] 2 | (box :class "genwin system" 3 | 4 | (box :orientation "v" 5 | :halign "center" 6 | :valign "center" 7 | :spacing 12 8 | 9 | (box :orientation "h" 10 | :space-evenly "false" 11 | (label :class "volume-icon" 12 | :text " ") 13 | (scale :min 0 14 | :max 101 15 | :value volume 16 | :orientation "h" 17 | :onchange "amixer -D pulse sset Master {}%" 18 | :class "volbar" 19 | ) 20 | ) 21 | 22 | (box :orientation "h" 23 | :space-evenly "false" 24 | (label :class "brightness-icon" 25 | :text " ") 26 | (scale :min 0 27 | :max 101 28 | :value brightness 29 | :orientation "h" 30 | :onchange "brightnessctl set {}%" 31 | :class "bribar" 32 | ) 33 | ) 34 | 35 | (box :orientation "h" 36 | :space-evenly "false" 37 | (label :class "mic-icon" 38 | :text " ") 39 | (scale :min 0 40 | :max 101 41 | :value micro 42 | :orientation "h" 43 | :onchange "amixer -D pulse sset Capture {}%" 44 | :class "micbar" 45 | ) 46 | ) 47 | ) 48 | ) 49 | ) -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/assets/scalable/power-button.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 9 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /nixos/pkgs/nist-feed/package.nix: -------------------------------------------------------------------------------- 1 | { stdenv 2 | , lib 3 | , fetchFromGitHub 4 | , makeWrapper 5 | , bash 6 | , jq 7 | , killall 8 | , libnotify 9 | , cron 10 | }: 11 | 12 | stdenv.mkDerivation rec { 13 | pname = "nist-feed"; 14 | version = "0-unstable-2024-01-20"; 15 | 16 | src = fetchFromGitHub { 17 | owner = "D3vil0p3r"; 18 | repo = "NIST-Feed"; 19 | rev = "775bd871490b680784a1855cdc1d4958a83a7866"; 20 | hash = "sha256-OcVf766q7vELYkGOEzQMLS6zH8Nn96ibGP+6kizHN28="; 21 | }; 22 | 23 | patches = [ 24 | ./cron.patch 25 | ]; 26 | 27 | buildInputs = [ bash ]; 28 | nativeBuildInputs = [ makeWrapper ]; 29 | 30 | postPatch = '' 31 | substituteInPlace nist-feed \ 32 | --replace "/usr/local/bin/nist-feed" $out/bin/nist-feed 33 | ''; 34 | 35 | installPhase = '' 36 | runHook preInstall 37 | install -Dm755 nist-feed -D $out/bin/nist-feed 38 | wrapProgram "$out/bin/nist-feed" \ 39 | --prefix PATH : "$out/bin:${lib.makeBinPath [ jq killall libnotify cron ]}" 40 | runHook postInstall 41 | ''; 42 | 43 | meta = with lib; { 44 | description = "NIST NVD feed and popup notifications"; 45 | homepage = "https://github.com/D3vil0p3r/NIST-Feed/"; 46 | license = licenses.gpl3Plus; 47 | maintainers = with maintainers; [ octodi ]; 48 | mainProgram = "nist-feed"; 49 | }; 50 | } 51 | -------------------------------------------------------------------------------- /flake.lock: -------------------------------------------------------------------------------- 1 | { 2 | "nodes": { 3 | "home-manager": { 4 | "inputs": { 5 | "nixpkgs": [ 6 | "nixpkgs" 7 | ] 8 | }, 9 | "locked": { 10 | "lastModified": 1737762889, 11 | "narHash": "sha256-5HGG09bh/Yx0JA8wtBMAzt0HMCL1bYZ93x4IqzVExio=", 12 | "owner": "nix-community", 13 | "repo": "home-manager", 14 | "rev": "daf04c5950b676f47a794300657f1d3d14c1a120", 15 | "type": "github" 16 | }, 17 | "original": { 18 | "owner": "nix-community", 19 | "ref": "master", 20 | "repo": "home-manager", 21 | "type": "github" 22 | } 23 | }, 24 | "nixpkgs": { 25 | "locked": { 26 | "lastModified": 1737746512, 27 | "narHash": "sha256-nU6AezEX4EuahTO1YopzueAXfjFfmCHylYEFCagduHU=", 28 | "owner": "NixOS", 29 | "repo": "nixpkgs", 30 | "rev": "825479c345a7f806485b7f00dbe3abb50641b083", 31 | "type": "github" 32 | }, 33 | "original": { 34 | "owner": "NixOS", 35 | "ref": "nixos-unstable", 36 | "repo": "nixpkgs", 37 | "type": "github" 38 | } 39 | }, 40 | "root": { 41 | "inputs": { 42 | "home-manager": "home-manager", 43 | "nixpkgs": "nixpkgs" 44 | } 45 | } 46 | }, 47 | "root": "root", 48 | "version": 7 49 | } 50 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/eww/scripts/cpu: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ## Files and Data 4 | PREV_TOTAL=0 5 | PREV_IDLE=0 6 | cpuFile="/tmp/.cpu_usage" 7 | 8 | ## Get CPU usage 9 | get_cpu() { 10 | if [[ -f "${cpuFile}" ]]; then 11 | fileCont=$(cat "${cpuFile}") 12 | PREV_TOTAL=$(echo "${fileCont}" | head -n 1) 13 | PREV_IDLE=$(echo "${fileCont}" | tail -n 1) 14 | fi 15 | 16 | CPU=(`cat /proc/stat | grep '^cpu '`) # Get the total CPU statistics. 17 | unset CPU[0] # Discard the "cpu" prefix. 18 | IDLE=${CPU[4]} # Get the idle CPU time. 19 | 20 | # Calculate the total CPU time. 21 | TOTAL=0 22 | 23 | for VALUE in "${CPU[@]:0:4}"; do 24 | let "TOTAL=$TOTAL+$VALUE" 25 | done 26 | 27 | if [[ "${PREV_TOTAL}" != "" ]] && [[ "${PREV_IDLE}" != "" ]]; then 28 | # Calculate the CPU usage since we last checked. 29 | let "DIFF_IDLE=$IDLE-$PREV_IDLE" 30 | let "DIFF_TOTAL=$TOTAL-$PREV_TOTAL" 31 | let "DIFF_USAGE=(1000*($DIFF_TOTAL-$DIFF_IDLE)/$DIFF_TOTAL+5)/10" 32 | echo "${DIFF_USAGE}" 33 | else 34 | echo "?" 35 | fi 36 | 37 | # Remember the total and idle CPU times for the next check. 38 | echo "${TOTAL}" > "${cpuFile}" 39 | echo "${IDLE}" >> "${cpuFile}" 40 | } 41 | 42 | get_cpu -------------------------------------------------------------------------------- /nixos/modules/dev/vscodium/default.nix: -------------------------------------------------------------------------------- 1 | { lib, config, ... }: 2 | { 3 | # To run VSCodium in Wayland 4 | #environment.sessionVariables.NIXOS_OZONE_WL = "1"; 5 | 6 | config = lib.mkIf config.athena.baseConfiguration { 7 | home-manager.users.${config.athena.homeManagerUser} = { pkgs, ...}: { 8 | programs.vscode = { 9 | enable = true; 10 | package = pkgs.vscodium; 11 | profiles.default.extensions = with pkgs.vscode-extensions; [ 12 | bbenoist.nix 13 | pkief.material-icon-theme 14 | ]; 15 | # In case extensions are not loaded, refer to https://github.com/nix-community/home-manager/issues/3507 16 | profiles.default.userSettings = { 17 | "workbench.iconTheme" = "material-icon-theme"; 18 | "window.dialogStyle" = "custom"; 19 | "window.titleBarStyle" = "custom"; 20 | "editor.fontFamily" = "JetBrains Mono, Consolas, 'Courier New', monospace"; 21 | "editor.fontSize" = 12; 22 | "editor.fontWeight" = 300; 23 | "editor.lineHeight" = 20; 24 | "editor.letterSpacing" = 0.5; 25 | "editor.fontLigatures" = true; 26 | "editor.wordWrap" = "on"; 27 | "editor.formatOnPaste" = true; 28 | "editor.cursorBlinking" = "smooth"; 29 | }; 30 | }; 31 | }; 32 | }; 33 | } 34 | -------------------------------------------------------------------------------- /nixos/pkgs/themes/athena-gruvbox-base/package.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | stdenvNoCC, 4 | fetchFromGitHub, 5 | }: 6 | 7 | stdenvNoCC.mkDerivation (finalAttrs: { 8 | pname = "athena-gruvbox-base"; 9 | version = "0-unstable-2025-10-05"; 10 | 11 | src = fetchFromGitHub { 12 | owner = "Athena-OS"; 13 | repo = "athena-gruvbox-base"; 14 | rev = "f00878d501f2bd5b422401f843da006e592bca36"; 15 | hash = "sha256-BfFaF19wFFGWUljcddOv4LgVUwJPIdkg+K93yGh5PJg="; 16 | }; 17 | 18 | postPatch = '' 19 | substituteInPlace gnome-background-properties/*.xml \ 20 | --replace-fail /usr/share/backgrounds $out/share/backgrounds 21 | ''; 22 | 23 | installPhase = '' 24 | mkdir -p $out/share/{icons/hicolor/scalable/{apps,categories},backgrounds/athena,gnome-background-properties} 25 | cp -r icons/apps/* $out/share/icons/hicolor/scalable/apps/ 26 | cp -r icons/categories/* $out/share/icons/hicolor/scalable/categories/ 27 | cp -r wallpapers/cyborg-gruv.png $out/share/backgrounds/athena/ 28 | cp -r gnome-background-properties/cyborg-gruv.xml $out/share/gnome-background-properties/ 29 | ''; 30 | 31 | meta = with lib; { 32 | description = "Gruvbox colorbase resources"; 33 | homepage = "https://github.com/Athena-OS/athena-gruvbox-base"; 34 | maintainers = with maintainers; [ d3vil0p3r ]; 35 | platforms = platforms.unix; 36 | license = licenses.gpl3Plus; 37 | }; 38 | }) 39 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/bin/xfce-init: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | detect_virt=$(systemd-detect-virt) 4 | 5 | if ([ ! -z "$DISPLAY" ] && [ "$DISPLAY" != ":0" ]) || ([ "$detect_virt" != "docker" ] && [ "$detect_virt" != "podman" ] && [ "$detect_virt" != "wsl" ]); then 6 | 7 | FLAGFILE="$HOME/.flag-xfce-once" 8 | #FLAGNET="$HOME/.flag-xfce-net-once" 9 | 10 | if [ -f "$FLAGFILE" ]; then 11 | 12 | ############################################################ 13 | 14 | xdg-mime default org.gnome.Nautilus.desktop inode/directory 15 | 16 | ############################################################ 17 | 18 | sh ~/.vim_runtime/install_awesome_parameterized.sh ~/.vim_runtime $USER 19 | 20 | theme-switcher -a 21 | 22 | rm -rf "$FLAGFILE" 23 | 24 | systemctl --user enable --now psd 25 | fi 26 | 27 | #if ping -q -c 1 -W 1 8.8.8.8 >/dev/null; then 28 | # if [ -f "$FLAGNET" ]; then 29 | # # Commented for keeping nist-feed disable. The user decides if enable it. 30 | # # /usr/local/bin/nist-feed -n -l 31 | # rm -rf "$FLAGNET" 32 | # fi 33 | # /usr/local/bin/htb-update 34 | #fi 35 | 36 | #If tun0 is down (i.e., after a reboot), the shell prompt must be updated with the running interfaces 37 | #if ! nmcli c show --active | grep -q tun ; then 38 | 39 | # /usr/local/bin/prompt-reset 40 | 41 | #fi 42 | fi -------------------------------------------------------------------------------- /nixos/modules/misc/nist-feed/default.nix: -------------------------------------------------------------------------------- 1 | { config, lib, pkgs, ... }: with lib; let 2 | cfg = config.services.nist-feed; 3 | nistFeedPkg = pkgs.callPackage ../../../pkgs/nist-feed/package.nix { }; 4 | in { 5 | options = { 6 | services.nist-feed = { 7 | enable = mkEnableOption (lib.mdDoc "NIST Feed notifies you about the newest published CVEs according your filters. Keep updated with the latest CVEs according your preferences!"); 8 | arguments = mkOption { 9 | type = types.str; 10 | default = "-l -s CRITICAL"; 11 | }; 12 | }; 13 | }; 14 | 15 | config = lib.mkIf (config.athena.baseConfiguration && cfg.enable) { 16 | systemd.user = { 17 | services.nist-feed = { 18 | wantedBy = [ "default.target" ]; 19 | description = "NIST-Feed notifies you about the newest published CVEs according your filters. Keep updated with the latest CVEs according your preferences!"; 20 | path = [ pkgs.curl pkgs.busybox ]; 21 | serviceConfig = { 22 | Type = "oneshot"; 23 | ExecStart = "${nistFeedPkg}/bin/nist-feed ${cfg.arguments}"; 24 | }; 25 | }; 26 | 27 | timers.nist-feed = { 28 | wantedBy = [ "default.target" ]; 29 | description = "NIST-Feed timer"; 30 | timerConfig = { 31 | Unit = "nist-feed.service"; 32 | OnCalendar = "*:0/30"; 33 | Persistent = "true"; 34 | }; 35 | }; 36 | }; 37 | }; 38 | } 39 | -------------------------------------------------------------------------------- /docs/templates/nixpkgs-python-standalone.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | fetchFromGitHub, 4 | python3, 5 | python3Packages, 6 | makeWrapper, 7 | }: 8 | 9 | python3Packages.buildPythonApplication rec { 10 | pname = "NAME"; 11 | version = "VERSION"; 12 | pyproject = false; 13 | 14 | src = fetchFromGitHub { 15 | owner = "OWNER"; 16 | repo = "REPO"; 17 | rev = "v${version}"; 18 | hash = "sha256-8MOpbyw4HEJMcv84bNkNLBSZfEmIm3RDSUi0s62t9ko="; 19 | }; 20 | 21 | nativeBuildInputs = [ makeWrapper ]; 22 | 23 | propagatedBuildInputs = with python3Packages; [ 24 | whatever 25 | ]; 26 | 27 | installPhase = '' 28 | runHook preInstall 29 | mkdir -p $out/{bin,share/whatever} 30 | rm README.md requirements.txt LICENSE.md 31 | cp -a * $out/share/whatever/ 32 | makeWrapper ${python3}/bin/python $out/bin/whatever \ 33 | --add-flags "$out/share/whatever/NAME.py" \ 34 | --prefix PYTHONPATH : ${python3Packages.makePythonPath propagatedBuildInputs} 35 | runHook postInstall 36 | ''; 37 | 38 | meta = { 39 | description = "Short description"; 40 | homepage = "HOMEPAGE URL"; 41 | license = lib.licenses.whatever; # https://github.com/NixOS/nixpkgs/blob/master/lib/licenses.nix 42 | mainProgram = "PROGRAM"; 43 | maintainers = with lib.maintainers; [ whatever ]; # https://github.com/NixOS/nixpkgs/tree/master/maintainers 44 | platforms = lib.platforms.whatever; # https://github.com/NixOS/nixpkgs/blob/master/lib/systems/platforms.nix 45 | }; 46 | } 47 | -------------------------------------------------------------------------------- /nixos/pkgs/aegis-tui/package.nix: -------------------------------------------------------------------------------- 1 | { lib 2 | , stdenvNoCC 3 | , fetchFromGitHub 4 | , makeWrapper 5 | , gum 6 | , openssl 7 | }: 8 | 9 | stdenvNoCC.mkDerivation { 10 | pname = "aegis-tui"; 11 | version = "0-unstable-2024-04-14"; 12 | 13 | src = fetchFromGitHub { 14 | owner = "Athena-OS"; 15 | repo = "aegis-tui"; 16 | rev = "781333647f29b54d99c7203bfd275d80a69d2ca6"; 17 | hash = "sha256-xjBQT4E0w6y1FPUEqZiFRHcKmAQnlZHxE7vudWIiDRc="; 18 | }; 19 | 20 | nativeBuildInputs = [ makeWrapper ]; 21 | 22 | postPatch = '' 23 | patchShebangs aegis-tui 24 | substituteInPlace aegis-tui \ 25 | --replace gum ${lib.getExe gum} \ 26 | --replace openssl ${lib.getExe openssl} \ 27 | --replace /usr/share/aegis-tui $out/share/aegis-tui \ 28 | --replace /usr/share/aegis-tui/keymaps $out/share/aegis-tui/keymaps \ 29 | --replace /usr/share/aegis-tui/locales $out/share/aegis-tui/locales 30 | ''; 31 | 32 | installPhase = '' 33 | runHook preInstall 34 | mkdir -p $out/{bin,share/aegis-tui} 35 | cp aegis-tui keymaps locales $out/share/aegis-tui/ 36 | makeWrapper $out/share/aegis-tui/aegis-tui $out/bin/aegis-tui 37 | runHook postInstall 38 | ''; 39 | 40 | meta = with lib; { 41 | description = "Aegis - secure, rust-based installer back-end for Athena OS"; 42 | mainProgram = "aegis-tui"; 43 | homepage = "https://github.com/Athena-OS/aegis-tui"; 44 | license = licenses.gpl3Plus; 45 | maintainers = with maintainers; [ d3vil0p3r ]; 46 | }; 47 | } 48 | -------------------------------------------------------------------------------- /nixos/pkgs/themes/athena-blue-base/package.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | stdenvNoCC, 4 | fetchFromGitHub, 5 | }: 6 | 7 | stdenvNoCC.mkDerivation (finalAttrs: { 8 | pname = "athena-blue-base"; 9 | version = "0-unstable-2025-10-05"; 10 | 11 | src = fetchFromGitHub { 12 | owner = "Athena-OS"; 13 | repo = "athena-blue-base"; 14 | rev = "b2623c3d7a1e5966511958eff8d4f491c2183a71"; 15 | hash = "sha256-uDByU9EvaVQqZi8qe56K657fGbgidZEkpTH4WShRHsU="; 16 | }; 17 | 18 | postPatch = '' 19 | substituteInPlace gnome-background-properties/*.xml \ 20 | --replace-fail /usr/share/backgrounds $out/share/backgrounds 21 | ''; 22 | 23 | installPhase = '' 24 | mkdir -p $out/share/{icons/hicolor/scalable/{apps,categories},backgrounds/athena,gnome-background-properties} 25 | cp -r icons/apps/* $out/share/icons/hicolor/scalable/apps/ 26 | cp -r icons/categories/* $out/share/icons/hicolor/scalable/categories/ 27 | cp -r wallpapers/arch-ascii.png $out/share/backgrounds/athena/ 28 | cp -r wallpapers/nix-behind.png $out/share/backgrounds/athena/ 29 | cp -r gnome-background-properties/arch-ascii.xml $out/share/gnome-background-properties/ 30 | cp -r gnome-background-properties/nix-behind.xml $out/share/gnome-background-properties/ 31 | ''; 32 | 33 | meta = with lib; { 34 | description = "Blue colorbase resources"; 35 | homepage = "https://github.com/Athena-OS/athena-blue-base"; 36 | maintainers = with maintainers; [ d3vil0p3r ]; 37 | platforms = platforms.unix; 38 | license = licenses.gpl3Plus; 39 | }; 40 | }) 41 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/xfce4-picom/terminal/terminalrc: -------------------------------------------------------------------------------- 1 | [Configuration] 2 | MiscAlwaysShowTabs=FALSE 3 | MiscBell=FALSE 4 | MiscBordersDefault=TRUE 5 | MiscCursorBlinks=TRUE 6 | MiscCursorShape=TERMINAL_CURSOR_SHAPE_UNDERLINE 7 | MiscDefaultGeometry=78x23 8 | MiscInheritGeometry=FALSE 9 | MiscMenubarDefault=FALSE 10 | MiscMouseAutohide=FALSE 11 | MiscToolbarDefault=FALSE 12 | MiscConfirmClose=TRUE 13 | MiscCycleTabs=TRUE 14 | MiscTabCloseButtons=TRUE 15 | MiscTabCloseMiddleClick=TRUE 16 | MiscTabPosition=GTK_POS_TOP 17 | MiscHighlightUrls=TRUE 18 | ScrollingLines=999999 19 | BackgroundMode=TERMINAL_BACKGROUND_TRANSPARENT 20 | BackgroundDarkness=1.000000 21 | MiscBellUrgent=FALSE 22 | MiscMouseWheelZoom=TRUE 23 | MiscMiddleClickOpensUri=FALSE 24 | MiscCopyOnSelect=FALSE 25 | MiscShowRelaunchDialog=TRUE 26 | MiscRewrapOnResize=TRUE 27 | MiscUseShiftArrowsToScroll=FALSE 28 | MiscSlimTabs=FALSE 29 | MiscNewTabAdjacent=FALSE 30 | MiscSearchDialogOpacity=100 31 | MiscShowUnsafePasteDialog=TRUE 32 | ColorForeground=#dcdcdc 33 | ColorBackground=#2c2c2c 34 | ScrollingBar=TERMINAL_SCROLLBAR_NONE 35 | FontName=JetBrainsMono Nerd Font 10 36 | ColorCursor=#dcdcdc 37 | ColorPalette=rgb(34,41,43);rgb(224,110,110);rgb(140,207,126);rgb(229,199,107);rgb(108,208,202);rgb(196,127,213);rgb(103,176,232);rgb(179,185,184);rgb(112,144,128);rgb(220,163,163);rgb(114,213,163);rgb(240,223,175);rgb(148,191,243);rgb(236,147,211);rgb(147,224,227);rgb(255,255,255) 38 | ColorUseTheme=TRUE 39 | DefaultWorkingDir=$HOME/Desktop 40 | MiscRightClickAction=TERMINAL_RIGHT_CLICK_ACTION_CONTEXT_MENU 41 | 42 | -------------------------------------------------------------------------------- /nixos/pkgs/themes/athena-green-base/package.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | stdenvNoCC, 4 | fetchFromGitHub, 5 | }: 6 | 7 | stdenvNoCC.mkDerivation (finalAttrs: { 8 | pname = "athena-green-base"; 9 | version = "0-unstable-2025-10-05"; 10 | 11 | src = fetchFromGitHub { 12 | owner = "Athena-OS"; 13 | repo = "athena-green-base"; 14 | rev = "9f2ea3afc96e21fed96f5663606b8b1b9c3240fd"; 15 | hash = "sha256-gCA1duRkIYA72SFF4oN2hhbz7zQEHd0ukTur281ddog="; 16 | }; 17 | 18 | postPatch = '' 19 | substituteInPlace gnome-background-properties/*.xml \ 20 | --replace-fail /usr/share/backgrounds $out/share/backgrounds 21 | ''; 22 | 23 | installPhase = '' 24 | mkdir -p $out/share/{icons/hicolor/scalable/{apps,categories},backgrounds/athena,gnome-background-properties} 25 | cp -r icons/apps/* $out/share/icons/hicolor/scalable/apps/ 26 | cp -r icons/categories/* $out/share/icons/hicolor/scalable/categories/ 27 | cp -r wallpapers/hackthebox.png $out/share/backgrounds/athena/ 28 | cp -r wallpapers/nix-hackthebox.png $out/share/backgrounds/athena/ 29 | cp -r gnome-background-properties/hackthebox.xml $out/share/gnome-background-properties/ 30 | cp -r gnome-background-properties/nix-hackthebox.xml $out/share/gnome-background-properties/ 31 | ''; 32 | 33 | meta = with lib; { 34 | description = "Green colorbase resources"; 35 | homepage = "https://github.com/Athena-OS/athena-green-base"; 36 | maintainers = with maintainers; [ d3vil0p3r ]; 37 | platforms = platforms.unix; 38 | license = licenses.gpl3Plus; 39 | }; 40 | }) 41 | -------------------------------------------------------------------------------- /nixos/pkgs/themes/athena-purple-base/package.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | stdenvNoCC, 4 | fetchFromGitHub, 5 | }: 6 | 7 | stdenvNoCC.mkDerivation (finalAttrs: { 8 | pname = "athena-purple-base"; 9 | version = "0-unstable-2025-10-05"; 10 | 11 | src = fetchFromGitHub { 12 | owner = "Athena-OS"; 13 | repo = "athena-purple-base"; 14 | rev = "f47a7b38d3603ee39ec997e8693462719790de12"; 15 | hash = "sha256-iXbgzo4gllRGwE12FgK7pPeHsjppZw2+2IOp7dltZk4="; 16 | }; 17 | 18 | postPatch = '' 19 | substituteInPlace gnome-background-properties/*.xml \ 20 | --replace-fail /usr/share/backgrounds $out/share/backgrounds 21 | ''; 22 | 23 | installPhase = '' 24 | mkdir -p $out/share/{icons/hicolor/scalable/{apps,categories},backgrounds/athena,gnome-background-properties} 25 | cp -r icons/apps/* $out/share/icons/hicolor/scalable/apps/ 26 | cp -r icons/categories/* $out/share/icons/hicolor/scalable/categories/ 27 | cp -r wallpapers/neon-circle.png $out/share/backgrounds/athena/ 28 | cp -r wallpapers/nix-neon-circle.png $out/share/backgrounds/athena/ 29 | cp -r gnome-background-properties/neon-circle.xml $out/share/gnome-background-properties/ 30 | cp -r gnome-background-properties/nix-neon-circle.xml $out/share/gnome-background-properties/ 31 | ''; 32 | 33 | meta = with lib; { 34 | description = "Purple colorbase resources"; 35 | homepage = "https://github.com/Athena-OS/athena-purple-base"; 36 | maintainers = with maintainers; [ d3vil0p3r ]; 37 | platforms = platforms.unix; 38 | license = licenses.gpl3Plus; 39 | }; 40 | }) 41 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/axyl/dunst.nix: -------------------------------------------------------------------------------- 1 | { 2 | global = { 3 | font = "JetBrainsMono Nerd Font 10"; 4 | markup = "full"; 5 | format = "%s\n%b"; 6 | sort = "no"; 7 | indicate_hidden = "yes"; 8 | alignment = "left"; 9 | show_age_threshold = 60; 10 | word_wrap = "yes"; 11 | ignore_newline = "no"; 12 | stack_duplicates = false; 13 | hide_duplicate_count = "yes"; 14 | geometry = "280x50-10+44"; 15 | shrink = "no"; 16 | idle_threshold = 120; 17 | monitor = 0; 18 | follow = "mouse"; 19 | sticky_history = "yes"; 20 | history_length = 20; 21 | show_indicators = "no"; 22 | line_height = 4; 23 | separator_height = 4; 24 | padding = 20; 25 | horizontal_padding = 20; 26 | separator_color = "auto"; 27 | startup_notification = true; 28 | browser = "x-www-browser -new-tab"; 29 | always_run_script = true; 30 | title = "Dunst"; 31 | class = "Dunst"; 32 | icon_position = "left"; 33 | max_icon_size = 48; 34 | frame_width = 2; 35 | }; 36 | 37 | shortcuts = { 38 | close = "ctrl+shift+space"; 39 | close_all = "ctrl+shift+space"; 40 | history = "ctrl+grave"; 41 | context = "ctrl+shift+period"; 42 | }; 43 | 44 | urgency_low = { 45 | frame_color = "#7aa2f7"; 46 | background = "#1a1b26"; 47 | foreground = "#7aa2f7"; 48 | timeout = 5; 49 | }; 50 | 51 | urgency_normal = { 52 | frame_color = "#444b6a"; 53 | foreground = "#a9b1d6"; 54 | }; 55 | 56 | urgency_critical = { 57 | frame_color = "#f7768e"; 58 | foreground = "#f7768e"; 59 | }; 60 | } -------------------------------------------------------------------------------- /nixos/modules/dev/neovim/lua/user/telescope.lua: -------------------------------------------------------------------------------- 1 | local status_ok, telescope = pcall(require, "telescope") 2 | if not status_ok then 3 | return 4 | end 5 | 6 | local actions = require "telescope.actions" 7 | 8 | vim.api.nvim_set_keymap('v', '', 'y:Telescope live_grep default_text=0',{ noremap = true, silent = true }) 9 | 10 | telescope.setup { 11 | pickers = { 12 | find_files = { 13 | previewer = false, 14 | hidden = true 15 | }, 16 | colorscheme = { 17 | enable_preview = true, 18 | }, 19 | }, 20 | extensions_list = { "themes", "terms" }, 21 | defaults = { 22 | prompt_prefix = " ", 23 | selection_caret = " ", 24 | path_display = { "smart" }, 25 | file_ignore_patterns = { "node_modules" }, 26 | mappings = { 27 | i = { 28 | [""] = actions.move_selection_next, 29 | [""] = actions.move_selection_previous, 30 | [""] = actions.close, 31 | [""] = actions.cycle_history_next, 32 | [""] = actions.cycle_history_prev, 33 | [""] = actions.send_to_qflist + actions.open_qflist, 34 | [""] = actions.select_default, 35 | }, 36 | n = { 37 | ["j"] = actions.move_selection_next, 38 | ["k"] = actions.move_selection_previous, 39 | [""] = actions.send_to_qflist + actions.open_qflist, 40 | [""] = actions.select_horizontal, 41 | [""] = actions.select_vertical, 42 | }, 43 | }, 44 | }, 45 | } 46 | 47 | -- Enable telescope fzf native, if installed 48 | pcall(telescope.load_extension, 'fzf') 49 | -------------------------------------------------------------------------------- /nixos/pkgs/themes/athena-red-base/package.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | stdenvNoCC, 4 | fetchFromGitHub, 5 | }: 6 | 7 | stdenvNoCC.mkDerivation (finalAttrs: { 8 | pname = "athena-red-base"; 9 | version = "0-unstable-2025-10-05"; 10 | 11 | src = fetchFromGitHub { 12 | owner = "Athena-OS"; 13 | repo = "athena-red-base"; 14 | rev = "c73ed607e5dd78a94ae2b869cd397d9e0fb1cddf"; 15 | hash = "sha256-YjRSnucrD48ZKl+fR9c2tnuQ/7xP6RbZKRB+1c+MK7s="; 16 | }; 17 | 18 | postPatch = '' 19 | substituteInPlace gnome-background-properties/*.xml \ 20 | --replace-fail /usr/share/backgrounds $out/share/backgrounds 21 | ''; 22 | 23 | installPhase = '' 24 | mkdir -p $out/share/{icons/hicolor/scalable/{apps,categories},backgrounds/athena,gnome-background-properties} 25 | cp -r icons/apps/* $out/share/icons/hicolor/scalable/apps/ 26 | cp -r icons/categories/* $out/share/icons/hicolor/scalable/categories/ 27 | cp -r wallpapers/akame.png $out/share/backgrounds/athena/ 28 | cp -r wallpapers/murasame.png $out/share/backgrounds/athena/ 29 | cp -r wallpapers/redmoon.png $out/share/backgrounds/athena/ 30 | cp -r gnome-background-properties/akame.xml $out/share/gnome-background-properties/ 31 | cp -r gnome-background-properties/murasame.xml $out/share/gnome-background-properties/ 32 | cp -r gnome-background-properties/redmoon.xml $out/share/gnome-background-properties/ 33 | ''; 34 | 35 | meta = with lib; { 36 | description = "Red colorbase resources"; 37 | homepage = "https://github.com/Athena-OS/athena-red-base"; 38 | maintainers = with maintainers; [ d3vil0p3r ]; 39 | platforms = platforms.unix; 40 | license = licenses.gpl3Plus; 41 | }; 42 | }) 43 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/bin/i3lock-everblush: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Thanks to: i3lock-solarized (https://github.com/parsiad/i3lock-solarized) 3 | 4 | # Colors 5 | alpha='dd' 6 | base03='#181f21' 7 | base02='#22292b' 8 | base01='#b3b9b8' 9 | base00='#dadada' 10 | base0='#b3b9b8' 11 | base1='#dadada' 12 | base2='#dfdfdf' 13 | base3='#e3e3e3' 14 | yellow='#e5c76b' 15 | red='#e06e6e' 16 | magenta='#c47fd5' 17 | blue='#67b0e8' 18 | cyan='#6cd0ca' 19 | green='#8ccf7e' 20 | 21 | 22 | font='Roboto' 23 | 24 | 25 | # Main command 26 | i3lock \ 27 | --insidever-color=$base02$alpha \ 28 | --insidewrong-color=$base02$alpha \ 29 | --inside-color=$base03$alpha \ 30 | --ringver-color=$green$alpha \ 31 | --ringwrong-color=$red$alpha \ 32 | --ringver-color=$green$alpha \ 33 | --ringwrong-color=$red$alpha \ 34 | --ring-color=$base02$alpha \ 35 | --line-uses-ring \ 36 | --keyhl-color=$blue$alpha \ 37 | --bshl-color=$yellow$alpha \ 38 | --separator-color=$base01$alpha \ 39 | --verif-color=$green \ 40 | --wrong-color=$red \ 41 | --layout-color=$blue \ 42 | --date-color=$base1 \ 43 | --time-color=$base1 \ 44 | --screen 1 \ 45 | --blur 1 \ 46 | --clock \ 47 | --indicator \ 48 | --keylayout 1 \ 49 | --time-str="%I:%M %p" \ 50 | --date-str="%a, %b %e %Y" \ 51 | --verif-text="Verifying..." \ 52 | --wrong-text="Auth Failed" \ 53 | --noinput="No Input" \ 54 | --lock-text="Locking..." \ 55 | --lockfailed="Lock Failed" \ 56 | --time-font=$font \ 57 | --date-font=$font \ 58 | --layout-font=$font \ 59 | --verif-font=$font \ 60 | --wrong-font=$font \ 61 | --radius=110 \ 62 | --ring-width=9 \ 63 | --pass-media-keys \ 64 | --pass-screen-keys \ 65 | --pass-volume-keys \ -------------------------------------------------------------------------------- /nixos/modules/cyber/roles/osint.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | with pkgs; 4 | 5 | [ 6 | ad-miner 7 | aiodnsbrute 8 | amass 9 | asn 10 | assetfinder 11 | bind 12 | bloodhound 13 | bloodhound-py 14 | cantoolz 15 | certgraph 16 | chaos 17 | checkpwn 18 | clairvoyance 19 | cloudlist 20 | dnsenum 21 | dnsrecon 22 | dnstracer 23 | dnstwist 24 | dnsx 25 | dorkscout 26 | dump1090-fa 27 | enum4linux 28 | enum4linux-ng 29 | fierce 30 | # https://github.com/NixOS/nixpkgs/issues/425366 31 | # findomain 32 | fping 33 | gau 34 | geoip 35 | ghdorker 36 | git-hound 37 | gitleaks 38 | gomapenum 39 | gowitness 40 | graphinder 41 | holehe 42 | httping 43 | katana 44 | kiterunner 45 | knockpy 46 | ldeep 47 | linux-exploit-suggester 48 | # https://github.com/NixOS/nixpkgs/issues/425353 49 | # maigret 50 | maltego 51 | metabigor 52 | metasploit 53 | netdiscover 54 | netmask 55 | ntlmrecon 56 | octosuite 57 | parsero 58 | photon 59 | proxmark3 60 | python313Packages.shodan 61 | # https://github.com/NixOS/nixpkgs/issues/425363 62 | # python313Packages.scrapy 63 | # https://github.com/NixOS/nixpkgs/issues/308232 64 | # python312Packages.scrapy-deltafetch 65 | # python312Packages.scrapy-fake-useragent 66 | # python312Packages.scrapy-splash 67 | python313Packages.spyse-python 68 | rita 69 | sherlock 70 | sleuthkit 71 | smbmap 72 | sn0int 73 | sniffglue 74 | snmpcheck 75 | snscrape 76 | social-engineer-toolkit 77 | socialscan 78 | subfinder 79 | subjs 80 | thc-ipv6 81 | theharvester 82 | traceroute 83 | trufflehog 84 | uncover 85 | webanalyze 86 | websploit 87 | whatweb 88 | zgrab2 89 | ] 90 | -------------------------------------------------------------------------------- /nixos/installation/installation-cd-base.nix: -------------------------------------------------------------------------------- 1 | # This module contains the basic configuration for building a NixOS 2 | # installation CD. 3 | 4 | { config, lib, options, pkgs, modulesPath, ... }: 5 | 6 | with lib; 7 | 8 | { 9 | imports = 10 | [ "${modulesPath}/installer/cd-dvd/iso-image.nix" 11 | 12 | # Profiles of this basic installation CD. 13 | "${modulesPath}/profiles/all-hardware.nix" 14 | "${modulesPath}/profiles/base.nix" 15 | ./installation-device.nix 16 | ]; 17 | 18 | # Adds terminus_font for people with HiDPI displays 19 | console.packages = options.console.packages.default ++ [ pkgs.terminus_font ]; 20 | 21 | # ISO naming. 22 | #isoImage.isoName = "${config.isoImage.isoBaseName}-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}.iso"; 23 | isoImage.isoName = "athenaos-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}.iso"; 24 | 25 | # EFI booting 26 | isoImage.makeEfiBootable = true; 27 | 28 | # USB booting 29 | isoImage.makeUsbBootable = true; 30 | 31 | # Add Memtest86+ to the CD. 32 | boot.loader.grub.memtest86.enable = true; 33 | 34 | # An installation media cannot tolerate a host config defined file 35 | # system layout on a fresh machine, before it has been formatted. 36 | swapDevices = mkImageMediaOverride [ ]; 37 | fileSystems = mkImageMediaOverride config.lib.isoFileSystems; 38 | 39 | boot.postBootCommands = '' 40 | for o in $( "${cpuFile}" 41 | echo "${IDLE}" >> "${cpuFile}" 42 | } 43 | 44 | CPU=$(get_cpu) 45 | 46 | 47 | # Panel 48 | #INFO="${ICON}" 49 | #INFO+="${CPU}%" 50 | INFO="${FONTICON}\n${CPU}%" 51 | 52 | # Tooltip 53 | MORE_INFO="" 54 | MORE_INFO+="CPU Usage: ${CPU}%" 55 | MORE_INFO+="" 56 | 57 | # Panel Print 58 | echo -e "${INFO}" 59 | 60 | # Tooltip Print 61 | echo -e "${MORE_INFO}" 62 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/bspwm/default.nix: -------------------------------------------------------------------------------- 1 | { lib, pkgs, config, ... }: 2 | let 3 | fontList = with pkgs; [ 4 | nerd-fonts.jetbrains-mono 5 | nerd-fonts.symbols-only 6 | nerd-fonts.fira-code 7 | nerd-fonts.hack 8 | ]; 9 | 10 | bspwm-packages = with pkgs; [ 11 | pfetch 12 | feh 13 | sxiv 14 | picom-next 15 | bspwm 16 | sxhkd 17 | polybar 18 | rofi 19 | pipes 20 | ranger 21 | pavucontrol 22 | maim 23 | killall 24 | mumble 25 | xclip 26 | ffmpeg 27 | mpv 28 | gimp 29 | lxappearance 30 | ]; 31 | in { 32 | config = lib.mkIf (config.athena.desktopManager == "bspwm") { 33 | # ---- System Configuration ---- 34 | services = { 35 | mpd.enable = true; 36 | picom.enable = true; 37 | xserver = { 38 | enable = true; 39 | windowManager = { 40 | bspwm.enable = true; 41 | }; 42 | }; 43 | }; 44 | 45 | environment = { 46 | pathsToLink = [ "/share/backgrounds" ]; # TODO: https://github.com/NixOS/nixpkgs/issues/47173 47 | systemPackages = bspwm-packages ++ fontList; 48 | }; 49 | 50 | # ---- Home Configuration ---- 51 | home-manager.users.${config.athena.homeManagerUser} = { pkgs, ...}: { 52 | programs.alacritty = { 53 | enable = true; 54 | settings = import ./alacritty; 55 | }; 56 | 57 | # It copies "./config/menus/gnome-applications.menu" source file to the nix store, and then symlinks it to the location. 58 | xdg.configFile = { 59 | "bspwm".source = ./bspwm; 60 | "picom".source = ./picom; 61 | "polybar".source = ./polybar; 62 | "ranger".source = ./ranger; 63 | "rofi".source = ./rofi; 64 | "sxhkd".source = ./sxhkd; 65 | }; 66 | }; 67 | }; 68 | } 69 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/eww/variables.yuck: -------------------------------------------------------------------------------- 1 | ;; Resource vars 2 | 3 | (defpoll CPU_USAGE :interval "1s" "~/.config/eww/scripts/cpu") 4 | 5 | (defpoll MEM_USAGE :interval "1s" "~/.config/eww/scripts/mem --mem_val") 6 | (defpoll MEM_USAGE_PERC :interval "1s" "~/.config/eww/scripts/mem --mem_perc") 7 | (defpoll SWAP_USAGE :interval "1s" "~/.config/eww/scripts/mem --swap_val") 8 | (defpoll SWAP_USAGE_PERC :interval "1s" "~/.config/eww/scripts/mem --swap_perc") 9 | 10 | (defpoll DISK_USAGE :interval "1s" "~/.config/eww/scripts/disk") 11 | 12 | (defpoll brightness :interval "1s" "~/.config/eww/scripts/blight") 13 | (defpoll volume :interval "1s" "~/.config/eww/scripts/vol --vol") 14 | (defpoll micro :interval "1s" "~/.config/eww/scripts/vol --micro") 15 | 16 | (defpoll BAT_PERCENTAGE :interval "1s" "~/.config/eww/scripts/battery --perc") 17 | (defpoll BAT_ICON :interval "1s" "~/.config/eww/scripts/battery --icon") 18 | (defpoll BAT_STATUS :interval "1s" "~/.config/eww/scripts/battery --stat") 19 | 20 | 21 | 22 | ;; Weather vars 23 | (defpoll weathericon :interval "1h" "~/.config/eww/scripts/weather --icon") 24 | (defpoll tempt :interval "1h" "~/.config/eww/scripts/weather --temp" ) 25 | (defpoll descr :interval "1h" "~/.config/eww/scripts/weather --desc") 26 | (defpoll location :interval "1h" "~/.config/eww/scripts/weather --location") 27 | 28 | 29 | 30 | ;; Date vars 31 | (defpoll date :interval "1s" "date '+%d'") 32 | (defpoll month :interval "1s" "date '+%b'") 33 | (defpoll day :interval "1s" "date '+%A'") 34 | 35 | 36 | 37 | ;; Profile stuffs 38 | (defpoll username :interval "69420s" `whoami`) 39 | (defpoll host :interval "69420s" `hostname`) 40 | (defpoll uptime :interval "1s" `~/.config/eww/scripts/uptime`) 41 | 42 | 43 | 44 | ;; Available updates (FOR PACMAN ONLY) 45 | (defpoll UPDATES :interval "900s" `checkupdates | wc -l`) -------------------------------------------------------------------------------- /nixos/modules/cyber/default.nix: -------------------------------------------------------------------------------- 1 | { lib, config, pkgs, ... }: 2 | 3 | with lib; 4 | 5 | let 6 | roles = { 7 | blue = import ./roles/blue.nix { inherit pkgs; }; 8 | bugbounty = import ./roles/bugbounty.nix { inherit pkgs; }; 9 | cracker = import ./roles/cracker.nix { inherit pkgs; }; 10 | dos = import ./roles/dos.nix { inherit pkgs; }; 11 | forensic = import ./roles/forensic.nix { inherit pkgs; }; 12 | malware = import ./roles/malware.nix { inherit pkgs; }; 13 | mobile = import ./roles/mobile.nix { inherit pkgs; }; 14 | network = import ./roles/network.nix { inherit pkgs; }; 15 | osint = import ./roles/osint.nix { inherit pkgs; }; 16 | red = import ./roles/red.nix { inherit pkgs; }; 17 | student = import ./roles/student.nix { inherit pkgs; }; 18 | web = import ./roles/web.nix { inherit pkgs; }; 19 | }; 20 | in { 21 | options.cyber = { 22 | enable = mkOption { 23 | type = types.bool; 24 | default = false; 25 | description = "Enable the cyber module to install cyber security tools based on role."; 26 | }; 27 | 28 | role = mkOption { 29 | type = types.enum [ 30 | "blue" 31 | "bugbounty" 32 | "cracker" 33 | "dos" 34 | "forensic" 35 | "malware" 36 | "mobile" 37 | "network" 38 | "osint" 39 | "red" 40 | "student" 41 | "web" 42 | ]; 43 | default = "student"; 44 | description = "Cyber role to determine which set of tools to install. Options are 'blue', 'bugbounty', 'cracker', 'dos', 'forensic', 'malware', 'mobile', 'network', 'osint', 'red', 'student' or 'web'."; 45 | example = "student"; 46 | }; 47 | }; 48 | 49 | config = mkIf config.cyber.enable { 50 | environment.systemPackages = builtins.getAttr config.cyber.role roles; 51 | }; 52 | } 53 | -------------------------------------------------------------------------------- /nixos/modules/dev/neovim/lua/user/toggleterm.lua: -------------------------------------------------------------------------------- 1 | local status_ok, toggleterm = pcall(require, "toggleterm") 2 | if not status_ok then 3 | return 4 | end 5 | 6 | local function set_nvimtree_when_open_term(terminal) 7 | local nvimtree = require "nvim-tree" 8 | local nvimtree_view = require "nvim-tree.view" 9 | if nvimtree_view.is_visible() and terminal.direction == "horizontal" then 10 | local nvimtree_width = vim.fn.winwidth(nvimtree_view.get_winnr()) 11 | nvimtree.toggle() 12 | nvimtree_view.View.width = nvimtree_width 13 | nvimtree.toggle(false, true) 14 | end 15 | end 16 | 17 | local opts = { 18 | size = 20, 19 | open_mapping = [[]], 20 | shading_factor = 2, 21 | direction = "float", 22 | on_open = set_nvimtree_when_open_term, 23 | float_opts = { 24 | border = "curved", 25 | highlights = { 26 | border = "Normal", 27 | background = "Normal", 28 | }, 29 | }, 30 | } 31 | 32 | if (theme_name == 'rose-pine') then 33 | local highlights_ok, highlights = pcall(require, "rose-pine.plugins.toggleterm") 34 | if not highlights_ok then 35 | return 36 | end 37 | 38 | opts = vim.tbl_deep_extend("force", { highlights = highlights }, opts) 39 | end 40 | 41 | toggleterm.setup(opts) 42 | 43 | local Terminal = require('toggleterm.terminal').Terminal 44 | local lazygit = Terminal:new({ 45 | cmd = "lazygit", 46 | hidden = true, 47 | direction = "float", 48 | float_opts = { 49 | border = "none", 50 | width = 100000, 51 | height = 100000, 52 | }, 53 | }) 54 | 55 | local floatTerminal = Terminal:new({ 56 | hidden = true, 57 | direction = "float", 58 | float_opts = { 59 | border = "none", 60 | width = 100000, 61 | height = 100000, 62 | }, 63 | }) 64 | 65 | function LazygitToggle() 66 | lazygit:toggle() 67 | end 68 | 69 | function TerminalToggle() 70 | floatTerminal:toggle() 71 | end 72 | -------------------------------------------------------------------------------- /nixos/modules/cyber/roles/malware.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | with pkgs; 4 | 5 | [ 6 | amoco 7 | androguard 8 | apktool 9 | bamf 10 | binwalk 11 | bsdiff 12 | bvi 13 | bytecode-viewer 14 | capstone 15 | cfr 16 | chipsec 17 | ctypes_sh 18 | cutter 19 | cutterPlugins.rz-ghidra 20 | dex2jar 21 | edb 22 | # https://github.com/NixOS/nixpkgs/issues/466584 23 | # elf-dissector 24 | elfkickers 25 | elfutils 26 | eresi 27 | flare-floss 28 | flasm 29 | frida-tools 30 | gdb 31 | gdbgui 32 | ghidra 33 | hexbinhex 34 | # https://github.com/NixOS/nixpkgs/issues/425348 35 | # hopper 36 | iaito 37 | jadx 38 | # https://github.com/NixOS/nixpkgs/issues/425402 39 | # jpexs # It needs openjdk to be built and takes a lot of time. Probably no worth to keep 40 | jsbeautifier 41 | # Marked as broken 42 | # klee 43 | lief 44 | lldb 45 | loadlibrary 46 | ltrace 47 | ms-sys 48 | nasm 49 | oletools 50 | osslsigncode 51 | packer 52 | pe-bear 53 | pev 54 | pixd 55 | procdump 56 | procyon 57 | pwntools 58 | # https://github.com/NixOS/nixpkgs/issues/425357 59 | # python313Packages.angrop 60 | python313Packages.distorm3 61 | python313Packages.frida-python 62 | python313Packages.pcodedmp 63 | python313Packages.pwntools 64 | python313Packages.pyjsparser 65 | python313Packages.ropper 66 | python313Packages.vt-py 67 | python313Packages.yara-python 68 | quark-engine 69 | radare2 70 | # https://github.com/NixOS/nixpkgs/issues/466575 71 | # retdec 72 | rizin 73 | rizinPlugins.rz-ghidra 74 | rr 75 | saleae-logic 76 | saleae-logic-2 77 | # https://github.com/NixOS/nixpkgs/issues/425430 78 | # scanmem 79 | shellnoob 80 | strace 81 | # swftools # Insecure 82 | udis86 83 | upx 84 | valgrind 85 | # qtwebengine deps is insecure 86 | # vivisect 87 | vt-cli 88 | wcc 89 | wxhexeditor 90 | yara 91 | ] 92 | -------------------------------------------------------------------------------- /nixos/modules/cyber/roles/web.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | with pkgs; 4 | 5 | [ 6 | aflplusplus 7 | # archivebox # python-django dep is marked as insecure 8 | apachetomcatscanner 9 | arjun 10 | assetfinder 11 | # https://github.com/NixOS/nixpkgs/issues/425333 12 | # boofuzz 13 | brakeman 14 | burpsuite 15 | caido 16 | cantoolz 17 | chipsec 18 | clairvoyance 19 | commix 20 | crackql 21 | crlfuzz 22 | dalfox 23 | dirb 24 | dirstalk 25 | dontgo403 26 | doona 27 | feroxbuster 28 | ffuf 29 | firewalk 30 | gau 31 | ghauri 32 | gobuster 33 | gospider 34 | gowitness 35 | graphinder 36 | graphqlmap 37 | graphw00f 38 | hakrawler 39 | honggfuzz 40 | httpx 41 | interactsh 42 | jaeles 43 | joomscan 44 | jsbeautifier 45 | jwt-hack 46 | katana 47 | kiterunner 48 | mdk4 49 | metasploit 50 | # https://github.com/NixOS/nixpkgs/issues/425338 51 | # mitm6 52 | mitmproxy 53 | mitmproxy2swagger 54 | mongoaudit 55 | monsoon 56 | nikto 57 | nosqli 58 | nuclei 59 | photon 60 | plecost 61 | psudohash 62 | python313Packages.arsenic 63 | python313Packages.httpx 64 | python313Packages.pyjsparser 65 | # https://github.com/NixOS/nixpkgs/issues/425363 66 | # python313Packages.scrapy 67 | # https://github.com/NixOS/nixpkgs/issues/308232 68 | # python312Packages.scrapy-deltafetch 69 | # python312Packages.scrapy-fake-useragent 70 | # python312Packages.scrapy-splash 71 | python313Packages.thefuzz 72 | radamsa 73 | responder 74 | ruler 75 | snallygaster 76 | soapui 77 | sqlmap 78 | subjs 79 | # swftools # Insecure 80 | # https://github.com/NixOS/nixpkgs/issues/425370 81 | # trinity 82 | wafw00f 83 | wapiti 84 | webanalyze 85 | websploit 86 | wfuzz 87 | whatweb 88 | wpscan 89 | wuzz 90 | yersinia 91 | zap 92 | zzuf 93 | ### payloads and wordlists 94 | payloadsallthethings 95 | seclists 96 | ] 97 | -------------------------------------------------------------------------------- /nixos/home-manager/terminals/alacritty/default.nix: -------------------------------------------------------------------------------- 1 | { lib, config, ... }: { 2 | config = lib.mkIf (config.athena.terminal == "alacritty") { 3 | home-manager.users.${config.athena.homeManagerUser}.programs.alacritty = { 4 | enable = true; 5 | settings = { 6 | window = { 7 | decorations = "full"; 8 | decorations_theme_variant = "Dark"; 9 | opacity = 0.8; 10 | }; 11 | 12 | font = { 13 | size = 12; 14 | normal.family = "JetBrainsMono NF"; 15 | bold = { 16 | family = "JetBrainsMono NF"; 17 | style = "Bold"; 18 | }; 19 | italic = { 20 | family = "JetBrainsMono NF"; 21 | style = "Italic"; 22 | }; 23 | bold_italic = { 24 | family = "JetBrainsMono NF"; 25 | style = "Bold Italic"; 26 | }; 27 | }; 28 | 29 | #shell.program = "${pkgs.zsh}/bin/zsh"; 30 | 31 | cursor.style = "Beam"; 32 | 33 | colors = { 34 | draw_bold_text_with_bright_colors = true; 35 | primary = { 36 | background = "0x000b1e"; 37 | foreground = "0x0abdc6"; 38 | }; 39 | normal = { 40 | black = "0x123e7c"; 41 | red = "0xff0000"; 42 | green = "0xd300c4"; 43 | yellow = "0xf57800"; 44 | blue = "0x123e7c"; 45 | magenta = "0x711c91"; 46 | cyan = "0x0abdc6"; 47 | white = "0xd7d7d5"; 48 | }; 49 | dim = { 50 | black = "0x1c61c2"; 51 | red = "0xff0000"; 52 | green = "0xd300c4"; 53 | yellow = "0xf57800"; 54 | blue = "0x123e7c"; 55 | magenta = "0x711c91"; 56 | cyan = "0x0abdc6"; 57 | white = "0xd7d7d5"; 58 | }; 59 | }; 60 | }; 61 | }; 62 | }; 63 | } 64 | -------------------------------------------------------------------------------- /docs/templates/nixpkgs-python-module.nix: -------------------------------------------------------------------------------- 1 | # https://nixos.org/manual/nixpkgs/unstable/#python 2 | { 3 | lib, 4 | buildPythonPackage, 5 | callPackage, 6 | fetchPypi, 7 | # fetchFromGitHub, 8 | pythonOlder, 9 | pytestCheckHook, 10 | 11 | # build-system 12 | setuptools, 13 | 14 | # dependencies 15 | cachecontrol, 16 | lxml-html-clean, 17 | requests, 18 | six, 19 | 20 | # optional-dependencies 21 | rich, 22 | }: 23 | 24 | buildPythonPackage rec { 25 | pname = "NAME"; 26 | version = "VERSION"; 27 | pyproject = true; 28 | 29 | src = fetchPypi { 30 | inherit pname version; 31 | hash = "sha256-H10GiPyAvX6UVM5by4TqW+z6tcwPqskMnTML3BWJdVU="; 32 | }; 33 | 34 | # Fetching from repo (e.g. GitHub) is preferred as published artifacts often don't include tests 35 | # src = fetchFromGitHub { 36 | # owner = "OWNER"; 37 | # repo = "REPO"; 38 | # rev = "v${version}"; 39 | # hash = "sha256-8MOpbyw4HEJMcv84bNkNLBSZfEmIm3RDSUi0s62t9ko="; 40 | # }; 41 | 42 | nativeCheckInputs = [ pytestCheckHook ]; 43 | 44 | pythonImportsCheck = [ "NAME" ]; 45 | 46 | build-system = [ setuptools ] ++ lib.optionals (pythonOlder "3.11") [ tomli ]; 47 | 48 | dependencies = [ 49 | cachecontrol 50 | lxml-html-clean 51 | requests 52 | six 53 | whatever 54 | ] ++ lib.optionals (pythonOlder "3.11") [ tomli ]; 55 | 56 | optional-dependencies = { 57 | rich = [ rich ]; 58 | }; 59 | 60 | # check in passthru.tests.pytest to escape infinite recursion on pytest 61 | # doCheck = false; 62 | 63 | meta = { 64 | changelog = "https://github.com/NAME/REPO/blob/${version}/CHANGELOG.md"; 65 | description = "Short description"; 66 | homepage = "HOMEPAGE URL"; 67 | license = lib.licenses.whatever; # https://github.com/NixOS/nixpkgs/blob/master/lib/licenses.nix 68 | maintainers = with lib.maintainers; [ whatever ]; # https://github.com/NixOS/nixpkgs/tree/master/maintainers 69 | }; 70 | } 71 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/axyl/alacritty.nix: -------------------------------------------------------------------------------- 1 | { 2 | 3 | env = { 4 | TERM = "alacritty"; 5 | }; 6 | 7 | window = { 8 | dimensions = { 9 | columns = 82; 10 | lines = 25; 11 | }; 12 | padding = { 13 | x = 12; 14 | y = 12; 15 | }; 16 | decorations = "full"; 17 | startup_mode = "Windowed"; 18 | dynamic_title = true; 19 | ## Background opacity 20 | opacity = 1.0; 21 | ## scrolling 22 | history = 10000; 23 | multiplier = 3; 24 | }; 25 | 26 | cursor = { 27 | style = { 28 | shape = "Block"; 29 | blinking = "On"; 30 | }; 31 | unfocused_hollow = false; 32 | }; 33 | 34 | ## Live config reload 35 | live_config_reload = true; 36 | 37 | #### Colors #### 38 | colors = { 39 | # Default colors 40 | primary = { 41 | background = "#1a1b26"; 42 | foreground = "#a9b1d6"; 43 | }; 44 | # Normal colors 45 | normal = { 46 | black = "#32344a"; 47 | red = "#f7768e"; 48 | green = "#9ece6a"; 49 | yellow = "#e0af68"; 50 | blue = "#7aa2f7"; 51 | magenta = "#ad8ee6"; 52 | cyan = "#449dab"; 53 | white = "#787c99"; 54 | }; 55 | # Bright colors 56 | bright = { 57 | black = "#444b6a"; 58 | red = "#ff7a93"; 59 | green = "#b9f27c"; 60 | yellow = "#ff9e64"; 61 | blue = "#7da6ff"; 62 | magenta = "#bb9af7"; 63 | cyan = "#0db9d7"; 64 | white = "#acb0d0"; 65 | }; 66 | }; 67 | 68 | #### Fonts #### 69 | font = { 70 | size = 12; 71 | normal = { 72 | family = "JetBrainsMono NF"; 73 | style = "Medium"; 74 | }; 75 | bold = { 76 | family = "JetBrainsMono NF"; 77 | style = "Bold"; 78 | }; 79 | italic = { 80 | family = "JetBrainsMono NF"; 81 | style = "Italic"; 82 | }; 83 | bold_italic = { 84 | family = "JetBrainsMono NF"; 85 | style = "Bold Italic"; 86 | }; 87 | }; 88 | } -------------------------------------------------------------------------------- /nixos/installation/installation-cd-graphical-base.nix: -------------------------------------------------------------------------------- 1 | # This module contains the basic configuration for building a graphical NixOS 2 | # installation CD. 3 | 4 | { lib, pkgs, ... }: 5 | 6 | with lib; 7 | 8 | { 9 | imports = [ ./installation-cd-base.nix ]; 10 | 11 | # Whitelist wheel users to do anything 12 | # This is useful for things like pkexec 13 | # 14 | # WARNING: this is dangerous for systems 15 | # outside the installation-cd and shouldn't 16 | # be used anywhere else. 17 | security.polkit.extraConfig = '' 18 | polkit.addRule(function(action, subject) { 19 | if (subject.isInGroup("wheel")) { 20 | return polkit.Result.YES; 21 | } 22 | }); 23 | ''; 24 | 25 | services.xserver.enable = true; 26 | services.pipewire = { 27 | enable = true; 28 | pulse.enable = true; 29 | wireplumber.enable = true; 30 | }; 31 | 32 | # Provide networkmanager for easy wireless configuration. 33 | networking.networkmanager.enable = true; 34 | networking.wireless.enable = mkImageMediaOverride false; 35 | 36 | # KDE complains if power management is disabled (to be precise, if 37 | # there is no power management backend such as upower). 38 | powerManagement.enable = true; 39 | 40 | # VM guest additions to improve host-guest interaction 41 | services.spice-vdagentd.enable = true; 42 | services.qemuGuest.enable = true; 43 | virtualisation.vmware.guest.enable = pkgs.stdenv.hostPlatform.isx86; 44 | virtualisation.hypervGuest.enable = true; 45 | services.xe-guest-utilities.enable = pkgs.stdenv.hostPlatform.isx86; 46 | # The VirtualBox guest additions rely on an out-of-tree kernel module 47 | # which lags behind kernel releases, potentially causing broken builds. 48 | virtualisation.virtualbox.guest.enable = false; 49 | 50 | environment.defaultPackages = with pkgs; [ 51 | # Include gparted for partitioning disks. 52 | gparted 53 | 54 | # Firefox for reading the manual. 55 | firefox 56 | ]; 57 | } 58 | -------------------------------------------------------------------------------- /nixos/modules/dev/neovim/lua/user/lsp/mason.lua: -------------------------------------------------------------------------------- 1 | local status_ok, mason = pcall(require, "mason") 2 | if not status_ok then 3 | return 4 | end 5 | 6 | local mason_lspconfig_status_ok, mason_lspconfig = pcall(require, "mason-lspconfig") 7 | if not mason_lspconfig_status_ok then 8 | return 9 | end 10 | 11 | local settings = { 12 | ui = { 13 | border = "rounded", 14 | icons = { 15 | package_installed = "◍", 16 | package_pending = "◍", 17 | package_uninstalled = "◍", 18 | }, 19 | }, 20 | log_level = vim.log.levels.INFO, 21 | max_concurrent_installers = 4, 22 | PATH = "append", 23 | } 24 | 25 | mason.setup(settings) 26 | mason_lspconfig.setup { 27 | ensure_installed = { "lua_ls" } 28 | } 29 | 30 | local lspconfig_status_ok, lspconfig = pcall(require, "lspconfig") 31 | if not lspconfig_status_ok then 32 | return 33 | end 34 | 35 | local opts = { 36 | on_attach = require("user.lsp.handlers").on_attach, 37 | capabilities = require("user.lsp.handlers").capabilities, 38 | } 39 | 40 | mason_lspconfig.setup_handlers({ 41 | function(server_name) -- default handler (optional) 42 | lspconfig[server_name].setup(opts) 43 | end, 44 | ["lua_ls"] = function() 45 | local lua_ls = require("user.lsp.settings.lua_ls") 46 | opts = vim.tbl_deep_extend("force", lua_ls, opts) 47 | lspconfig.lua_ls.setup(opts) 48 | end, 49 | ["jsonls"] = function() 50 | local jsonls_opts = require("user.lsp.settings.jsonls") 51 | opts = vim.tbl_deep_extend("force", jsonls_opts, opts) 52 | lspconfig.jsonls.setup(opts) 53 | end, 54 | ["tsserver"] = function() 55 | local tsserver_opts = require("user.lsp.settings.tsserver") 56 | opts = vim.tbl_deep_extend("force",tsserver_opts, opts) 57 | lspconfig.tsserver.setup(opts) 58 | end, 59 | ["eslint"] = function() 60 | local eslint_opts = require("user.lsp.settings.eslint") 61 | opts = vim.tbl_deep_extend("force",eslint_opts, opts) 62 | lspconfig.eslint.setup(opts) 63 | end, 64 | }) 65 | -------------------------------------------------------------------------------- /nixos/modules/design/sweet/default.nix: -------------------------------------------------------------------------------- 1 | { lib, pkgs, config, ... }: 2 | let 3 | theme-components = { 4 | gtk-theme = "Sweet-Dark-v40"; 5 | icon-theme = "Sweet-Purple"; 6 | cursor-theme = "oreo_spark_purple_cursors"; 7 | background = "nix-neon-circle.png"; 8 | }; 9 | gtkTheme = "${theme-components.gtk-theme}"; 10 | gtkIconTheme = "${theme-components.icon-theme}"; 11 | gtkCursorTheme = "${theme-components.cursor-theme}"; 12 | in { 13 | config = lib.mkIf (config.athena.theme == "sweet") { 14 | athena.theme-components = theme-components; 15 | environment.systemPackages = with pkgs; [ 16 | (callPackage ../../../pkgs/themes/athena-purple-base/package.nix { }) 17 | candy-icons 18 | ]; 19 | 20 | home-manager.users.${config.athena.homeManagerUser} = { pkgs, ...}: { 21 | # Needed to apply the theme on GTK4 windows (like Nautilus) 22 | home.sessionVariables.GTK_THEME = gtkTheme; 23 | 24 | gtk = { 25 | enable = true; 26 | gtk3.extraConfig.gtk-decoration-layout = "menu:"; 27 | theme = { 28 | name = gtkTheme; 29 | package = pkgs.sweet.override { 30 | colorVariants = [ "Sweet-Dark-v40" ]; 31 | }; 32 | }; 33 | 34 | iconTheme = { 35 | name = gtkIconTheme; 36 | package = pkgs.sweet-folders; 37 | }; 38 | 39 | cursorTheme = { 40 | name = gtkCursorTheme; 41 | package = pkgs.oreo-cursors-plus; 42 | }; 43 | }; 44 | 45 | programs = { 46 | kitty.themeFile = "AdventureTime"; 47 | vscode = { 48 | profiles.default.extensions = with pkgs.vscode-extensions; [ 49 | dhedgecock.radical-vscode 50 | ]; 51 | 52 | # In case extensions are not loaded, refer to https://github.com/nix-community/home-manager/issues/3507 53 | profiles.default.userSettings = { "workbench.colorTheme" = "Radical"; }; 54 | }; 55 | }; 56 | }; 57 | }; 58 | } 59 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/bspwm/alacritty/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | 3 | window = { 4 | dimensions = { 5 | columns = 140; 6 | lines = 38; 7 | }; 8 | padding = { 9 | x = 10; 10 | y = 10; 11 | }; 12 | decorations = "none"; 13 | startup_mode = "Windowed"; 14 | dynamic_title = true; 15 | ## Background opacity 16 | opacity = 0.67; 17 | ## scrolling 18 | history = 10000; 19 | multiplier = 3; 20 | }; 21 | 22 | cursor = { 23 | style = { 24 | shape = "Block"; 25 | blinking = "On"; 26 | }; 27 | unfocused_hollow = false; 28 | }; 29 | 30 | ## Live config reload 31 | live_config_reload = true; 32 | 33 | draw_bold_text_with_bright_colors = true; 34 | 35 | #### Colors #### 36 | colors = { 37 | # Default colors 38 | primary = { 39 | background = "#000000"; 40 | foreground = "#c5c8c6"; 41 | }; 42 | cursor = { 43 | text = "#1d1f21"; 44 | cursor = "#c5c8c6"; 45 | }; 46 | # Normal colors 47 | normal = { 48 | black = "#1d1f21"; 49 | red = "#cc6666"; 50 | green = "#b5bd68"; 51 | yellow = "#f0c674"; 52 | blue = "#81a2be"; 53 | magenta = "#b294bb"; 54 | cyan = "#8abeb7"; 55 | white = "#c5c8c6"; 56 | }; 57 | # Bright colors 58 | bright = { 59 | black = "#969896"; 60 | red = "#de935f"; 61 | green = "#282a2e"; 62 | yellow = "#373b41"; 63 | blue = "#b4b7b4"; 64 | magenta = "#e0e0e0"; 65 | cyan = "#a3685a"; 66 | white = "#ffffff"; 67 | }; 68 | }; 69 | 70 | #### Fonts #### 71 | font = { 72 | size = 12; 73 | normal = { 74 | family = "FiraCode NF"; 75 | style = "Medium"; 76 | }; 77 | bold = { 78 | family = "FiraCode NF"; 79 | style = "Bold"; 80 | }; 81 | italic = { 82 | family = "FiraCode NF"; 83 | style = "Italic"; 84 | }; 85 | bold_italic = { 86 | family = "FiraCode NF"; 87 | style = "Bold Italic"; 88 | }; 89 | }; 90 | } -------------------------------------------------------------------------------- /nixos/modules/design/frost/default.nix: -------------------------------------------------------------------------------- 1 | { lib, pkgs, config, ... }: 2 | let 3 | theme-components = { 4 | gtk-theme = "Tokyonight-Dark"; 5 | icon-theme = "Tokyonight-Dark"; 6 | cursor-theme = "oreo_blue_cursors"; 7 | background = "frost-daughter.png"; 8 | }; 9 | gtkTheme = "${theme-components.gtk-theme}"; 10 | gtkIconTheme = "${theme-components.icon-theme}"; 11 | gtkCursorTheme = "${theme-components.cursor-theme}"; 12 | in { 13 | config = lib.mkIf (config.athena.theme == "frost") { 14 | athena.theme-components = theme-components; 15 | environment.systemPackages = with pkgs; [ 16 | (callPackage ../../../pkgs/themes/athena-cyan-base/package.nix { }) 17 | ]; 18 | 19 | home-manager.users.${config.athena.homeManagerUser} = { pkgs, ... }: { 20 | # Needed to apply the theme on GTK4 windows (like Nautilus) 21 | home.sessionVariables.GTK_THEME = gtkTheme; 22 | 23 | gtk = { 24 | enable = true; 25 | gtk3.extraConfig.gtk-decoration-layout = "menu:"; 26 | theme = { 27 | name = gtkTheme; 28 | package = pkgs.tokyonight-gtk-theme.override { 29 | colorVariants = [ "dark" ]; 30 | tweakVariants = [ "macos" ]; 31 | }; 32 | }; 33 | 34 | # icon theme in this case is already installed by Tokyo Night GTK package 35 | iconTheme.name = gtkIconTheme; 36 | 37 | cursorTheme = { 38 | name = gtkCursorTheme; 39 | package = pkgs.oreo-cursors-plus; 40 | }; 41 | }; 42 | 43 | programs = { 44 | kitty.themeFile = "tokyo_night_storm"; 45 | vscode = { 46 | profiles.default.extensions = with pkgs.vscode-extensions; [ 47 | enkia.tokyo-night 48 | ]; 49 | 50 | # In case extensions are not loaded, refer to https://github.com/nix-community/home-manager/issues/3507 51 | profiles.default.userSettings = { "workbench.colorTheme" = "Tokyo Night Storm"; }; 52 | }; 53 | }; 54 | }; 55 | }; 56 | } 57 | -------------------------------------------------------------------------------- /nixos/modules/design/graphite/default.nix: -------------------------------------------------------------------------------- 1 | { lib, pkgs, config, ... }: 2 | let 3 | theme-components = { 4 | gtk-theme = "Graphite-Dark"; 5 | icon-theme = "Tela-circle-black-dark"; 6 | cursor-theme = "Bibata-Modern-Ice"; 7 | background = "nix-behind.png"; 8 | }; 9 | gtkTheme = "${theme-components.gtk-theme}"; 10 | gtkIconTheme = "${theme-components.icon-theme}"; 11 | gtkCursorTheme = "${theme-components.cursor-theme}"; 12 | in { 13 | config = lib.mkIf (config.athena.theme == "graphite") { 14 | athena.theme-components = theme-components; 15 | environment.systemPackages = with pkgs; [ 16 | (callPackage ../../../pkgs/themes/athena-blue-base/package.nix { }) 17 | ]; 18 | 19 | home-manager.users.${config.athena.homeManagerUser} = { pkgs, ...}: { 20 | # Needed to apply the theme on GTK4 windows (like Nautilus) 21 | home.sessionVariables.GTK_THEME = gtkTheme; 22 | 23 | gtk = { 24 | enable = true; 25 | gtk3.extraConfig.gtk-decoration-layout = "menu:"; 26 | theme = { 27 | name = gtkTheme; 28 | package = pkgs.graphite-gtk-theme.override { 29 | tweaks = [ "rimless" ]; 30 | }; 31 | }; 32 | 33 | iconTheme = { 34 | name = gtkIconTheme; 35 | package = pkgs.tela-circle-icon-theme.override { 36 | colorVariants = [ "black" ]; 37 | }; 38 | }; 39 | 40 | cursorTheme = { 41 | name = gtkCursorTheme; 42 | package = pkgs.bibata-cursors; 43 | }; 44 | }; 45 | 46 | programs = { 47 | kitty.themeFile = "Atom"; 48 | vscode = { 49 | profiles.default.extensions = with pkgs.vscode-extensions; [ 50 | nur.just-black 51 | ]; 52 | 53 | # In case extensions are not loaded, refer to https://github.com/nix-community/home-manager/issues/3507 54 | profiles.default.userSettings = { "workbench.colorTheme" = "Just Black"; }; 55 | }; 56 | }; 57 | }; 58 | }; 59 | } 60 | -------------------------------------------------------------------------------- /nixos/modules/design/samurai/default.nix: -------------------------------------------------------------------------------- 1 | { lib, pkgs, config, ... }: 2 | let 3 | theme-components = { 4 | gtk-theme = "Tokyonight-Dark"; 5 | icon-theme = "Tokyonight-Dark"; 6 | cursor-theme = "oreo_blue_cursors"; 7 | background = "samurai-girl.png"; 8 | }; 9 | gtkTheme = "${theme-components.gtk-theme}"; 10 | gtkIconTheme = "${theme-components.icon-theme}"; 11 | gtkCursorTheme = "${theme-components.cursor-theme}"; 12 | in { 13 | config = lib.mkIf (config.athena.theme == "samurai") { 14 | athena.theme-components = theme-components; 15 | environment.systemPackages = with pkgs; [ 16 | (callPackage ../../../pkgs/themes/athena-cyan-base/package.nix { }) 17 | ]; 18 | 19 | home-manager.users.${config.athena.homeManagerUser} = { pkgs, ... }: { 20 | # Needed to apply the theme on GTK4 windows (like Nautilus) 21 | home.sessionVariables.GTK_THEME = gtkTheme; 22 | 23 | gtk = { 24 | enable = true; 25 | gtk3.extraConfig.gtk-decoration-layout = "menu:"; 26 | theme = { 27 | name = gtkTheme; 28 | package = pkgs.tokyonight-gtk-theme.override { 29 | colorVariants = [ "dark" ]; 30 | tweakVariants = [ "macos" ]; 31 | }; 32 | }; 33 | 34 | # icon theme in this case is already installed by Tokyo Night GTK package 35 | iconTheme.name = gtkIconTheme; 36 | 37 | cursorTheme = { 38 | name = gtkCursorTheme; 39 | package = pkgs.oreo-cursors-plus; 40 | }; 41 | }; 42 | 43 | programs = { 44 | kitty.themeFile = "tokyo_night_storm"; 45 | vscode = { 46 | profiles.default.extensions = with pkgs.vscode-extensions; [ 47 | enkia.tokyo-night 48 | ]; 49 | 50 | # In case extensions are not loaded, refer to https://github.com/nix-community/home-manager/issues/3507 51 | profiles.default.userSettings = { "workbench.colorTheme" = "Tokyo Night Storm"; }; 52 | }; 53 | }; 54 | }; 55 | }; 56 | } 57 | -------------------------------------------------------------------------------- /nixos/modules/design/temple/default.nix: -------------------------------------------------------------------------------- 1 | { lib, pkgs, config, ... }: 2 | let 3 | theme-components = { 4 | gtk-theme = "Tokyonight-Dark"; 5 | icon-theme = "FairyWren_Dark"; 6 | cursor-theme = "oreo_blue_cursors"; 7 | background = "temple.png"; 8 | }; 9 | gtkTheme = "${theme-components.gtk-theme}"; 10 | gtkIconTheme = "${theme-components.icon-theme}"; 11 | gtkCursorTheme = "${theme-components.cursor-theme}"; 12 | in { 13 | config = lib.mkIf (config.athena.theme == "temple") { 14 | athena.theme-components = theme-components; 15 | environment.systemPackages = with pkgs; [ 16 | (callPackage ../../../pkgs/themes/athena-cyan-base/package.nix { }) 17 | ]; 18 | 19 | home-manager.users.${config.athena.homeManagerUser} = { pkgs, ...}: { 20 | # Needed to apply the theme on GTK4 windows (like Nautilus) 21 | home.sessionVariables.GTK_THEME = gtkTheme; 22 | 23 | gtk = { 24 | enable = true; 25 | gtk3.extraConfig.gtk-decoration-layout = "menu:"; 26 | theme = { 27 | name = gtkTheme; 28 | package = pkgs.tokyonight-gtk-theme.override { 29 | colorVariants = [ "dark" ]; 30 | tweakVariants = [ "macos" ]; 31 | }; 32 | }; 33 | 34 | iconTheme = { 35 | name = gtkIconTheme; 36 | package = pkgs.fairywren.override { 37 | colorVariants = [ "FairyWren_Dark" ]; 38 | }; 39 | }; 40 | 41 | cursorTheme = { 42 | name = gtkCursorTheme; 43 | package = pkgs.oreo-cursors-plus; 44 | }; 45 | }; 46 | 47 | programs = { 48 | kitty.themeFile = "tokyo_night_storm"; 49 | vscode = { 50 | profiles.default.extensions = with pkgs.vscode-extensions; [ 51 | enkia.tokyo-night 52 | ]; 53 | 54 | # In case extensions are not loaded, refer to https://github.com/nix-community/home-manager/issues/3507 55 | profiles.default.userSettings = { "workbench.colorTheme" = "Tokyo Night Storm"; }; 56 | }; 57 | }; 58 | }; 59 | }; 60 | } 61 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/eww/sidebar.yuck: -------------------------------------------------------------------------------- 1 | ;; **** Variables ****************************************** 2 | (include "variables.yuck") 3 | 4 | 5 | ;; **** Widgets ******************************************** 6 | 7 | ;; Weather 8 | (include "sidebar/weather.yuck") 9 | 10 | ;; Memory 11 | (include "sidebar/memory.yuck") 12 | 13 | ;; Battery 14 | (include "sidebar/battery.yuck") 15 | 16 | ;; Date 17 | (include "sidebar/date.yuck") 18 | 19 | ;; Updates 20 | (include "sidebar/pacman_updates.yuck") 21 | 22 | ;; Profile 23 | (include "sidebar/profile.yuck") 24 | 25 | ;; Disk/Storage 26 | (include "sidebar/disk.yuck") 27 | 28 | ;; System stuffs 29 | (include "sidebar/system.yuck") 30 | 31 | ;; ********************************************************* 32 | 33 | 34 | ;; **** Sidebar ******************************************** 35 | 36 | (defwidget sidebar [] 37 | 38 | (box :class "container" 39 | :orientation "v" 40 | :space-evenly false 41 | 42 | (box :orientation "h" 43 | :height 118 44 | (profile) 45 | ) 46 | 47 | (box :orientation "h" 48 | :space-evenly false 49 | (box :width 170 50 | :height 340 51 | :orientation "v" 52 | :space-evenly false 53 | (box :height 170 54 | (weather)) 55 | (box :height 170 56 | (memory)) 57 | ) 58 | 59 | (box :width 170 60 | :height 340 61 | :orientation "v" 62 | :space-evenly false 63 | (box :height 85 64 | (date)) 65 | (box :height 170 66 | (battery)) 67 | (box :height 85 68 | (updates)) 69 | ) 70 | ) 71 | 72 | (box :orientation "v" 73 | (system) 74 | ) 75 | 76 | (box :orientation "v" 77 | (disk) 78 | ) 79 | ) 80 | ) 81 | 82 | ;; **** Sidebar Window ************************************ 83 | 84 | (defwindow sidebar :stacking "fg" 85 | :focusable "false" 86 | :screen 1 87 | :windowtype "dock" 88 | :geometry (geometry :x 0 89 | :y 0 90 | :anchor "center right") 91 | (sidebar) 92 | ) 93 | 94 | ;; ********************************************************* 95 | -------------------------------------------------------------------------------- /nixos/modules/dev/neovim/lua/user/nvim-tree.lua: -------------------------------------------------------------------------------- 1 | local status_ok, nvim_tree = pcall(require, "nvim-tree") 2 | if not status_ok then 3 | return 4 | end 5 | 6 | local function on_attach(bufnr) 7 | local api = require('nvim-tree.api') 8 | 9 | local function opts(desc) 10 | return { desc = 'nvim-tree: ' .. desc, buffer = bufnr, noremap = true, silent = true, nowait = true } 11 | end 12 | 13 | api.config.mappings.default_on_attach(bufnr); 14 | 15 | vim.keymap.set('n', 'e', '', { buffer = bufnr }) 16 | vim.keymap.del('n', 'e', { buffer = bufnr }) 17 | vim.keymap.set('n', '', api.fs.rename_basename, opts('Rename: Basename')) 18 | end 19 | 20 | nvim_tree.setup { 21 | disable_netrw = true, 22 | hijack_netrw = true, 23 | update_cwd = true, 24 | update_focused_file = { 25 | enable = true, 26 | update_cwd = true, 27 | ignore_list = {} 28 | }, 29 | trash = { 30 | cmd = "trash", 31 | require_confirm = true, 32 | }, 33 | actions = { 34 | open_file = { 35 | resize_window = false, 36 | } 37 | }, 38 | on_attach = on_attach, 39 | view = { 40 | adaptive_size = true, 41 | } 42 | } 43 | 44 | vim.api.nvim_create_autocmd('BufEnter', { 45 | command = "if winnr('$') == 1 && bufname() == 'NvimTree_' . tabpagenr() | quit | endif", 46 | nested = true, 47 | }) 48 | 49 | local events, nvim_tree_events = pcall(require, "nvim-tree.events") 50 | if not events then 51 | return 52 | end 53 | 54 | local bufferapi, bufferline_api = pcall(require, "bufferline.api") 55 | if not bufferapi then 56 | return 57 | end 58 | 59 | local function get_tree_size() 60 | return require 'nvim-tree.view'.View.width 61 | end 62 | 63 | nvim_tree_events.subscribe('TreeOpen', function() 64 | bufferline_api.set_offset(get_tree_size() + 1) 65 | end) 66 | 67 | nvim_tree_events.subscribe('Resize', function() 68 | bufferline_api.set_offset(get_tree_size() + 1) 69 | end) 70 | 71 | nvim_tree_events.subscribe('TreeClose', function() 72 | -- if require("dap").session() then 73 | -- require("dapui").open({ reset = true }) 74 | -- end 75 | bufferline_api.set_offset(0) 76 | end) 77 | -------------------------------------------------------------------------------- /nixos/pkgs/themes/athena-cyan-base/package.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | stdenvNoCC, 4 | fetchFromGitHub, 5 | }: 6 | 7 | stdenvNoCC.mkDerivation (finalAttrs: { 8 | pname = "athena-cyan-base"; 9 | version = "0-unstable-2025-10-27"; 10 | 11 | src = fetchFromGitHub { 12 | owner = "Athena-OS"; 13 | repo = "athena-cyan-base"; 14 | rev = "907022436b406e74d758094939e9992873452671"; 15 | hash = "sha256-E/k9+Lq/OWevRlyKLED1d3wumVwKSUVQd+Dyvvo3uv8="; 16 | }; 17 | 18 | postPatch = '' 19 | substituteInPlace gnome-background-properties/*.xml \ 20 | --replace-fail /usr/share/backgrounds $out/share/backgrounds 21 | ''; 22 | 23 | installPhase = '' 24 | mkdir -p $out/share/{icons/hicolor/scalable/{apps,categories},backgrounds/athena,gnome-background-properties} 25 | cp -r icons/apps/* $out/share/icons/hicolor/scalable/apps/ 26 | cp -r icons/categories/* $out/share/icons/hicolor/scalable/categories/ 27 | cp -r wallpapers/frost-daughter.png $out/share/backgrounds/athena/ 28 | cp -r wallpapers/frost-daughter-tattoo.png $out/share/backgrounds/athena/ 29 | cp -r wallpapers/nike.png $out/share/backgrounds/athena/ 30 | cp -r wallpapers/nike-holo.png $out/share/backgrounds/athena/ 31 | cp -r wallpapers/samurai-girl.png $out/share/backgrounds/athena/ 32 | cp -r wallpapers/temple.png $out/share/backgrounds/athena/ 33 | cp -r gnome-background-properties/frost-daughter.xml $out/share/gnome-background-properties/ 34 | cp -r gnome-background-properties/nike.xml $out/share/gnome-background-properties/ 35 | cp -r gnome-background-properties/nike-holo.xml $out/share/gnome-background-properties/ 36 | cp -r gnome-background-properties/samurai-girl.xml $out/share/gnome-background-properties/ 37 | cp -r gnome-background-properties/temple.xml $out/share/gnome-background-properties/ 38 | ''; 39 | 40 | meta = with lib; { 41 | description = "Cyan colorbase resources"; 42 | homepage = "https://github.com/Athena-OS/athena-cyan-base"; 43 | maintainers = with maintainers; [ d3vil0p3r ]; 44 | platforms = platforms.unix; 45 | license = licenses.gpl3Plus; 46 | }; 47 | }) 48 | -------------------------------------------------------------------------------- /nixos/modules/design/hackthebox/default.nix: -------------------------------------------------------------------------------- 1 | { lib, pkgs, config, ... }: 2 | let 3 | theme-components = { 4 | gtk-theme = "Matrix-Dark"; 5 | icon-theme = "Matrix-Sweet"; 6 | cursor-theme = "Afterglow-Recolored-Dracula-Green"; 7 | background = "nix-hackthebox.png"; 8 | }; 9 | gtkTheme = "${theme-components.gtk-theme}"; 10 | gtkIconTheme = "${theme-components.icon-theme}"; 11 | gtkCursorTheme = "${theme-components.cursor-theme}"; 12 | in { 13 | config = lib.mkIf (config.athena.theme == "hackthebox") { 14 | athena.theme-components = theme-components; 15 | environment.systemPackages = with pkgs; [ 16 | (callPackage ../../../pkgs/themes/athena-green-base/package.nix { }) 17 | ]; 18 | 19 | home-manager.users.${config.athena.homeManagerUser} = { pkgs, ...}: { 20 | # Needed to apply the theme on GTK4 windows (like Nautilus) 21 | home.sessionVariables.GTK_THEME = gtkTheme; 22 | 23 | gtk = { 24 | enable = true; 25 | gtk3.extraConfig.gtk-decoration-layout = "menu:"; 26 | theme = { 27 | name = gtkTheme; 28 | package = pkgs.matrix-gtk-theme.override { 29 | colorVariants = [ "dark" ]; 30 | tweakVariants = [ "macos" ]; 31 | iconVariants = [ "Sweet" ]; 32 | }; 33 | }; 34 | 35 | iconTheme = { 36 | name = gtkIconTheme; 37 | }; 38 | 39 | cursorTheme = { 40 | name = gtkCursorTheme; 41 | package = pkgs.afterglow-cursors-recolored.override { 42 | themeVariants = [ "Dracula" ]; 43 | draculaColorVariants = [ "Green" ]; 44 | }; 45 | }; 46 | }; 47 | 48 | programs = { 49 | kitty.themeFile = "Box"; 50 | vscode = { 51 | profiles.default.extensions = with pkgs.vscode-extensions; [ 52 | silofy.hackthebox 53 | ]; 54 | 55 | # In case extensions are not loaded, refer to https://github.com/nix-community/home-manager/issues/3507 56 | profiles.default.userSettings = { "workbench.colorTheme" = "Hack The Box"; }; 57 | }; 58 | }; 59 | }; 60 | }; 61 | } 62 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/xfce4-picom/xfconf/xfce-perchannel-xml/xfce4-session.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /nixos/pkgs/athena-welcome/package.nix: -------------------------------------------------------------------------------- 1 | { lib 2 | , fetchFromGitHub 3 | , runtimeShell 4 | , python3 5 | , gobject-introspection 6 | , libwnck 7 | , glib 8 | , gtk3 9 | , python3Packages 10 | , wrapGAppsHook3 11 | }: 12 | 13 | python3Packages.buildPythonApplication { 14 | pname = "athena-welcome"; 15 | version = "0-unstable-2025-10-19"; 16 | 17 | src = fetchFromGitHub { 18 | owner = "Athena-OS"; 19 | repo = "athena-welcome"; 20 | rev = "40a897170e3e3eb7df44154e56d18fa17309947b"; 21 | hash = "sha256-KLmN4qT3+AmFrbGCzzkRoHyfOgttURA+82Kn7C1dPlY="; 22 | }; 23 | 24 | format = "other"; 25 | 26 | nativeBuildInputs = [ gobject-introspection wrapGAppsHook3 ]; 27 | buildInputs = [ glib gtk3 libwnck ]; 28 | propagatedBuildInputs = with python3Packages; [ pygobject3 ]; 29 | 30 | makeWrapperArgs = [ 31 | "--set GI_TYPELIB_PATH \"$GI_TYPELIB_PATH\"" 32 | ]; 33 | 34 | postPatch = '' 35 | substituteInPlace athena-welcome.desktop \ 36 | --replace /usr/bin/athena-welcome $out/bin/athena-welcome 37 | substituteInPlace athena-welcome/ui/GUI.py \ 38 | --replace images/htb.png $out/share/athena-welcome/images/htb.png 39 | ''; 40 | 41 | installPhase = '' 42 | runHook preInstall 43 | mkdir -p $out/{bin,share/applications,share/athena-welcome,share/icons/hicolor/scalable/apps} 44 | cp -r athena-welcome.desktop $out/share/applications/athena-welcome.desktop 45 | cp -r athena-welcome/* $out/share/athena-welcome/ 46 | cp -r athenaos.svg $out/share/icons/hicolor/scalable/apps/ 47 | makeWrapper ${python3}/bin/python $out/bin/athena-welcome \ 48 | --add-flags "$out/share/athena-welcome/athena-welcome.py" \ 49 | --prefix PYTHONPATH : "$PYTHONPATH" 50 | runHook postInstall 51 | ''; 52 | 53 | postInstall = '' 54 | install -Dm644 athena-welcome.desktop $out/etc/xdg/autostart/athena-welcome.desktop 55 | ''; 56 | 57 | meta = with lib; { 58 | description = "Athena Welcome application"; 59 | mainProgram = "athena-welcome"; 60 | homepage = "https://github.com/Athena-OS/athena-welcome"; 61 | maintainers = with maintainers; [ d3vil0p3r ]; 62 | platforms = platforms.unix; 63 | license = licenses.gpl3Plus; 64 | }; 65 | } 66 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/xfce/config/xfce4-picom/xfconf/xfce-perchannel-xml/xsettings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /nixos/modules/design/cyborg/default.nix: -------------------------------------------------------------------------------- 1 | { lib, pkgs, config, ... }: 2 | let 3 | theme-components = { 4 | gtk-theme = "Gruvbox-Dark"; 5 | icon-theme = "Material-Black-Mango-Suru"; 6 | cursor-theme = "Fuchsia-Pop"; 7 | background = "cyborg-gruv.png"; 8 | }; 9 | gtkTheme = "${theme-components.gtk-theme}"; 10 | gtkIconTheme = "${theme-components.icon-theme}"; 11 | gtkCursorTheme = "${theme-components.cursor-theme}"; 12 | in { 13 | config = lib.mkIf (config.athena.theme == "cyborg") { 14 | athena.theme-components = theme-components; 15 | environment.systemPackages = with pkgs; [ 16 | (callPackage ../../../pkgs/themes/athena-gruvbox-base/package.nix { }) 17 | ]; 18 | 19 | home-manager.users.${config.athena.homeManagerUser} = { pkgs, ...}: { 20 | # Needed to apply the theme on GTK4 windows (like Nautilus) 21 | home.sessionVariables.GTK_THEME = gtkTheme; 22 | 23 | gtk = { 24 | enable = true; 25 | gtk3.extraConfig.gtk-decoration-layout = "menu:"; 26 | theme = { 27 | name = gtkTheme; 28 | package = pkgs.gruvbox-gtk-theme.override { 29 | colorVariants = [ "dark" ]; 30 | tweakVariants = [ "macos" ]; 31 | }; 32 | }; 33 | 34 | iconTheme = { 35 | name = gtkIconTheme; 36 | package = pkgs.material-black-colors.override { 37 | colorVariants = [ "Material-Black-Mango-Suru" ]; 38 | }; 39 | }; 40 | 41 | cursorTheme = { 42 | name = gtkCursorTheme; 43 | package = pkgs.fuchsia-cursor.override { 44 | themeVariants = [ "Fuchsia-Pop" ]; 45 | platformVariants = [ "x11" ]; 46 | }; 47 | }; 48 | }; 49 | 50 | programs = { 51 | kitty.themeFile = "gruvbox-dark"; 52 | vscode = { 53 | profiles.default.extensions = with pkgs.vscode-extensions; [ 54 | jdinhlife.gruvbox 55 | ]; 56 | 57 | # In case extensions are not loaded, refer to https://github.com/nix-community/home-manager/issues/3507 58 | profiles.default.userSettings = { "workbench.colorTheme" = "Gruvbox Dark Hard"; }; 59 | }; 60 | }; 61 | }; 62 | }; 63 | } 64 | -------------------------------------------------------------------------------- /nixos/modules/design/redmoon/default.nix: -------------------------------------------------------------------------------- 1 | { lib, pkgs, config, ... }: 2 | let 3 | theme-components = { 4 | gtk-theme = "Nightfox-Dark"; 5 | icon-theme = "Material-Black-Cherry-Suru"; 6 | cursor-theme = "Afterglow-Recolored-Dracula-Red"; 7 | background = "redmoon.png"; 8 | }; 9 | 10 | gtkTheme = "${theme-components.gtk-theme}"; 11 | gtkIconTheme = "${theme-components.icon-theme}"; 12 | gtkCursorTheme = "${theme-components.cursor-theme}"; 13 | in { 14 | config = lib.mkIf (config.athena.theme == "redmoon") { 15 | athena.theme-components = theme-components; 16 | environment.systemPackages = with pkgs; [ 17 | (callPackage ../../../pkgs/themes/athena-red-base/package.nix { }) 18 | ]; 19 | 20 | home-manager.users.${config.athena.homeManagerUser} = { pkgs, ...}: { 21 | # Needed to apply the theme on GTK4 windows (like Nautilus) 22 | home.sessionVariables.GTK_THEME = gtkTheme; 23 | 24 | gtk = { 25 | enable = true; 26 | gtk3.extraConfig.gtk-decoration-layout = "menu:"; 27 | theme = { 28 | name = gtkTheme; 29 | package = pkgs.nightfox-gtk-theme.override { 30 | colorVariants = [ "dark" ]; 31 | tweakVariants = [ "macos" ]; 32 | }; 33 | }; 34 | 35 | iconTheme = { 36 | name = gtkIconTheme; 37 | package = pkgs.material-black-colors.override { 38 | colorVariants = [ "Material-Black-Cherry-Suru" ]; 39 | }; 40 | }; 41 | 42 | cursorTheme = { 43 | name = gtkCursorTheme; 44 | package = pkgs.afterglow-cursors-recolored.override { 45 | themeVariants = [ "Dracula" ]; 46 | draculaColorVariants = [ "Red" ]; 47 | }; 48 | }; 49 | }; 50 | 51 | programs = { 52 | kitty.themeFile = "CrayonPonyFish"; 53 | vscode = { 54 | profiles.default.extensions = with pkgs.vscode-extensions; [ dracula-theme.theme-dracula ]; 55 | 56 | # In case extensions are not loaded, refer to https://github.com/nix-community/home-manager/issues/3507 57 | profiles.default.userSettings = { "workbench.colorTheme" = "Dracula"; }; 58 | }; 59 | }; 60 | }; 61 | }; 62 | } 63 | -------------------------------------------------------------------------------- /nixos/modules/dev/neovim/lua/user/treesitter.lua: -------------------------------------------------------------------------------- 1 | local status_ok, configs = pcall(require, "nvim-treesitter.configs") 2 | if not status_ok then 3 | return 4 | end 5 | 6 | configs.setup { 7 | -- Add languages to be installed here that you want installed for treesitter 8 | ensure_installed = { 9 | "bash", 10 | "dockerfile", 11 | "html", 12 | "javascript", 13 | "json", 14 | "lua", 15 | "markdown", 16 | "scss", 17 | "typescript", 18 | "yaml", 19 | "nix", 20 | "go", 21 | "vim", 22 | "rasi", 23 | "prisma", 24 | "sql" 25 | }, 26 | matchup = { 27 | enable = true, 28 | }, 29 | highlight = { enable = true }, 30 | indent = { enable = true, disable = { 'python', 'yaml', 'markdown' } }, 31 | incremental_selection = { 32 | enable = true, 33 | keymaps = { 34 | init_selection = '', 35 | node_incremental = '', 36 | scope_incremental = '', 37 | node_decremental = '', 38 | }, 39 | }, 40 | textobjects = { 41 | select = { 42 | enable = true, 43 | lookahead = true, -- Automatically jump forward to textobj, similar to targets.vim 44 | keymaps = { 45 | -- You can use the capture groups defined in textobjects.scm 46 | ['aa'] = '@parameter.outer', 47 | ['ia'] = '@parameter.inner', 48 | ['af'] = '@function.outer', 49 | ['if'] = '@function.inner', 50 | ['ac'] = '@class.outer', 51 | ['ic'] = '@class.inner', 52 | }, 53 | }, 54 | move = { 55 | enable = true, 56 | set_jumps = true, -- whether to set jumps in the jumplist 57 | goto_next_start = { 58 | [']m'] = '@function.outer', 59 | [']]'] = '@class.outer', 60 | }, 61 | goto_next_end = { 62 | [']M'] = '@function.outer', 63 | [']['] = '@class.outer', 64 | }, 65 | goto_previous_start = { 66 | ['[m'] = '@function.outer', 67 | ['[['] = '@class.outer', 68 | }, 69 | goto_previous_end = { 70 | ['[M'] = '@function.outer', 71 | ['[]'] = '@class.outer', 72 | }, 73 | }, 74 | swap = { 75 | enable = true, 76 | swap_next = { 77 | ['a'] = '@parameter.inner', 78 | }, 79 | swap_previous = { 80 | ['A'] = '@parameter.inner', 81 | }, 82 | }, 83 | }, 84 | } 85 | -------------------------------------------------------------------------------- /nixos/configuration.nix: -------------------------------------------------------------------------------- 1 | # Edit this configuration file to define what should be installed on 2 | # your system. Help is available in the configuration.nix(5) man page 3 | # and in the NixOS manual (accessible by running ‘nixos-help’). 4 | 5 | { lib, config, pkgs, ... }: 6 | let 7 | # These variable names are used by Aegis backend 8 | version = "unstable"; #unstable or 25.05 9 | username = "athena"; 10 | hashed = "$6$zjvJDfGSC93t8SIW$AHhNB.vDDPMoiZEG3Mv6UYvgUY6eya2UY5E2XA1lF7mOg6nHXUaaBmJYAMMQhvQcA54HJSLdkJ/zdy8UKX3xL1"; 11 | hashedRoot = "$6$zjvJDfGSC93t8SIW$AHhNB.vDDPMoiZEG3Mv6UYvgUY6eya2UY5E2XA1lF7mOg6nHXUaaBmJYAMMQhvQcA54HJSLdkJ/zdy8UKX3xL1"; 12 | hostname = "athenaos"; 13 | theme = "temple"; 14 | desktop = "gnome"; 15 | dmanager = "sddm"; 16 | sddmtheme = "cyberpunk"; 17 | mainShell = "fish"; 18 | terminal = "kitty"; 19 | browser = "firefox"; 20 | bootloader = if builtins.pathExists "/sys/firmware/efi" then "systemd" else "grub"; 21 | hm-version = if version == "unstable" then "master" else "release-" + version; # Correspond to home-manager GitHub branches 22 | home-manager = builtins.fetchTarball "https://github.com/nix-community/home-manager/archive/${hm-version}.tar.gz"; 23 | in 24 | { 25 | imports = [ # Include the results of the hardware scan. 26 | { 27 | athena = { 28 | inherit bootloader terminal theme mainShell browser; 29 | enable = true; 30 | homeManagerUser = username; 31 | baseConfiguration = true; 32 | baseSoftware = true; 33 | baseLocale = true; 34 | desktopManager = desktop; 35 | displayManager = dmanager; 36 | sddmTheme = sddmtheme; 37 | }; 38 | } 39 | (import "${home-manager}/nixos") 40 | /etc/nixos/hardware-configuration.nix 41 | ./. 42 | 43 | ]; 44 | 45 | users = lib.mkIf config.athena.enable { 46 | mutableUsers = false; 47 | extraUsers.root.hashedPassword = "${hashedRoot}"; 48 | users.${config.athena.homeManagerUser} = { 49 | shell = pkgs.${config.athena.mainShell}; 50 | isNormalUser = true; 51 | hashedPassword = "${hashed}"; 52 | extraGroups = [ "wheel" "input" "video" "render" "networkmanager" ]; 53 | }; 54 | }; 55 | 56 | networking = { 57 | hostName = "${hostname}"; 58 | enableIPv6 = false; 59 | }; 60 | 61 | services.flatpak.enable = true; 62 | 63 | cyber = { 64 | enable = false; 65 | role = "student"; 66 | }; 67 | } 68 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/kde/default.nix: -------------------------------------------------------------------------------- 1 | { lib, pkgs, config, ... }: 2 | let 3 | plasma-packages = with pkgs.libsForQt5; [ 4 | bluez-qt 5 | discover 6 | dolphin 7 | elisa 8 | gwenview 9 | kate 10 | kcalc 11 | kde-gtk-config 12 | kdeconnect-kde 13 | kdeplasma-addons 14 | kfind 15 | kinfocenter 16 | kmenuedit 17 | kpipewire 18 | kscreen 19 | plasma-browser-integration 20 | plasma-desktop 21 | plasma-nm 22 | plasma-pa 23 | plasma-systemmonitor 24 | plasma-thunderbolt 25 | plasma-vault 26 | plasma-welcome 27 | plasma-workspace 28 | polkit-kde-agent 29 | spectacle 30 | systemsettings 31 | ]; 32 | fontList = with pkgs; [ 33 | nerd-fonts.jetbrains-mono 34 | nerd-fonts.symbols-only 35 | ]; 36 | in { 37 | config = lib.mkIf (config.athena.desktopManager == "kde") { 38 | # ---- System Configuration ---- 39 | services.xserver = { 40 | enable = true; 41 | desktopManager.plasma5 = { 42 | enable = true; 43 | kwinrc = { 44 | "Plugins" = { 45 | blurEnabled = true; 46 | contrastEnabled = true; 47 | diminactiveEnabled = true; 48 | forceblurEnabled = true; 49 | invertEnabled = true; 50 | magiclampEnabled = true; 51 | slidebackEnabled = true; 52 | wobblywindowsEnabled = true; 53 | }; 54 | 55 | "org.kde.kdecoration2" = { 56 | BorderSize = "None"; 57 | BorderSizeAuto = false; 58 | ButtonsOnLeft = "XIA"; 59 | }; 60 | }; 61 | }; 62 | }; 63 | 64 | environment = { 65 | pathsToLink = [ "/share/backgrounds" ]; # TODO: https://github.com/NixOS/nixpkgs/issues/47173 66 | systemPackages = plasma-packages; 67 | }; 68 | 69 | xdg.portal = { 70 | enable = true; 71 | extraPortals = with pkgs.libsForQt5; [ 72 | xdg-desktop-portal-kde 73 | ]; 74 | }; 75 | 76 | # ---- Home Configuration ---- 77 | home-manager.users.${config.athena.homeManagerUser} = { pkgs, ...}: { 78 | home.packages = fontList; 79 | 80 | # It copies "./config/menus/gnome-applications.menu" source file to the nix store, and then symlinks it to the location. 81 | xdg.configFile."menus/applications-merged/applications-kmenuedit.menu".source = ./config/menus/applications-merged/applications-kmenuedit.menu; 82 | 83 | services.kdeconnect.enable = true; 84 | }; 85 | }; 86 | } 87 | -------------------------------------------------------------------------------- /nixos/modules/dev/neovim/lua/user/keymaps.lua: -------------------------------------------------------------------------------- 1 | local opts = { noremap = true, silent = true } 2 | 3 | local term_opts = { silent = true } 4 | 5 | -- Shorten function name 6 | local keymap = vim.api.nvim_set_keymap 7 | 8 | --Remap space as leader key 9 | keymap("", "", "", opts) 10 | vim.g.mapleader = " " 11 | vim.g.maplocalleader = " " 12 | 13 | -- Modes 14 | -- normal_mode = "n", 15 | -- insert_mode = "i", 16 | -- visual_mode = "v", 17 | -- visual_block_mode = "x", 18 | -- term_mode = "t", 19 | -- command_mode = "c", 20 | 21 | -- Normal -- 22 | -- Clean search highlights 23 | keymap("n", "", ":noh", opts) 24 | 25 | -- Better window navigation 26 | keymap("n", "", "h", opts) 27 | keymap("n", "", "j", opts) 28 | keymap("n", "", "k", opts) 29 | keymap("n", "", "l", opts) 30 | 31 | -- Center C-d and C-u 32 | keymap("n", "", "zz", opts) 33 | keymap("n", "", "zz", opts) 34 | 35 | -- Center search results 36 | keymap("n", "n", "nzzzv", opts) 37 | keymap("n", "N", "Nzzzv", opts) 38 | 39 | -- The control-shift-z of nvim 40 | keymap("n", "U", "", opts) 41 | 42 | -- Split 43 | keymap("n", "", ":vsplit", opts) 44 | keymap("n", "", ":split", opts) 45 | 46 | -- Fold 47 | keymap("n", "fc", ":foldclose", opts) 48 | keymap("n", "fo", ":foldopen", opts) 49 | 50 | -- Resize with arrows 51 | keymap("n", "", ":resize -2", opts) 52 | keymap("n", "", ":resize +2", opts) 53 | keymap("n", "", ":vertical resize -2", opts) 54 | keymap("n", "", ":vertical resize +2", opts) 55 | 56 | -- Insert -- 57 | -- Press jk fast to enter 58 | keymap("i", "jk", "", opts) 59 | 60 | -- Visual -- 61 | -- Stay in indent mode 62 | keymap("v", "<", "", ">gv", opts) 64 | 65 | -- Move text up and down 66 | keymap("v", "", ":m .+1==", opts) 67 | keymap("v", "", ":m .-2==", opts) 68 | keymap("v", "p", '"_dP', opts) 69 | 70 | -- Visual Block -- 71 | -- Move text up and down 72 | keymap("x", "J", ":move '>+1gv-gv", opts) 73 | keymap("x", "K", ":move '<-2gv-gv", opts) 74 | keymap("x", "", ":move '>+1gv-gv", opts) 75 | keymap("x", "", ":move '<-2gv-gv", opts) 76 | 77 | -- Terminal -- 78 | -- Better terminal navigation 79 | keymap('t', '', [[wincmd h]], term_opts) 80 | keymap('t', '', [[wincmd j]], term_opts) 81 | keymap('t', '', [[wincmd k]], term_opts) 82 | keymap('t', '', [[wincmd l]], term_opts) 83 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/--submit-design.yml: -------------------------------------------------------------------------------- 1 | name: "🖼️Submit design" 2 | description: Submit a design 3 | title: "[DESIGN]: " 4 | labels: ["design"] 5 | body: 6 | - type: markdown 7 | attributes: 8 | value: | 9 | Refer to [Submitting Design](https://www.athenaos.org/en/community/submitting-design/) to know how to submit a design. 10 | 11 | - type: checkboxes 12 | attributes: 13 | label: Which environment the design is intended for? 14 | description: | 15 | Tell us which environment the design is intended for. 16 | options: 17 | - label: "GNOME" 18 | - label: "KDE Plasma" 19 | - label: "Cinnamon" 20 | - label: "MATE" 21 | - label: "XFCE" 22 | - label: "Hyprland" 23 | 24 | - type: input 25 | attributes: 26 | label: GTK Theme 27 | description: | 28 | Type the source of the GTK Theme. 29 | placeholder: "https://github.com/EliverLara/Sweet" 30 | validations: 31 | required: true 32 | 33 | - type: input 34 | attributes: 35 | label: Icon Theme 36 | description: | 37 | Type the source of the Icon Theme. 38 | placeholder: "https://github.com/EliverLara/candy-icons" 39 | validations: 40 | required: true 41 | 42 | - type: input 43 | attributes: 44 | label: Cursor Theme 45 | description: | 46 | Type the source of the Cursor Theme. 47 | placeholder: "https://github.com/varlesh/oreo-cursors" 48 | validations: 49 | required: true 50 | 51 | - type: input 52 | attributes: 53 | label: Kitty Theme 54 | description: | 55 | Type the name of the Kitty Theme. 56 | placeholder: "Kitty theme name" 57 | validations: 58 | required: true 59 | 60 | - type: input 61 | attributes: 62 | label: VSCodium Theme 63 | description: | 64 | Type the name of the VSCodium Theme. 65 | placeholder: "VSCodium theme name" 66 | validations: 67 | required: true 68 | 69 | - type: input 70 | attributes: 71 | label: Tmux Theme 72 | description: | 73 | Type the name of the Tmux Theme. 74 | placeholder: "Tmux theme name" 75 | validations: 76 | required: true 77 | 78 | - type: textarea 79 | attributes: 80 | label: Setting Instructions 81 | description: Report the instructions for setting the theme correctly. 82 | placeholder: | 83 | Detailed instructions. 84 | validations: 85 | required: false 86 | 87 | - type: textarea 88 | attributes: 89 | label: Screenshots 90 | description: Show your rice. 91 | placeholder: | 92 | Paste your images or use ![Image Label](https://link-to-your-image) 93 | validations: 94 | required: false 95 | -------------------------------------------------------------------------------- /nixos/modules/dev/neovim/lua/user/colorscheme.lua: -------------------------------------------------------------------------------- 1 | theme_name = "tokyonight" 2 | 3 | local colorscheme_ok, colorscheme = pcall(require, theme_name) 4 | if not colorscheme_ok then 5 | return 6 | end 7 | 8 | function CreateDAPHighlights() 9 | if (theme_name == "tokyonight") then 10 | vim.api.nvim_set_hl(0, 'DapBreakpoint', { ctermbg = 0, fg = '#f7768e', bg = '#1a1b26' }) 11 | vim.api.nvim_set_hl(0, 'DapLogPoint', { ctermbg = 0, fg = '#449dab', bg = '#1a1b26' }) 12 | vim.api.nvim_set_hl(0, 'DapStopped', { ctermbg = 0, fg = '#e0af68', bg = '#1a1b26' }) 13 | elseif (theme_name == "rose-pine") then 14 | vim.api.nvim_set_hl(0, 'DapBreakpoint', { ctermbg = 0, fg = '#eb6f92', bg = '#191724' }) 15 | vim.api.nvim_set_hl(0, 'DapLogPoint', { ctermbg = 0, fg = '#9ccfd8', bg = '#191724' }) 16 | vim.api.nvim_set_hl(0, 'DapStopped', { ctermbg = 0, fg = '#f6c177', bg = '#191724' }) 17 | end 18 | end 19 | 20 | local function setupTheme() 21 | local opts = {} 22 | if theme_name == "tokyonight" then 23 | opts = { 24 | style = "night", 25 | on_highlights = function(hl, c) 26 | hl.TelescopeBorder = { 27 | bg = c.bg_dark, 28 | fg = c.bg_dark 29 | } 30 | 31 | vim.api.nvim_set_hl(0, 'HarpoonBorder', { fg = c.bg_dark, bg = c.bg_dark }) 32 | vim.api.nvim_set_hl(0, 'HarpoonWindow', { fg = c.fg, bg = c.bg_dark }) 33 | vim.api.nvim_set_hl(0, 'HarpoonTitle', { fg = c.purple, bg = c.bg_dark }) 34 | end 35 | } 36 | vim.g.tokyonight_style = "night" 37 | elseif theme_name == "rose-pine" then 38 | local rose_pine_palette_ok, palette = pcall(require, 'rose-pine.palette') 39 | if rose_pine_palette_ok then 40 | opts = { 41 | disable_float_background = true, 42 | highlight_groups = { 43 | TelescopeBorder = { bg = palette.base, fg = palette.muted }, 44 | TelescopeTitle = { bg = palette.base, fg = palette.gold }, 45 | TelescopeResultsNormal = { bg = palette.base, fg = palette.text }, 46 | } 47 | } 48 | vim.api.nvim_set_hl(0, 'HarpoonBorder', { fg = palette.muted, bg = palette.base }) 49 | vim.api.nvim_set_hl(0, 'HarpoonWindow', { fg = palette.text, bg = palette.base }) 50 | vim.api.nvim_set_hl(0, 'HarpoonTitle', { fg = palette.gold, bg = palette.base }) 51 | end 52 | end 53 | 54 | colorscheme.setup(opts) 55 | 56 | ---@diagnostic disable-next-line: param-type-mismatch 57 | local status_ok, _ = pcall(vim.cmd, "colorscheme " .. theme_name) 58 | if not status_ok then 59 | vim.notify("colorscheme " .. theme_name .. " not found!") 60 | return 61 | end 62 | end 63 | 64 | setupTheme() 65 | -------------------------------------------------------------------------------- /nixos/installation/iso.nix: -------------------------------------------------------------------------------- 1 | { pkgs, lib, config, ... }: { 2 | 3 | imports = [ 4 | ./installation-cd-graphical-mate.nix 5 | ]; 6 | 7 | boot = { 8 | kernelPackages = pkgs.linuxPackages; # LTS Kernel 9 | kernelModules = [ "rtl8821cu" ]; 10 | loader.grub.useOSProber = true; 11 | }; 12 | 13 | # Needed for https://github.com/NixOS/nixpkgs/issues/58959 14 | boot.supportedFilesystems = lib.mkForce [ "btrfs" "reiserfs" "vfat" "ext4" "f2fs" "xfs" "ntfs" "cifs" ]; 15 | 16 | hardware = { 17 | cpu.amd.updateMicrocode = true; 18 | cpu.intel.updateMicrocode = true; 19 | bluetooth.enable = true; 20 | #enableAllFirmware = true; # Need allowUnfree = true 21 | enableRedistributableFirmware = true; 22 | opengl = { 23 | enable = true; 24 | }; 25 | }; 26 | 27 | services = { 28 | timesyncd = { 29 | # feel free to change to sth around your location 30 | # servers = ["pl.pool.ntp.org"]; 31 | enable = true; 32 | }; 33 | 34 | printing.enable = false; 35 | vnstat.enable = true; 36 | 37 | avahi = { 38 | enable = true; 39 | browseDomains = []; 40 | wideArea = false; 41 | nssmdns = true; 42 | }; 43 | 44 | unbound = { 45 | enable = true; 46 | settings.server = { 47 | access-control = []; 48 | interface = []; 49 | }; 50 | }; 51 | 52 | hardware = { 53 | bolt.enable = true; 54 | }; 55 | 56 | xserver.exportConfiguration = true; 57 | }; 58 | 59 | networking = { 60 | hostName = "athenaos"; 61 | dhcpcd.enable = true; 62 | networkmanager.dhcp = "dhcpcd"; 63 | firewall = { 64 | #allowedTCPPorts = [22 80]; 65 | #allowPing = false; 66 | checkReversePath = "loose"; 67 | enable = true; 68 | logReversePathDrops = true; 69 | # trustedInterfaces = [ "" ]; 70 | }; 71 | }; 72 | 73 | #time.timeZone = "UTC"; # change to your one 74 | 75 | # locales as well 76 | i18n = { 77 | defaultLocale = "en_US.UTF-8"; 78 | }; 79 | 80 | programs = { 81 | git.enable = true; 82 | nano.enable = true; 83 | }; 84 | 85 | fonts.packages = with pkgs; [ 86 | noto-fonts 87 | noto-fonts-emoji 88 | ]; 89 | 90 | # List packages installed in system profile. To search, run: 91 | # $ nix search wget 92 | environment.systemPackages = with pkgs; [ 93 | (callPackage ../pkgs/aegis-nix/package.nix { }) 94 | (callPackage ../pkgs/aegis-tui/package.nix { }) 95 | (callPackage ../pkgs/athena-config-nix/package.nix { }) 96 | ]; 97 | 98 | home-manager.users.${config.athena.homeManagerUser} = { pkgs, ... }: { 99 | /* The home.stateVersion option does not have a default and must be set */ 100 | home.stateVersion = "24.05"; 101 | nixpkgs.config.allowUnfree = true; 102 | }; 103 | } 104 | -------------------------------------------------------------------------------- /nixos/modules/dev/neovim/lua/user/options.lua: -------------------------------------------------------------------------------- 1 | local options = { 2 | backup = false, -- creates a backup file 3 | clipboard = "unnamedplus", -- allows neovim to access the system clipboard 4 | cmdheight = 1, -- more space in the neovim command line for displaying messages 5 | completeopt = { "menuone", "noselect" }, -- mostly just for cmp 6 | conceallevel = 0, -- so that `` is visible in markdown files 7 | fileencoding = "utf-8", -- the encoding written to a file 8 | hlsearch = true, -- highlight all matches on previous search pattern 9 | ignorecase = true, -- ignore case in search patterns 10 | mouse = "a", -- allow the mouse to be used in neovim 11 | pumheight = 10, -- pop up menu height 12 | showmode = false, -- we don't need to see things like -- INSERT -- anymore 13 | showtabline = 0, -- always show tabs 14 | smartcase = true, -- smart case 15 | smartindent = true, -- make indenting smarter again 16 | splitbelow = true, -- force all horizontal splits to go below current window 17 | splitright = true, -- force all vertical splits to go to the right of current window 18 | swapfile = false, -- creates a swapfile 19 | termguicolors = true, -- set term gui colors (most terminals support this) 20 | timeoutlen = 1000, -- time to wait for a mapped sequence to complete (in milliseconds) 21 | undofile = true, -- enable persistent undo 22 | updatetime = 300, -- faster completion (4000ms default) 23 | writebackup = false, -- if a file is being edited by another program (or was written to file while editing with another program), it is not allowed to be edited 24 | expandtab = true, -- convert tabs to spaces 25 | shiftwidth = 2, -- the number of spaces inserted for each indentation 26 | tabstop = 2, -- insert 2 spaces for a tab 27 | cursorline = true, -- highlight the current line 28 | cursorlineopt = "line", -- highlight only the text line 29 | number = true, -- set numbered lines 30 | relativenumber = true, -- set relative numbered lines 31 | numberwidth = 4, -- set number column width to 2 {default 4} 32 | signcolumn = "yes", -- always show the sign column, otherwise it would shift the text each time 33 | wrap = false, -- display lines as one long line 34 | scrolloff = 8, -- is one of my fav 35 | sidescrolloff = 8, 36 | foldlevel = 99, 37 | foldmethod = "expr", 38 | foldexpr = "nvim_treesitter#foldexpr()", 39 | guifont = "monospace:h17", -- the font used in graphical neovim applications 40 | } 41 | 42 | vim.opt.shortmess:append "c" 43 | 44 | for k, v in pairs(options) do 45 | vim.opt[k] = v 46 | end 47 | 48 | vim.cmd "set whichwrap+=<,>,[,],h,l" 49 | vim.cmd [[set iskeyword+=-]] 50 | vim.cmd [[set formatoptions-=cro]] -- TODO: this doesn't seem to work 51 | 52 | -- [[ Highlight on yank ]] 53 | -- See `:help vim.highlight.on_yank()` 54 | local highlight_group = vim.api.nvim_create_augroup('YankHighlight', { clear = true }) 55 | vim.api.nvim_create_autocmd('TextYankPost', { 56 | callback = function() 57 | vim.highlight.on_yank() 58 | end, 59 | group = highlight_group, 60 | pattern = '*', 61 | }) 62 | 63 | vim.o.autoread = true 64 | vim.api.nvim_create_autocmd({ "BufEnter", "CursorHold", "CursorHoldI", "FocusGained" }, { 65 | command = "if mode() != 'c' | checktime | endif", 66 | pattern = { "*" }, 67 | }) 68 | -------------------------------------------------------------------------------- /nixos/modules/cyber/roles/network.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | 3 | with pkgs; 4 | 5 | [ 6 | _3proxy 7 | aircrack-ng 8 | airgeddon 9 | argus 10 | argus-clients 11 | arp-scan 12 | arping 13 | arpoison 14 | asnmap 15 | atftp 16 | batctl 17 | bettercap 18 | bind 19 | bully 20 | burpsuite 21 | cadaver 22 | caido 23 | chisel 24 | cntlm 25 | coercer 26 | corkscrew 27 | cowpatty 28 | creds 29 | darkstat 30 | dnschef 31 | dnsmasq 32 | # https://github.com/NixOS/nixpkgs/issues/468668 33 | # driftnet 34 | # https://github.com/NixOS/nixpkgs/issues/468669 35 | # dsniff 36 | # https://github.com/NixOS/nixpkgs/issues/425350 37 | # dublin-traceroute 38 | dump1090-fa 39 | etherape 40 | ettercap 41 | evillimiter 42 | exabgp 43 | fping 44 | freeipmi 45 | freeradius 46 | geoip 47 | girsh 48 | # https://github.com/NixOS/nixpkgs/issues/425465 49 | # gnuradio # Too long time for building 50 | # https://github.com/NixOS/nixpkgs/issues/425346 51 | # gpredict 52 | # https://github.com/NixOS/nixpkgs/issues/425469 53 | # gqrx 54 | gsocket # Too long time for building 55 | hackrf 56 | hcxdumptool 57 | hcxtools 58 | hostapd-mana 59 | hping 60 | httping 61 | httptunnel 62 | i2pd 63 | iodine 64 | ipmitool 65 | iputils 66 | jnetmap 67 | # https://github.com/NixOS/nixpkgs/issues/425343 68 | # junkie 69 | kismet 70 | ldapdomaindump 71 | libosmocore 72 | # https://github.com/NixOS/nixpkgs/issues/425358 73 | # libtins 74 | ligolo-ng 75 | # linuxKernel.packages.linux_zen.batman_adv 76 | macchanger 77 | mailsend 78 | mapcidr 79 | mdk4 80 | metasploit 81 | mfcuk 82 | mfoc 83 | miredo 84 | # https://github.com/NixOS/nixpkgs/issues/425338 85 | # mitm6 86 | mitmproxy 87 | mitmproxy2swagger 88 | mtr 89 | mtr-gui 90 | mubeng 91 | multimon-ng 92 | netdiscover 93 | netsniff-ng 94 | # networkminer 95 | nfdump 96 | ngrep 97 | ngrok 98 | obfs4 99 | ostinato 100 | p0f 101 | pcapfix 102 | pixiewps 103 | pmacct 104 | proxify 105 | proxmark3 106 | proxychains-ng 107 | pwnat 108 | pwncat 109 | python313Packages.impacket 110 | python313Packages.ldapdomaindump 111 | python313Packages.netmap 112 | python313Packages.scapy 113 | python313Packages.sshtunnel 114 | python313Packages.torpy 115 | python313Packages.websockify 116 | rathole 117 | reaverwps-t6x 118 | redsocks 119 | responder 120 | rinetd 121 | rustcat 122 | samplicator 123 | sniffglue 124 | snmpcheck 125 | snort 126 | soapui 127 | socat 128 | spiped 129 | ssh-mitm 130 | sshuttle 131 | ssldump 132 | sslh 133 | sslscan 134 | sslsplit 135 | stacs 136 | stunnel 137 | suricata 138 | swaks 139 | tcpdump 140 | tcpflow 141 | tcpreplay 142 | tcptraceroute 143 | thc-ipv6 144 | tinc 145 | tinyproxy 146 | tor 147 | torsocks 148 | tshark 149 | udp2raw 150 | udpreplay 151 | udptunnel 152 | # https://github.com/NixOS/nixpkgs/issues/425439 153 | # urh 154 | wavemon 155 | wifite2 156 | wireshark 157 | wstunnel 158 | yersinia 159 | zap 160 | zdns 161 | # https://github.com/NixOS/nixpkgs/issues/425374 162 | # zeek 163 | zssh 164 | zulu 165 | zzuf 166 | ] 167 | -------------------------------------------------------------------------------- /nixos/home-manager/desktops/cinnamon/default.nix: -------------------------------------------------------------------------------- 1 | { lib, config, pkgs, ... }: 2 | let 3 | cinnamon-packages = with pkgs; [ 4 | ffmpeg 5 | gnome-screenshot 6 | xdg-user-dirs 7 | xdotool 8 | xorg.xdpyinfo 9 | xorg.xwininfo 10 | ]; 11 | 12 | fontList = with pkgs; [ 13 | nerd-fonts.jetbrains-mono 14 | nerd-fonts.symbols-only 15 | ]; 16 | 17 | gtkTheme = "${config.athena.theme-components.gtk-theme}"; 18 | gtkIconTheme = "${config.athena.theme-components.icon-theme}"; 19 | gtkCursorTheme = "${config.athena.theme-components.cursor-theme}"; 20 | backgroundTheme = "${config.athena.theme-components.background}"; 21 | in { 22 | config = lib.mkIf (config.athena.desktopManager == "cinnamon") { 23 | # ---- System Configuration ---- 24 | services = { 25 | cinnamon.apps.enable = true; 26 | xserver = { 27 | enable = true; 28 | desktopManager = { 29 | cinnamon.enable = true; 30 | }; 31 | }; 32 | }; 33 | 34 | xdg.portal.enable = true; 35 | environment = { 36 | pathsToLink = [ "/share/backgrounds" ]; # TODO: https://github.com/NixOS/nixpkgs/issues/47173 37 | systemPackages = cinnamon-packages; 38 | }; 39 | 40 | fonts.packages = fontList; 41 | 42 | # ---- Home Configuration ---- 43 | home-manager.users.${config.athena.homeManagerUser} = { pkgs, ...}: { 44 | dconf.settings = { 45 | "org/cinnamon/desktop/background" = { 46 | picture-uri = "file:///run/current-system/sw/share/backgrounds/athena/${backgroundTheme}"; 47 | picture-uri-dark = "file:///run/current-system/sw/share/backgrounds/athena/${backgroundTheme}"; 48 | }; 49 | 50 | "org/cinnamon/desktop/background" = { 51 | picture-options = "stretched"; 52 | }; 53 | 54 | "org/cinnamon/desktop/interface" = { 55 | gtk-theme = gtkTheme; 56 | icon-theme = gtkIconTheme; 57 | cursor-theme = gtkCursorTheme; 58 | color-scheme = "prefer-dark"; 59 | }; 60 | 61 | "org/cinnamon/desktop/wm/preferences" = { 62 | theme = gtkTheme; 63 | }; 64 | }; 65 | 66 | # It copies "./config/menus/gnome-applications.menu" source file to the nix store, and then symlinks it to the location. 67 | xdg.configFile = { 68 | "menus/applications-merged/cinnamon-applications.menu".source = ./config/menus/applications-merged/cinnamon-applications.menu; 69 | "cinnamon/spices/grouped-window-list@cinnamon.org/2.json".source = ./2.json; 70 | }; 71 | 72 | dconf.settings = { 73 | "org/cinnamon" = { 74 | enabled-applets = [ "panel1:left:0:menu@cinnamon.org:0" "panel1:left:1:separator@cinnamon.org:1" "panel1:left:2:grouped-window-list@cinnamon.org:2" "panel1:right:0:systray@cinnamon.org:3" "panel1:right:1:xapp-status@cinnamon.org:4" "panel1:right:2:notifications@cinnamon.org:5" "panel1:right:3:printers@cinnamon.org:6" "panel1:right:4:removable-drives@cinnamon.org:7" "panel1:right:5:keyboard@cinnamon.org:8" "panel1:right:6:favorites@cinnamon.org:9" "panel1:right:7:network@cinnamon.org:10" "panel1:right:8:sound@cinnamon.org:11" "panel1:right:9:power@cinnamon.org:12" "panel1:right:10:calendar@cinnamon.org:13" "panel1:right:11:cornerbar@cinnamon.org:14" ]; 75 | next-applet-id = 15; 76 | }; 77 | }; 78 | }; 79 | }; 80 | } 81 | -------------------------------------------------------------------------------- /nixos/modules/dev/neovim/lua/user/lsp/handlers.lua: -------------------------------------------------------------------------------- 1 | local M = {} 2 | 3 | M.setup = function() 4 | local signs = { 5 | { name = "DiagnosticSignError", text = "" }, 6 | { name = "DiagnosticSignWarn", text = "" }, 7 | { name = "DiagnosticSignHint", text = "" }, 8 | { name = "DiagnosticSignInfo", text = "" }, 9 | } 10 | 11 | for _, sign in ipairs(signs) do 12 | vim.fn.sign_define(sign.name, { texthl = sign.name, text = sign.text, numhl = "" }) 13 | end 14 | 15 | local config = { 16 | virtual_text = true, 17 | signs = { 18 | active = signs, 19 | }, 20 | update_in_insert = true, 21 | underline = true, 22 | severity_sort = true, 23 | float = { 24 | focusable = false, 25 | style = "minimal", 26 | border = "rounded", 27 | source = "always", 28 | header = "", 29 | prefix = "", 30 | }, 31 | } 32 | 33 | vim.diagnostic.config(config) 34 | 35 | vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, { 36 | border = "rounded", 37 | }) 38 | 39 | vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, { 40 | border = "rounded", 41 | }) 42 | end 43 | 44 | local function lsp_highlight_document(client) 45 | -- Set autocommands conditional on server_capabilities 46 | if client.server_capabilities.document_highlight then 47 | vim.api.nvim_exec( 48 | [[ 49 | augroup lsp_document_highlight 50 | autocmd! * 51 | autocmd CursorHold lua vim.lsp.buf.document_highlight() 52 | autocmd CursorMoved lua vim.lsp.buf.clear_references() 53 | augroup END 54 | ]] , 55 | false 56 | ) 57 | end 58 | end 59 | 60 | local function lsp_keymaps(bufnr) 61 | local opts = { noremap = true, silent = true } 62 | vim.api.nvim_buf_set_keymap(bufnr, "n", "gD", "lua vim.lsp.buf.declaration()", opts) 63 | vim.api.nvim_buf_set_keymap(bufnr, "n", "gd", "lua require'telescope.builtin'.lsp_definitions()", opts) 64 | -- vim.api.nvim_buf_set_keymap(bufnr, "n", "gd", "lua require'telescope.builtin'.lsp_type_definitions()", opts) 65 | vim.api.nvim_buf_set_keymap(bufnr, "n", "K", "lua vim.lsp.buf.hover()", opts) 66 | vim.api.nvim_buf_set_keymap(bufnr, "n", "gi", "lua require'telescope.builtin'.lsp_implementations()", opts) 67 | vim.api.nvim_buf_set_keymap(bufnr, "n", "gr", "lua require'telescope.builtin'.lsp_references()", opts) 68 | vim.api.nvim_buf_set_keymap( 69 | bufnr, 70 | "n", 71 | "gl", 72 | 'lua vim.diagnostic.open_float({ border = "rounded" })', 73 | opts 74 | ) 75 | -- vim.api.nvim_buf_set_keymap(bufnr, "n", "q", "lua vim.diagnostic.setloclist()", opts) 76 | vim.cmd [[ command! Format execute 'lua vim.lsp.buf.formatting()' ]] 77 | end 78 | 79 | M.on_attach = function(client, bufnr) 80 | if client.name == "tsserver" then 81 | client.server_capabilities.documentFormattingProvider = false 82 | end 83 | lsp_keymaps(bufnr) 84 | lsp_highlight_document(client) 85 | end 86 | 87 | local capabilities = vim.lsp.protocol.make_client_capabilities() 88 | 89 | local status_ok, cmp_nvim_lsp = pcall(require, "cmp_nvim_lsp") 90 | if not status_ok then 91 | return 92 | end 93 | 94 | M.capabilities = cmp_nvim_lsp.default_capabilities(capabilities) 95 | 96 | return M 97 | --------------------------------------------------------------------------------