├── 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 |
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 |
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 
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 |
--------------------------------------------------------------------------------