[
  {
    "path": ".gitignore",
    "content": "result\n\n#\n.idea"
  },
  {
    "path": "README.md",
    "content": "# 🛠️ Installation\n\n___\n\n- #### Make a backup of your current `nixos` configurations:\n```shell\ndoas mv /etc/nixos{,.bak}\n```\n- #### Clone the starter:\n```shell\ndoas git clone git@github.com:EkoEdyPurwanto/nixos.git /etc/\n```\n- #### Remove the `.git` folder, so you can add it to your own repo later:\n```shell\ndoas rm -rf /etc/nixos/.git\n```\n> ### Note:\n>> if you're not using `doas`, replace with `sudo`\n\n___"
  },
  {
    "path": "asset/ascii/onepiece/01.txt",
    "content": "\n      ╦╩╨╨╩╦                                      ╓╧╩╨╩╦\n     ╫      ╫            ╓╥╦╦╗╗╗╗╦╦╥╥            ╟╩     ╫\n  ╦╨╙╙     ╔╩        ╥╦╩╨╙╙╙╙╙╙╙╙╙╙╙╙╙╨╗╥        ╚╦     ╙╨╨╦\n ╫         ╙╩╦    ╓╫╩╙╓╓╙╙╙╙╙╙╙╙╙╙╙╙╙╙╙╓╙╨╫╥    ╓╝╨         ╫\n ╙╦    ╥      ╨╦╓╣╩─╓╫╩╓╫┬╥╓╙╙╙╙╙╙╙╙╙╦╖╙╫╦╓╙╫╥╦╩└     ╓    ╓╩\n   ╙╨╨╨ ╨╦┌    ╓╫╫╓╓╟╓╓╫╓╟╫╓╓╓╓╓╓╓╓╓╓╟╫╓╓╫╬╓╟╫╦     ╦╩└╨╨╩╨└\n          ╙╣╥  ╫╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╣╦ ╓╦╨\n             ╨╫╫╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╣╫╩╨\n      ╫╩╨╨╨╨╨╨╨╨╨╨╨╨╨╨╨╨╨╨╨╨╨╨╨╨╨╨╨╨╨╨╨╨╨╨╨╨╨╨╨╨╨╨╨╨╨╨╨╣\n      ╨╩╝╝╝╝╝╝╣╝╝╝╝╝╝╝╝╝╝╝╝╝╝╝╝╝╝╝╝╝╝╝╝╝╝╝╝╝╝╝╝╫╝╝╝╝╝╝╝╝\n              ╚╫     ╓╦╫╫╫╦╦      ╓╦╫╫╫╦╥     ╓╫\n               ╫╦   ╓╫╫╫╫╫╫╫╫    ╟╫╫╫╫╫╫╫╫    ╫\n                ╨╦  ╙╫╫╫╫╫╫╫╫    ╟╫╫╫╫╫╫╫╫  ╓╫─\n                 ╙╫╥ ╙╩╫╫╫╫╩      ╨╫╫╫╫╫╩  ╦╩\n                   ╙╫╥        ╫╫╫       ╓╫╩\n                    ╦╫╩╩╗╦╥╓      ╓╓╥╦╩╫╫╦\n                 ╓╫╨ ╫╓   ╫ └╙╙╫╙╙ ╫    ╫ ╨╗╥\n               ╥╩└  ╟╛ ╨╩╣╦╥╓ ╓╫ ╓╥╫╦╧╨╨╙╦  ╙╩╦\n       ╓╦╝╩╗╥╦╩     ╫╩╦╓ ╫    ╙╫   ╘╫  ╓╦╫     ╨╦╥╦╧═╦╓\n      ╟╩          ╓╦╫─  ╨╨╤╦╥╥╥╫╥╥╦╗╩╨╨  ╫╦           ╙╦\n      ╟╕        ╓╩╨ ╙╫                  ╟╛ ╙╣╥        ╓╩\n       ╙╩╦╦      ╫   ╙╦                ╦╨   ╫      ╦╦╩╨\n          ╫╥    ╓╩     ╨╤╥┌         ╓╦╨     ╫╥    ╓╩\n           ╙╨╧╧╩╨          ╙╨╨╨╨╨╨╨└         ╙╩══╩╨\n"
  },
  {
    "path": "config/hypr/configs/animation.conf",
    "content": "#################\n### ANIMATION ###\n#################\n\n# https://wiki.hyprland.org/Configuring/Variables/#animations\n# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more\n\nanimations {\n    enabled = true\n\n    bezier = myBezier, 0.05, 0.9, 0.1, 1.05\n\n    animation = windows, 1, 7, myBezier\n    animation = windowsOut, 1, 7, default, popin 80%\n    animation = border, 1, 10, default\n    animation = borderangle, 1, 8, default\n    animation = fade, 1, 7, default\n    animation = workspaces, 1, 6, default\n}"
  },
  {
    "path": "config/hypr/configs/autostart.conf",
    "content": "#################\n### AUTOSTART ###\n#################\n\n# Autostart necessary processes (like notifications daemons, status bars, etc.)\n# Or execute your favorite apps at launch like this:\n\nexec-once = nm-applet &\nexec-once = waybar\nexec-once= waypaper --restore"
  },
  {
    "path": "config/hypr/configs/decoration.conf",
    "content": "# https://wiki.hyprland.org/Configuring/Variables/#decoration\ndecoration {\n    rounding = 10\n\n    # Change transparency of focused and unfocused windows\n    active_opacity = 1.0\n    inactive_opacity = 1.0\n\n    # drop_shadow = true\n    # shadow_range = 4\n    # shadow_render_power = 3\n    # col.shadow = rgba(1a1a1aee)\n\n    # https://wiki.hyprland.org/Configuring/Variables/#blur\n    blur {\n        enabled = true\n        size = 3\n        passes = 1\n        \n        vibrancy = 0.1696\n    }\n}\n"
  },
  {
    "path": "config/hypr/configs/env.conf",
    "content": "#############################\n### ENVIRONMENT VARIABLES ###\n#############################\n\n# See https://wiki.hyprland.org/Configuring/Environment-variables/\n\nenv = XCURSOR_SIZE,24\nenv = HYPRCURSOR_SIZE,24"
  },
  {
    "path": "config/hypr/configs/input.conf",
    "content": "#############\n### INPUT ###\n#############\n\n# https://wiki.hyprland.org/Configuring/Variables/#input\ninput {\n    kb_layout = us\n    kb_variant =\n    kb_model =\n    kb_options =\n    kb_rules =\n\n    follow_mouse = 1\n\n    sensitivity = 0 # -1.0 - 1.0, 0 means no modification.\n\n    touchpad {\n        natural_scroll = true\n    }\n}"
  },
  {
    "path": "config/hypr/configs/keybinding.conf",
    "content": "###################\n### MY PROGRAMS ###\n###################\n\n# See https://wiki.hyprland.org/Configuring/Keywords/\n\n# Set programs that you use\n$kitty-terminal = kitty\n$alacritty-terminal = alacritty\n$vs-code = code\n$telegram = telegram-desktop\n$fileManager = kitty -e yazi\n$menu = rofi -show drun\n$browser = chromium\n$tor-browser = tor-browser\n\n####################\n### KEYBINDING ###\n####################\n\n# See https://wiki.hyprland.org/Configuring/Keywords/\n$mainMod = SUPER # Sets \"Windows\" key as main modifier\n\n# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more\nbind = $mainMod, T, exec, $kitty-terminal\nbind = $mainMod SHIFT, T, exec, $alacritty-terminal\nbind = $mainMod, period, exec, code\nbind = $mainMod, B, exec, $browser\nbind = $mainMod SHIFT, B, exec, $tor-browser\nbind = $mainMod, X, exec, $telegram\nbind = $mainMod, F, exec, $fileManager\nbind = $mainMod, R, exec, $menu\nbind = $mainMod, Q, killactive,\nbind = $mainMod, M, exit,\nbind = $mainMod, V, togglefloating,\nbind = $mainMod, P, pseudo, # dwindle\nbind = $mainMod, J, togglesplit, # dwindle\nbind = $mainMod, PRINT, exec, hyprshot -m window # Screenshot a window\nbind = , PRINT, exec, hyprshot -m output # Screenshot a monitor\nbind = $shiftMod, PRINT, exec, hyprshot -m region # Screenshot a region\n\n# Move focus with mainMod + arrow keys\nbind = $mainMod, left, movefocus, l\nbind = $mainMod, right, movefocus, r\nbind = $mainMod, up, movefocus, u\nbind = $mainMod, down, movefocus, d\n\n# Switch workspaces with mainMod + [0-9]\nbind = $mainMod, 1, workspace, 1\nbind = $mainMod, 2, workspace, 2\nbind = $mainMod, 3, workspace, 3\nbind = $mainMod, 4, workspace, 4\nbind = $mainMod, 5, workspace, 5\nbind = $mainMod, 6, workspace, 6\nbind = $mainMod, 7, workspace, 7\nbind = $mainMod, 8, workspace, 8\nbind = $mainMod, 9, workspace, 9\nbind = $mainMod, 0, workspace, 10\n\n# Move active window to a workspace with mainMod + SHIFT + [0-9]\nbind = $mainMod SHIFT, 1, movetoworkspace, 1\nbind = $mainMod SHIFT, 2, movetoworkspace, 2\nbind = $mainMod SHIFT, 3, movetoworkspace, 3\nbind = $mainMod SHIFT, 4, movetoworkspace, 4\nbind = $mainMod SHIFT, 5, movetoworkspace, 5\nbind = $mainMod SHIFT, 6, movetoworkspace, 6\nbind = $mainMod SHIFT, 7, movetoworkspace, 7\nbind = $mainMod SHIFT, 8, movetoworkspace, 8\nbind = $mainMod SHIFT, 9, movetoworkspace, 9\nbind = $mainMod SHIFT, 0, movetoworkspace, 10\n\n# Example special workspace (scratchpad)\nbind = $mainMod, S, togglespecialworkspace, magic\nbind = $mainMod SHIFT, S, movetoworkspace, special:magic\n\n# Scroll through existing workspaces with mainMod + scroll\nbind = $mainMod, mouse_down, workspace, e+1\nbind = $mainMod, mouse_up, workspace, e-1\n\n# Move/resize windows with mainMod + LMB/RMB and dragging\nbindm = $mainMod, mouse:272, movewindow\nbindm = $mainMod, mouse:273, resizewindow\n\n###########################################\n# Fn KEYS\n###########################################\n# Brightness\nbind = , XF86MonBrightnessUp, exec, brightnessctl set 1%+\nbind = , XF86MonBrightnessDown, exec, brightnessctl set 1%-\n\n# Volume\nbind = , XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_SINK@ 1%+\nbind = , XF86AudioLowerVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_SINK@ 1%-\nbind = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_SINK@ toggle"
  },
  {
    "path": "config/hypr/configs/layout.conf",
    "content": "# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more\ndwindle {\n    pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below\n    preserve_split = true # You probably want this\n}\n\n# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more\nmaster {\n    new_status = master\n}\n\n# https://wiki.hyprland.org/Configuring/Variables/#gestures\ngestures {\n    workspace_swipe = false\n}"
  },
  {
    "path": "config/hypr/configs/misc.conf",
    "content": "# https://wiki.hyprland.org/Configuring/Variables/#misc\nmisc { \n    force_default_wallpaper = 2 # Set to 0 or 1 to disable the anime mascot wallpapers. set 2 to choose anime mascot wallpapers. and -1 for random wallpaper\n    disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :(\n}"
  },
  {
    "path": "config/hypr/configs/monitor.conf",
    "content": "################\n### MONITORS ###\n################\n\n# See https://wiki.hyprland.org/Configuring/Monitors/\nmonitor=,preferred,auto,auto"
  },
  {
    "path": "config/hypr/configs/window.conf",
    "content": "#####################\n### LOOK AND FEEL ###\n#####################\n\n# Refer to https://wiki.hyprland.org/Configuring/Variables/\n\n# https://wiki.hyprland.org/Configuring/Variables/#general\ngeneral { \n    gaps_in = 5\n    gaps_out = 20\n\n    border_size = 2\n\n    # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors\n    col.active_border = rgba(dededeff) rgba(dededeff) 45deg\n    col.inactive_border = rgba(595959aa)\n\n\n    # Set to true enable resizing windows by clicking and dragging on borders and gaps\n    resize_on_border = true \n\n    # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on\n    allow_tearing = false\n\n    layout = dwindle\n}"
  },
  {
    "path": "config/hypr/configs/windowrule.conf",
    "content": "##############################\n### WINDOWS AND WORKSPACES ###\n##############################\n\n# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more\n# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules\n\n# Example windowrule v1\n# windowrule = float, ^(kitty)$\n\n# Example windowrule v2\n# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$\n\nwindowrulev2 = suppressevent maximize, class:.* # You'll probably like this.\nwindowrulev2 = minsize 450 450, class:.*\n"
  },
  {
    "path": "config/hypr/hyprland.conf",
    "content": "# ███████╗ ██████╗ ██╗   ██╗██████╗  ██████╗██╗███╗   ██╗ ██████╗ \n# ██╔════╝██╔═══██╗██║   ██║██╔══██╗██╔════╝██║████╗  ██║██╔════╝ \n# ███████╗██║   ██║██║   ██║██████╔╝██║     ██║██╔██╗ ██║██║  ███╗\n# ╚════██║██║   ██║██║   ██║██╔══██╗██║     ██║██║╚██╗██║██║   ██║\n# ███████║╚██████╔╝╚██████╔╝██║  ██║╚██████╗██║██║ ╚████║╚██████╔╝\n# ╚══════╝ ╚═════╝  ╚═════╝ ╚═╝  ╚═╝ ╚═════╝╚═╝╚═╝  ╚═══╝ ╚═════╝ \n                                                                \nsource = ~/.config/hypr/configs/animation.conf\nsource = ~/.config/hypr/configs/autostart.conf\nsource = ~/.config/hypr/configs/decoration.conf\nsource = ~/.config/hypr/configs/env.conf\nsource = ~/.config/hypr/configs/input.conf\nsource = ~/.config/hypr/configs/keybinding.conf\nsource = ~/.config/hypr/configs/layout.conf\nsource = ~/.config/hypr/configs/misc.conf\nsource = ~/.config/hypr/configs/monitor.conf\nsource = ~/.config/hypr/configs/window.conf\nsource = ~/.config/hypr/configs/windowrule.conf\n\n# Example per-device config\n# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more\ndevice {\n    name = epic-mouse-v1\n    sensitivity = -0.5\n}"
  },
  {
    "path": "configuration.nix",
    "content": "{ config, ... }:\n\n{\n    imports = [\n        ./nixos\n        ./home-manager\n    ];\n\n    # Activation script untuk membuat symlink ~/.config/hypr\n    system.activationScripts.linkHyprlandConfig = {\n        text = ''\n            TARGET=\"/home/eep/.config/hypr\"\n            SOURCE=\"/etc/nixos/config/hypr\"\n\n            # Pastikan source ada\n            if [ ! -d \"$SOURCE\" ]; then\n                echo \"❌ Folder source tidak ditemukan: $SOURCE\"\n                exit 1\n            fi\n\n            # Kalau target ada tapi bukan symlink, hapus\n            if [ -e \"$TARGET\" ] && [ ! -L \"$TARGET\" ]; then\n                echo \"⚠️ Menghapus folder lama: $TARGET\"\n                rm -rf \"$TARGET\"\n            fi\n\n            # Buat symlink\n            ln -sfn \"$SOURCE\" \"$TARGET\"\n\n            echo \"✅ Hyprland config di-link ke $TARGET\"\n        '';\n    };\n}\n"
  },
  {
    "path": "docs/upgrade-channel.md",
    "content": "# Upgrade NixOS & Home-Manager(MODULE) dari **old.version** ke **new.version**\n\nDokumentasi ini menjelaskan langkah-langkah untuk mengganti channel\n**NixOS** dan **Home-Manager** dari versi **24.11** ke **25.05**.\n\n---\n\n## 1. Cek Channel Aktif\n\n```bash\ndoas nix-channel --list\n```\n\nBiasanya hasilnya:\n\n    home-manager https://github.com/nix-community/home-manager/archive/release-24.11.tar.gz\n    nixos https://nixos.org/channels/nixos-24.11\n\n---\n\n## 2. Hapus Channel Lama\n\n```bash\ndoas nix-channel --remove nixos\ndoas nix-channel --remove home-manager\n```\n\n---\n\n## 3. Tambahkan Channel Baru (25.05)\n\n```bash\ndoas nix-channel --add https://nixos.org/channels/nixos-25.05 nixos\ndoas nix-channel --add https://github.com/nix-community/home-manager/archive/release-25.05.tar.gz home-manager\n```\n\n---\n\n## 4. Update Channel\n\n```bash\ndoas nix-channel --update\n```\n\n---\n\n## 5. Build System dan Home-Manager\n\n- **System (NixOS):**\n\n```bash\ndoas nixos-rebuild switch\n```\n\nnote:\n\n- fix configurasi yang error karna biasanya configurasi yang lama ada beberapa yang sudah tidak relevan atau di ganti.\n- jika sudah di fix jalankan ulang **doas nixos-rebuild switch**\n\n---\n\n## 6. Source\n\n```bash\n. \"$HOME/.nix-profile/etc/profile.d/hm-session-vars.sh\"\n```\n\n---\n\n## 7. Cek Hasil\n\n```bash\nnixos-version\nhome-manager --version # tidak perlu di check karna pake module, kalo di check pasti not found\n```\n\nPastikan nixos-version sudah di versi **25.05**.\n\n---\n\n## Catatan\n\n- Pindah channel berarti upgrade release. Bisa jadi ada perubahan\n  besar (kernel, systemd, dsb). Baca dulu [Release Notes NixOS](https://nixos.org/manual/nixos/stable/release-notes).\n"
  },
  {
    "path": "home-manager/default.nix",
    "content": "{ ... }:\n\nlet\n    name = \"eep\";\n    ver = \"25.05\";\nin {\n    imports = [\n        <home-manager/nixos>\n        ./program\n        ./font\n        ./package\n    ];\n\n    home-manager = {\n        useGlobalPkgs = true;\n        users.${name} = {\n            home = {\n                username = \"${name}\";\n                homeDirectory = \"/home/${name}\";\n                stateVersion = \"${ver}\";\n            };\n        };\n    };\n}\n"
  },
  {
    "path": "home-manager/font/default.nix",
    "content": "{ ... }:\n\n{\n    imports = [\n        ./font.nix\n    ];\n}\n"
  },
  {
    "path": "home-manager/font/font.nix",
    "content": "{ pkgs, ... }:\n\nlet\n    name = \"eep\";\nin {\n    home-manager = {\n        users.${name} = {\n            fonts.fontconfig.enable = true;\n            home.packages = with pkgs; [\n                nerd-fonts.fira-code\n                nerd-fonts.jetbrains-mono\n                nerd-fonts.iosevka\n                nerd-fonts.iosevka-term\n                nerd-fonts.bigblue-terminal\n                nerd-fonts.symbols-only\n            ];\n        };\n    };\n}"
  },
  {
    "path": "home-manager/package/default.nix",
    "content": "{ ... }:\n\n{\n    imports = [\n        ./gui\n        ./programming\n        ./tui\n    ];\n}\n"
  },
  {
    "path": "home-manager/package/gui/browser.nix",
    "content": "{ pkgs, ... }:\n\nlet\n    name = \"eep\";\nin {\n    home-manager = {\n        users.${name} = {\n            home = {\n                packages = with pkgs; [\n                    brave\n                    mullvad-browser\n                    # tor-browser\n                ];\n            };\n        };\n    };\n}\n"
  },
  {
    "path": "home-manager/package/gui/default.nix",
    "content": "{ ... }:\n\n{\n    imports = [\n        ./browser.nix\n        ./gedit.nix\n        # ./github.nix\n        ./libreOffice.nix\n        # ./protonVpn.nix\n        ./telegram.nix\n        # ./virtualBox.nix\n    ];\n}\n"
  },
  {
    "path": "home-manager/package/gui/gedit.nix",
    "content": "{ pkgs, ... }:\n\nlet\n    name = \"eep\";\nin {\n    home-manager = {\n        users.${name} = {\n            home = {\n                packages = with pkgs; [\n                    gedit\n                ];\n            };\n        };\n    };\n}\n"
  },
  {
    "path": "home-manager/package/gui/github.nix",
    "content": "{ pkgs, ... }:\n\nlet\n    name = \"eep\";\nin {\n    home-manager = {\n        users.${name} = {\n            home = {\n                packages = with pkgs; [\n                    github-desktop\n                ];\n            };\n        };\n    };\n}\n"
  },
  {
    "path": "home-manager/package/gui/libreOffice.nix",
    "content": "{ pkgs, ... }:\n\nlet\n    name = \"eep\";\nin {\n    home-manager = {\n        users.${name} = {\n            home = {\n                packages = with pkgs; [\n                    libreoffice\n                ];\n            };\n        };\n    };\n}\n"
  },
  {
    "path": "home-manager/package/gui/protonVpn.nix",
    "content": "{ pkgs, ... }:\n\nlet\n    name = \"eep\";\nin {\n    home-manager = {\n        users.${name} = {\n            home = {\n                packages = with pkgs; [\n                    protonvpn-gui\n                ];\n            };\n        };\n    };\n}\n"
  },
  {
    "path": "home-manager/package/gui/telegram.nix",
    "content": "{ pkgs, ... }:\n\nlet\n    name = \"eep\";\nin {\n    home-manager = {\n        users.${name} = {\n            home = {\n                packages = with pkgs; [\n                    telegram-desktop\n                ];\n            };\n        };\n    };\n}\n"
  },
  {
    "path": "home-manager/package/gui/virtualBox.nix",
    "content": "{ pkgs, ... }:\n\nlet\n    name = \"eep\";\nin {\n    home-manager = {\n        users.${name} = {\n            home = {\n                packages = with pkgs; [\n                    virtualbox\n                ];\n            };\n        };\n    };\n}\n"
  },
  {
    "path": "home-manager/package/programming/default.nix",
    "content": "{ ... }:\n\n{\n    imports = [\n        # ./java.nix\n        ./nodeJs.nix\n        ./rust.nix\n    ];\n}\n"
  },
  {
    "path": "home-manager/package/programming/java.nix",
    "content": "{ pkgs, ... }:\n\nlet\n    name = \"eep\";\nin {\n    home-manager = {\n        users.${name} = {\n            home = {\n                packages = with pkgs; [\n                    jdk17\n                ];\n            };\n        };\n    };\n}\n"
  },
  {
    "path": "home-manager/package/programming/nodeJs.nix",
    "content": "{ pkgs, ... }:\n\nlet\n    name = \"eep\";\nin {\n    home-manager = {\n        users.${name} = {\n            home = {\n                packages = with pkgs; [\n                    nodejs_22\n                    typescript\n                ];\n            };\n        };\n    };\n}\n"
  },
  {
    "path": "home-manager/package/programming/rust.nix",
    "content": "{ pkgs, ... }:\n\nlet\n    name = \"eep\";\nin {\n    home-manager = {\n        users.${name} = {\n            home = {\n                packages = with pkgs; [\n                    rustup\n                ];\n            };\n        };\n    };\n}\n"
  },
  {
    "path": "home-manager/package/tui/default.nix",
    "content": "{ ... }:\n\n{\n    imports = [\n        ./tui.nix\n    ];\n}\n"
  },
  {
    "path": "home-manager/package/tui/tui.nix",
    "content": "{ pkgs, ... }:\n\nlet\n    name = \"eep\";\nin {\n    home-manager = {\n        users.${name} = {\n            home = {\n                packages = with pkgs; [\n                    ### TUI ###\n                    wtfutil         # wtfutil for run\n                    pipes           # pipes.sh for run\n                    cmatrix         # matrix like hengker pro Tzy\n                    cbonsai         # bonsai ASCII art\n                    tty-clock       # to display the current time on terminal\n                    # cointop       # cryptocurrency tracking like htop\n                    networkmanagerapplet\n                ];\n            };\n        };\n    };\n}\n"
  },
  {
    "path": "home-manager/program/alacritty.nix",
    "content": "{ pkgs, ... }:\n\nlet\n    name = \"eep\";\nin {\n    home-manager = {\n        users.${name} = {\n            programs = {\n                alacritty = {\n                    enable = false;\n                    package = pkgs.alacritty;\n                    settings = {\n                        font = {\n                            size          = 12;\n                            normal.family = \"JetBrainsMono Nerd Font\";\n                            bold.family   = \"JetBrainsMono Nerd Font\";\n                            italic.family = \"JetBrainsMono Nerd Font\";\n                        };\n                        window = {\n                            opacity                   = 0.80;\n                            title                     = \"󰲋  \";\n                            decorations               = \"Full\";\n                            decorations_theme_variant = \"None\";\n                        };\n                        scrolling = {\n                            history    = 10000;\n                            multiplier = 3;\n                        };\n                        mouse = {\n                            hide_when_typing = false;\n                        };\n                        cursor = {\n                            style = \"Beam\";\n                        };\n                    };\n                };\n            };\n        };\n    };\n}\n"
  },
  {
    "path": "home-manager/program/awsCli.nix",
    "content": "{ pkgs, ... }:\n\nlet\n    name = \"eep\";\nin {\n    home-manager = {\n        users.${name} = {\n            programs = {\n                awscli = {\n                    enable  = false;\n                    package = pkgs.awscli2;\n                    # settings = {};\n                    # credentials = {};\n                };\n            };\n        };\n    };\n}"
  },
  {
    "path": "home-manager/program/bash.nix",
    "content": "{ ... }:\n\nlet\n    name = \"eep\";\nin {\n    home-manager = {\n        users.${name} = {\n            programs = {\n                bash = {\n                    enable = true;\n                    enableCompletion = true;\n                    shellAliases = {\n                        ### EZA ###\n                        ls  = \"eza\";\n                        la  = \"eza -a\";\n                        ll  = \"eza -l\";\n                        lla = \"eza -la\";\n                        lt  = \"eza --tree\";\n                        ### TRASHY ###\n                        rm     = \"trash put\";              # putting something into the trash folder\n                        tlis   = \"trash list\";             # check the list in the trash folder\n                        tres   = \"trash restore\";          # restore something that was in the trash folder\n                        tempty = \"trash empty --all\";      # emptying the trash folder\n                        ### BAT ###\n                        cat = \"bat\";\n                    };\n                    bashrcExtra = \"complete -cf doas\";\n                    initExtra   = \"fastfetch\";\n                };\n            };\n        };\n    };\n}\n"
  },
  {
    "path": "home-manager/program/bat.nix",
    "content": "{ pkgs, ... }:\n\nlet\n  name = \"eep\";\nin {\n    home-manager = {\n        users.${name} = {\n            programs = {\n                bat = {\n                    enable = true;\n                    config = {\n                        theme = \"ansi\"; \n                    };\n                };\n            };\n        };\n    };\n}\n\n"
  },
  {
    "path": "home-manager/program/bottom.nix",
    "content": "{ ... }:\n\nlet\n    name = \"eep\";\nin {\n    home-manager = {\n        users.${name} = {\n            programs = {\n                bottom = {\n                    enable = true;\n                    settings = {\n                        styles = {\n                            theme = \"gruvbox\";\n                        };\n                        flags = {\n                            avg_cpu          = true;\n                            temperature_type = \"c\";\n                        };\n                        colors = {\n                            low_battery_color = \"red\";\n                        };\n                    };\n                };\n            };\n        };\n    };\n}\n\n# RESOURCE: https://github.com/ClementTsang/bottom"
  },
  {
    "path": "home-manager/program/cava.nix",
    "content": "{ ... }:\n\nlet\n    name = \"eep\";\n\n    # colors with quotation marks\n    blue_1 = \"'#99C1F1'\";\n    blue_2 = \"'#62A0EA'\";\n    blue_3 = \"'#3584E4'\";\n    blue_4 = \"'#1C71D8'\";\n    blue_5 = \"'#1A5FB4'\";\n    green_1 = \"'#8FF0A4'\";\n    green_2 = \"'#57E389'\";\n    green_3 = \"'#33D17A'\";\n    green_4 = \"'#2EC27E'\";\n    green_5 = \"'#26A269'\";\n    yellow_1 = \"'#F9F06B'\";\n    yellow_2 = \"'#F8E45C'\";\n    yellow_3 = \"'#F6D32D'\";\n    yellow_4 = \"'#F5C211'\";\n    yellow_5 = \"'#E5A50A'\";\n    orange_1 = \"'#FFBE6F'\";\n    orange_2 = \"'#FFA348'\";\n    orange_3 = \"'#FF7800'\";\n    orange_4 = \"'#E66100'\";\n    orange_5 = \"'#C64600'\";\n    red_1 = \"'#F66151'\";\n    red_2 = \"'#ED333B'\";\n    red_3 = \"'#E01B24'\";\n    red_4 = \"'#C01C28'\";\n    red_5 = \"'#A51D2D'\";\n    purple_1 = \"'#DC8ADD'\";\n    purple_2 = \"'#C061CB'\";\n    purple_3 = \"'#9141AC'\";\n    purple_4 = \"'#813D9C'\";\n    purple_5 = \"'#613583'\";\n    brown_1 = \"'#CDAB8F'\";\n    brown_2 = \"'#B5835A'\";\n    brown_3 = \"'#986A44'\";\n    brown_4 = \"'#865E3C'\";\n    brown_5 = \"'#63452C'\";\n    light_1 = \"'#FFFFFF'\";\n    light_2 = \"'#F6F5F4'\";\n    light_3 = \"'#DEDDDA'\";\n    light_4 = \"'#C0BFBC'\";\n    light_5 = \"'#9A9996'\";\n    dark_1 = \"'#77767B'\";\n    dark_2 = \"'#5E5C64'\";\n    dark_3 = \"'#3D3846'\";\n    dark_4 = \"'#241F31'\";\n    dark_5 = \"'#000000'\";\n    dark_6 = \"'#242424'\";\n    dark_7 = \"'#1E1E1E'\";\n\nin {\n    home-manager = {\n        users.${name} = {\n            programs = {\n                cava = {\n                    enable = true;\n                    settings = {\n                        general = {\n                            framerate   = 60;\n                            bars        = 0;\n                            bar_width   = 2;\n                            bar_spacing = 1;\n                        };\n                        smoothing = {\n                            noise_reduction = 88;\n                        };\n                        color = {\n                            gradient         = 1;\n                            gradient_count   = 5;\n                            gradient_color_1 = dark_3;\n                            gradient_color_2 = light_5;\n                            gradient_color_3 = brown_3;\n                            gradient_color_4 = red_3;\n                            gradient_color_5 = yellow_5;\n                        };\n                    };\n                };\n            };\n        };\n    };\n}\n"
  },
  {
    "path": "home-manager/program/chromium.nix",
    "content": "{ ... }:\n\nlet\n    name = \"eep\";\nin {\n    home-manager = {\n        users.${name} = {\n            programs = {\n                chromium = {\n                    enable = true;\n                    extensions = [\n                        \"bhchdcejhohfmigjafbampogmaanbfkg\" # User-Agent Switcher and Manager\n                        \"nkbihfbeogaeaoehlefnkodbefgpgknn\" # Metamask\n                    #     \"hnmpcagpplmpfojmgmnngilcnanddlhb\" # Windscribe - Free Proxy and Ad Blocker\n                    #     \"ohcpnigalekghcmgcdcenkpelffpdolg\" # ColorPick Eyedropper\n                    #     \"egjidjbpglichdcondbcbdnbeeppgdph\" # Trust Wallet\n                    #     \"bnjjngeaknajbdcgpfkgnonkmififhfo\" # Fake Filler\n                    #     \"cppjkneekbjaeellbfkmgnhonkkjfpdn\" # Clear Cache\n                    #     \"fdpohaocaechififmbbbbbknoalclacl\" # GoFullPage - Full Page Screen Capture\n                    #     \"kgkhambjbahgejgoaefmekdchedkihln\" # Edit Anything\n                    ];\n                };\n            };\n        };\n    };\n}\n"
  },
  {
    "path": "home-manager/program/default.nix",
    "content": "{ ... }:\n\n{\n    imports = [\n        ./bat.nix\n        ./bottom.nix\n        ./cava.nix\n        ./eza.nix\n        ./bash.nix\n        ./git.nix\n        ./gitLfs.nix\n        ./fzf.nix\n        ./neovim.nix\n        ./tmux.nix\n        ./alacritty.nix\n        ./chromium.nix\n        ./firefox.nix\n        ./go.nix\n        ./kitty.nix\n        ./starship.nix\n        ./vsCode.nix\n        ./fastFetch.nix\n        ./awsCli.nix\n        ./zoxide.nix\n        ./zellij.nix\n        ./waybar.nix\n        ./yazi.nix\n        ./githubCli.nix\n        ./jq.nix\n        ./ripgrep.nix\n    ];\n}\n"
  },
  {
    "path": "home-manager/program/eza.nix",
    "content": "{ ... }:\n\nlet\n    name = \"eep\";\nin {\n    home-manager = {\n        users.${name} = {\n            programs = {\n                eza = {\n                    enable       = true;\n                    extraOptions = [ \"--group-directories-first\"  \"--header\" ];\n                    git          = true;\n                    icons        = \"always\";\n                };\n            };\n        };\n    };\n}\n\n# RESOURCE: https://github.com/eza-community/eza"
  },
  {
    "path": "home-manager/program/fastFetch.nix",
    "content": "{ pkgs, ... }:\n\nlet\n    name = \"eep\";\nin {\n    home-manager = {\n        users.${name} = {\n            programs = {\n                fastfetch = {\n                    enable   = true;\n                    package  = pkgs.fastfetch;\n                    settings = {\n                        logo = {\n                            # uncomment this sh*t bellow if you want to use image\n                            type = \"kitty-direct\"; \n                            height = 13;\n                            width = 25;\n\n                            source = \"/etc/nixos/asset/logo/onepiece/02.png\";\n                            padding = {\n                                right = 6; # distance between logo and module\n                                left = 6;\n                                top = 2;\n                            };\n                        };\n\n                        display = {\n                            separator = \" ¤ \";\n                            color = \"yellow\";\n                        };\n\n                        modules = [\n                            {\n                                type = \"title\";\n                                format = \"                    イープ＠ニクソス\";\n                            }\n\n                            {\n                                type = \"custom\";\n                                format = \"╔ ══════════ ══════════ ══════════ ══════════ ══════════ ╗\";\n                            }\n                            \"break\"\n\n                            {\n                                type = \"os\";\n                                key = \"         Distro  \";\n                                keyColor = \"yellow\";\n                                format = \"{2} {12}\";\n                            }{\n                                type = \"os\";\n                                key = \"         ╰────────version\";\n                                keyColor = \"red\";\n                                format = \"{8} ({10})\";\n                            }\n\n\n                            {\n                                type = \"kernel\";\n                                key = \"         Kernel  \";\n                                keyColor = \"yellow\";\n                                format = \"{1}\";\n                            }{\n                                type = \"kernel\";\n                                key = \"         ╰────────version\";\n                                keyColor = \"red\";\n                                format = \"{2}\";\n                            }\n\n\n                            {\n                                type = \"shell\";\n                                key = \"         Shell   \";\n                                keyColor = \"yellow\";\n                                format = \"{6}\";\n                            }{\n                                type = \"shell\";\n                                key = \"         ╰────────version\";\n                                keyColor = \"red\";\n                                format = \"{4}\";\n                            }\n\n\n                            {\n                                type = \"de\";\n                                key = \"         DE      \";\n                                keyColor = \"yellow\";\n                                format = \"{2}\";\n                            }{\n                                type = \"de\";\n                                key = \"         ╰────────version\";\n                                keyColor = \"red\";\n                                format = \"{3}\";\n                            }\n\n\n                            {\n                                type = \"wm\";\n                                key = \"         WM      \";\n                                keyColor = \"yellow\";\n                                format = \"{2}\";\n                            }{\n                                type = \"wm\";\n                                key = \"         ╰────────compositor\";\n                                keyColor = \"red\";\n                                format = \"{3}\";\n                            }                        \n\n\n                            {\n                                type = \"terminal\";\n                                key = \"         Terminal\";\n                                keyColor = \"yellow\";\n                                format = \"{5}\";\n                            }{\n                                type = \"terminal\";\n                                key = \"         ╰────────version\";\n                                keyColor = \"red\";\n                                format = \"{6}\";\n                            }\n\n                            {\n                                type = \"packages\";\n                                key = \"         Packages\";\n                                keyColor = \"yellow\";\n                            }\n                        \n                            \"break\"\n\n                            {\n                                type = \"custom\";\n                                format= \"╚ ══════════ ══════════ ══════════ ══════════ ══════════ ╝\";\n                            }\n\n                            {\n                                type = \"colors\";\n                                paddingLeft = 24;\n                                symbol= \"circle\";\n                            }\n                        ];\n                    };\n                };\n            };\n        };\n    };\n}\n\n# NOTE:\n\n# example GET FORMAT\n# fastfetch -h cpu-format\n\n#color\n# red\n# green\n# yellow\n# blue\n# magenta\n# cyan\n# white"
  },
  {
    "path": "home-manager/program/firefox.nix",
    "content": "{ pkgs, ... }:\n\nlet\n    name = \"eep\";\nin {\n    home-manager = {\n        users.${name} = {\n            programs = {\n                firefox = {\n                    enable = false;\n                    package = pkgs.firefox;\n                    policies = {\n                        BlockAboutConfig = true;\n                        DefaultDownloadDirectory = \"\\${home}/Downloads\";\n                    };\n                    # profiles = {\n                    #     eep = {\n                    #         containers = {\n                    #             dua = {\n                    #                 color = \"red\";\n                    #                 icon = \"fruit\";\n                    #                 id = 2;\n                    #                 name = \"dua\";\n                    #             };\n                    #             satu = {\n                    #                 color = \"blue\";\n                    #                 icon = \"dollar\";\n                    #                 id = 1;\n                    #                 name = \"satu\";\n                    #             };\n                    #         };\n                    #     };\n                    # };\n                };\n            };\n        };\n    };\n}\n"
  },
  {
    "path": "home-manager/program/fzf.nix",
    "content": "{ ... }:\n\nlet\n    name = \"eep\";\nin {\n    home-manager = {\n        users.${name} = {\n            programs = {\n                fzf = {\n                    enable                = true;\n                    enableBashIntegration = true;\n                };\n            };\n        };\n    };\n}\n"
  },
  {
    "path": "home-manager/program/git.nix",
    "content": "{ ... }:\n\nlet\n    name = \"eep\";\nin {\n    home-manager = {\n        users.${name} = {\n            programs = {\n                git = {\n                    enable    = true;\n                    userName  = \"ReadTheFuckingManual\";\n                    userEmail = \"ekoedypurwantooke@gmail.com\";\n                };\n            };\n        };\n    };\n}\n"
  },
  {
    "path": "home-manager/program/gitLfs.nix",
    "content": "{ ... }:\n\nlet\n    name = \"eep\";\nin {\n    home-manager = {\n        users.${name} = {\n            programs = {\n                git.lfs = {\n                    enable = true;\n                };\n            };\n        };\n    };\n}\n"
  },
  {
    "path": "home-manager/program/githubCli.nix",
    "content": "{ pkgs, ... }:\n\nlet\n    name = \"eep\";\nin {\n    home-manager = {\n        users.${name} = {\n            programs = {\n                gh = {\n                    enable  = true;\n                    package = pkgs.gh;\n                    # settings = {};\n                    # credentials = {};\n                };\n            };\n        };\n    };\n}"
  },
  {
    "path": "home-manager/program/go.nix",
    "content": "{ pkgs, ... }:\n\nlet\n    name = \"eep\";\nin {\n    home-manager = {\n        users.${name} = {\n            programs = {\n                go = {\n                    enable  = true;\n                    goPath  = \".go\";\n                    goBin   = \".go/bin\";\n                    package = pkgs.go;\n                };\n            };\n        };\n    };\n}\n"
  },
  {
    "path": "home-manager/program/jq.nix",
    "content": "{ pkgs, ... }:\n\nlet\n    name = \"eep\";\nin {\n    home-manager = {\n        users.${name} = {\n            programs = {\n                jq = {\n                    enable  = true;\n                    package = pkgs.jq;\n                };\n            };\n        };\n    };\n}"
  },
  {
    "path": "home-manager/program/kitty.nix",
    "content": "{ ... }:\n\nlet\n    name = \"eep\";\nin {\n    home-manager = {\n        users.${name} = {\n            programs = {\n                kitty = {\n                    enable = true;\n                    settings = {\n                        # FONT\n                        font_family             = \"JetBrainsMono Nerd Font\";\n                        bold_font               = \"auto\";\n                        italic_font             = \"auto\";\n                        bold_italic_font        = \"auto\";\n                        # font_size               = \"12.0\";\n\n                        # CURSOR\n                        cursor                  = \"#19cb00\";\n                        cursor_text_color       = \"#FF0000\";    # no effect\n                        cursor_shape            = \"underline\";  # no effect\n                        shell_integration       = \"no-cursor\";  # no effect\n\n                        # SCROLLBACK\n                        scrollback_lines        = 1000;\n\n                        # MOUSE\n                        url_color               = \"#FF6500\";\n                        url_style               = \"curly\";  # straight = _____ , double = ‗‗‗‗‗‗ , curly = ‿⁀ ‿⁀ ‿⁀ ‿⁀ ‿⁀ , dotted = .............. , dashed = _ _ _ _ _ _ _ _\n                        open_url_with           = \"default\";\n                        detect_urls             = \"yes\";\n\n                        # TERMINAL BELL\n                        enable_audio_bell       = true;\n\n                        # WINDOW LAYOUT\n                        remember_window_size    = \"yes\";\n                        initial_window_width    = 640;\n                        initial_window_height   = 400;\n                        window_logo_path        = \"none\";\n                        window_logo_position    = \"center\";\n                        hide_window_decorations = \"no\";\n                        confirm_os_window_close = 1;    # ask for confirmation when closing the terminal\n                        placement_strategy      = \"center\";\n                        enabled_layouts         = \"*\";\n\n                        # TAB BAR\n                        # not use\n\n                        # COLOR SCHEME\n                        background_opacity      = \"0.80\";\n                        background_blur         = \"1\";\n                        foreground              = \"#dedede\";\n                        # background              = \"#dedede\";\n\n                        # THE COLOR TABLE\n                        # not use\n\n\n                        # ADVANCED\n                        update_check_interval   = 0;    # to periodically check if updates for “kitty” are available or not, set to zero to disable\n\n                        # OS SPECIFIC TWEAKS\n                        wayland_titlebar_color  = \"#dedede\";\n                        linux_display_server    = \"auto\";   # Set it to x11 or wayland to force the choice\n\n                        # KEYBOARD SHORTCUTS\n                        # not use\n\n                    };\n                    shellIntegration.enableBashIntegration = true;\n                };\n            };\n        };\n    };\n}\n"
  },
  {
    "path": "home-manager/program/neovim.nix",
    "content": "{ ... }:\n\nlet\n    name = \"eep\";\nin {\n    home-manager = {\n        users.${name} = {\n            programs = {\n                neovim = {\n                    enable = true;\n                    viAlias = true;\n                    vimAlias = true;\n                    vimdiffAlias = true;\n                };\n            };\n        };\n    };\n}\n"
  },
  {
    "path": "home-manager/program/ripgrep.nix",
    "content": "{ pkgs, ... }:\n\nlet\n    name = \"eep\";\nin {\n    home-manager = {\n        users.${name} = {\n            programs = {\n                ripgrep = {\n                    enable = true;\n                    package = pkgs.ripgrep;\n                };\n            };\n        };            \n    };\n}\n"
  },
  {
    "path": "home-manager/program/starship.nix",
    "content": "{ pkgs, lib, ... }:\n\nlet\n    name = \"eep\";\nin {\n    home-manager = {\n        users.${name} = {\n            programs = {\n                starship = {\n                    enable                = true;\n                    enableBashIntegration = true;\n                    package               = pkgs.starship;\n                    settings = {\n                        add_newline = false;\n                    };\n                };\n            };\n        };\n    };\n}\n"
  },
  {
    "path": "home-manager/program/tmux.nix",
    "content": "{ ... }:\n\nlet\n    name = \"eep\";\nin {\n    home-manager = {\n        users.${name} = {\n            programs = {\n                tmux = {\n                    enable = false;\n                };\n            };\n        };\n    };\n}\n"
  },
  {
    "path": "home-manager/program/vsCode.nix",
    "content": "{ pkgs, ... }:\n\nlet\n    name = \"eep\";\nin {\n    home-manager = {\n        users.${name} = {\n            programs = {\n                vscode = {\n                    enable = true;\n                    package = pkgs.vscode;\n                    profiles.default = {\n                        enableUpdateCheck = false;\n                        enableExtensionUpdateCheck = true;\n                        userSettings = {\n                            \"files.autoSave\" = \"afterDelay\";\n                            \"files.associations\" = {\n                                \".env*\" = \"dotenv\";\n                            };\n\n                            \"editor.tokenColorCustomizations\" = {\n                                \"textMateRules\" = [\n                                    {\n                                        \"scope\" = \"keyword.other.dotenv\";\n                                        \"settings\" = {\n                                            \"foreground\" = \"#FF000000\";\n                                        };\n                                    }\n                                ];    \n                            };\n                            \"editor.fontLigatures\" = true;\n                            \"editor.fontVariations\" = false;\n                            \"editor.fontWeight\" = 625;\n                            \"editor.fontFamily\" = \"Iosevka Nerd Font\";\n                            \"editor.fontSize\" = 16;\n                            \"editor.formatOnSave\" = true;\n                            \"editor.defaultFormatter\" = \"esbenp.prettier-vscode\";\n\n                            \"workbench.iconTheme\" = \"vscode-icons\";\n                            \"workbench.colorTheme\" = \"Brogrammer\";\n                            \"workbench.productIconTheme\" = \"emoji-product-icons\";\n                            \"workbench.tree.expandMode\" = \"doubleClick\";\n                            \"workbench.colorCustomizations\" = {\n                            \"[Brogrammer]\" = {\n                                \"activityBarBadge.background\" = \"#ff0000\";\n                                \"editor.selectionBackground\" = \"#ffffff60\";\n                                \"editor.selectionHighlightBackground\" = \"#ffffff60\";\n                                };\n                            };\n                            \"go.addTags\" = {\n                                \"options\" = \"json=\";\n                            };\n                        };\n                        extensions = with pkgs.vscode-extensions; [\n                            golang.go                       # Go\n                            bbenoist.nix                    # Nix\n                            esbenp.prettier-vscode          # Prettier - Code formatter\n                            oderwat.indent-rainbow          # indent-rainbow\n                            tamasfe.even-better-toml        # Even Better TOML\n                            naumovs.color-highlight         # Color Highlight\n                            vscode-icons-team.vscode-icons  # vscode-icons\n                            ms-azuretools.vscode-docker     # Docker\n                            ms-vscode.makefile-tools        # Makefile Tools\n                            humao.rest-client               # REST Client\n                            seatonjiang.gitmoji-vscode      # Gitmoji\n                            dotenv.dotenv-vscode            # Dotenv Official +Vault\n                            bierner.emojisense              # :emojisense:\n                            rust-lang.rust-analyzer         # rust-analyzer\n                            jdinhlife.gruvbox               # Gruvbox Theme\n    \n                            # Thunder Client\n                            # Golang Tools\n                            # Go Nightly\n                            # Brogrammer Theme\n                            # Better Comments\n                            # 👉 Emoji File Icons 👈\n                            # Vue - Official\n                            # open in browser\n                            # Live Preview\n                        ];\n                    };\n                };\n            };\n        };\n    };\n}"
  },
  {
    "path": "home-manager/program/waybar.nix",
    "content": "{ pkgs, ... }:\n\nlet\n    name = \"eep\";\nin {\n    home-manager = {\n        users.${name} = {\n            programs = {\n                waybar = {\n                    enable = true;\n                    package = pkgs.waybar;\n                    settings = {\n                        mainBar = {\n                            layer = \"top\";\n                            position = \"top\";\n                            width = 1328;\n                            margin-top = 10;\n                            \n                            # left\n                            modules-left = [ \"custom/appLauncher\" \"clock\" ];\n                            \"custom/appLauncher\" = {\n                                format = \" \";\n                                tooltip = false;\n                                on-click = \"rofi -show drun\";\n                            };\n                            \"clock\" = {\n                                format = \"{:%a, %d %b %Y | %H:%M}\";\n                                interval = 1;\n                                locale = \"id_ID.UTF-8\";\n                            };\n\n                            # center\n                            modules-center = [ \"hyprland/workspaces\" ];\n                            \"hyprland/workspaces\" = {\n                                disable-scroll = true;\n                                all-outputs = true;\n                                on-click = \"activate\";\n                                persistent-workspaces = {\n                                    \"1\" = \"[]\";\n                                    \"2\" = \"[]\";\n                                    \"3\" = \"[]\";\n                                    \"4\" = \"[]\";\n                                    \"5\" = \"[]\";\n                                    \"6\" = \"[]\";\n                                    \"7\" = \"[]\";\n                                    \"8\" = \"[]\";\n                                    \"9\" = \"[]\";\n                                    \"10\" = \"[]\";\n                                };\n                            };\n\n                            # right\n                            modules-right = [ \"custom/crypto\" \"mpd\" \"pulseaudio\" \"network\" \"custom/powermenu\" ];\n                            \"custom/crypto\" = {\n                                exec = ''\n                                    set -e\n                                    export LC_NUMERIC=id_ID.UTF-8\n                                    KEYS=\"CG-JZagcEte8ffDjmbx3nDNNBZU CG-Bv5jtdXouMcPz3DbZ2huPmcJ CG-EdBhbuqmjU9c3WuCYXpsofbr\"\n                                    for key in $KEYS; do\n                                        response=$(curl -s -H \"x-cg-api-key: $key\" \"https://api.coingecko.com/api/v3/simple/price?ids=bitcoin,tether-gold,monero&vs_currencies=usd\")\n                                        if echo \"$response\" | grep -q '\"error\"\\|\"status_code\"'; then\n                                            continue\n                                        else\n                                            btc=$(printf \"%'d\" $(echo \"$response\" | jq -r '.bitcoin.usd' | cut -d'.' -f1))\n                                            tether_gold=$(printf \"%'d\" $(echo \"$response\" | jq -r '.[\"tether-gold\"].usd' | cut -d'.' -f1))\n                                            xmr=$(printf \"%'d\" $(echo \"$response\" | jq -r '.monero.usd' | cut -d'.' -f1))\n                                            echo \"<span color=\\\"#FFFF00\\\">BTC $btc</span>  <span color=\\\"#dedede\\\">|</span>  <span color=\\\"#FFD700\\\">XAUT $tether_gold</span>  <span color=\\\"#dedede\\\">|</span>  <span color=\\\"#FFA500\\\">XMR $xmr</span>\"\n                                            break\n                                        fi\n                                    done\n                                '';\n                                interval = 15;\n                                format = \"{}\";\n                                markup = \"pango\";\n                                tooltip = false;\n                            };\n                            \"mpd\" = {\n                                format = \"{artist}: {title}\";\n                                on-click = \"mpc toggle\";\n                                interval = 2;\n                            };\n                            \"pulseaudio\" = {\n                                scroll-step = 1;\n                                format = \"{icon} {volume}%\";\n                                format-muted = \"󰖁 Muted\";\n                                format-icons = {\n                                    default = [ \"\" \"\" \"\" ];\n                                };\n                                on-click = \"pamixer -t\";\n                                tooltip = false;\n                            };    \n                            \"network\" = {\n                                format = \" \";\n                                format-ethernet = \"  {ifname}\";\n                                format-disconnected = \"睊 Disconnected\";\n                                tooltip-format = \"📡 {ifname}\\n🔌 SSID: {essid}\\n📶 Strength: {signalStrength}%\\n⬆️ Up: {bandwidthUpBits} \\n⬇️ Down: {bandwidthDownBits}\";\n                                interval = 5;\n                                on-click = \"nm-connection-editor\";\n                            };\n                            \"custom/powermenu\" = {\n                                format = \"\";\n                                on-click = \"\";\n                            };\n                        };\n                    };\n                    style = ''\n                        #waybar {\n                            font-family: \"JetBrainsMono Nerd Font\";\n                            font-size: 12pt;\n                            font-weight: bold;\n                            border: 2px solid #dedede;\n                            border-radius: 9px; /* agar border terlihat penuh di semua sisi */\n                            background-color: rgba(0, 0, 0, 0.3); /* semi-transparent */\n                        }\n\n                        #custom-appLauncher {\n                            font-size: 20px;\n                            padding-left: 8px;\n                            padding-right: 6px;\n                            color: #7ebae4;\n                        }\n\n                        #custom-crypto {\n                            padding-left: 5px;\n                            padding-right: 5px;\n                        }\n                        #clock, #mpd, #pulseaudio, #network {\n                            padding-left: 10px;\n                            padding-right: 10px;\n                            color: #dedede;\n                        }\n\n                        #custom-powermenu {\n                            padding-left: 10px;\n                            padding-right: 14px;\n                            color: #dedede;\n                        }\n\n                        #workspaces {\n                            padding: 0px;\n                            margin: 0px;\n                            font-family: \"JetBrainsMono Nerd Font\";\n                            font-size: 12pt;\n                            font-weight: bold;\n                        }\n\n                        #workspaces button {\n                            background: transparent;\n                            color: #dedede;\n                            border: none;\n                            margin: 0 4px;\n                            padding: 4px;\n                            min-width: 10px;\n                            min-height: 10px;\n                            border-radius: 50%;\n                            transition: all 0.2s ease;\n                        }\n\n                        #workspaces button.active {\n                            background-color: #dedede;\n                            color: #1e1e2e;\n                            border-radius: 20px; /* aktif jadi lonjong */\n                            padding: 4px 10px;\n                        }\n\n                        #workspaces button:hover {\n                            background-color: rgba(255, 255, 255, 0.2);\n                            border-radius: 50%;\n                        }\n                    '';\n                };\n            };\n        };\n    };\n}\n"
  },
  {
    "path": "home-manager/program/yazi.nix",
    "content": "{ pkgs, ... }:\n\nlet\n    name = \"eep\";\nin {   \n    home-manager = {\n        users.${name} = {\n            programs = {\n                yazi = {\n                    enable                = true;\n                    package               = pkgs.yazi;\n                    enableBashIntegration = true;\n                    settings = {\n                        manager = {\n                            show_hidden = false;\n                        };\n                    };\n                    theme = {\n                        filetype = {\n                            rules = [\n                                { fg = \"#7AD9E5\"; mime = \"image/*\"; }\n                                { fg = \"#F3D398\"; mime = \"video/*\"; }\n                                { fg = \"#F3D398\"; mime = \"audio/*\"; }\n                                { fg = \"#CD9EFC\"; mime = \"application/bzip\"; }\n                            ];\n                        };\n                    };\n                };\n            };\n        };\n    };\n}"
  },
  {
    "path": "home-manager/program/zellij.nix",
    "content": "{ pkgs, ... }:\n\nlet\n    name = \"eep\";\nin {   \n    home-manager = {\n        users.${name} = {\n            programs = {\n                zellij = {\n                    enable                = true;\n                    package               = pkgs.zellij;\n                };\n            };\n        };\n    };\n}"
  },
  {
    "path": "home-manager/program/zoxide.nix",
    "content": "{ pkgs, ... }:\n\nlet\n    name = \"eep\";\nin {\n    home-manager = {\n        users.${name} = {\n            programs = {\n                zoxide = {\n                    enable = true;\n                    enableBashIntegration = true;\n                    package = pkgs.zoxide;\n                    options = [\n                        \"--cmd cd\" #replace cd with z and zi\n                    ];\n                };\n            };\n        };\n    };\n}"
  },
  {
    "path": "nixos/default.nix",
    "content": "{ ... }:\n\n{\n    imports = [\n        ./hardware\n        ./service\n        ./system\n        ./virtualisation\n    ];\n}"
  },
  {
    "path": "nixos/hardware/boot.nix",
    "content": "{ config, pkgs, ... }:\n\n{\n    boot = {\n        \n        plymouth = {\n            enable = true;\n            theme = \"optimus\";\n            themePackages = with pkgs; [\n                # By default we would install all themes\n                (adi1090x-plymouth-themes.override {\n                    selected_themes = [ \"optimus\" ];\n                })\n            ];\n        };\n\n        initrd = {\n            availableKernelModules = [\n                \"xhci_pci\"\n                \"ahci\"\n                \"usb_storage\"\n                \"sd_mod\"\n                \"rtsx_pci_sdmmc\"\n            ];\n            kernelModules = [ ];\n            luks.devices. \"luks-1e864ff3-d19e-491b-a401-78f9962dae85\".device = \"/dev/disk/by-uuid/1e864ff3-d19e-491b-a401-78f9962dae85\";\n        };\n            kernelModules = [\n                \"kvm-intel\"\n                \"msr\"\n            ];\n            extraModulePackages = [ ];\n            kernelPackages = pkgs.linuxPackages_latest;\n    };\n}"
  },
  {
    "path": "nixos/hardware/default.nix",
    "content": "{ modulesPath, ... }:\n\n{\n    imports = [\n        (modulesPath + \"/installer/scan/not-detected.nix\")\n        ./boot.nix\n        ./fileSystem.nix\n        ./networking.nix\n        ./platform.nix\n        ./processor.nix\n        ./swapDevice.nix\n    ];\n}"
  },
  {
    "path": "nixos/hardware/fileSystem.nix",
    "content": "{ ... }:\n\n{\n    fileSystems.\"/\" = {\n        device = \"/dev/disk/by-uuid/f49fba0e-7fe7-48e8-b413-0e2e3e229547\";\n        fsType = \"ext4\";\n    };\n\n    fileSystems.\"/boot\" = {\n        device = \"/dev/disk/by-uuid/ABEC-C57F\";\n        fsType = \"vfat\";\n        options = [ \n            \"fmask=0077\"\n            \"dmask=0077\" \n        ];\n    };\n}\n"
  },
  {
    "path": "nixos/hardware/networking.nix",
    "content": "{ lib, ... }:\n\n{\n    networking.useDHCP = lib.mkDefault true;\n}"
  },
  {
    "path": "nixos/hardware/platform.nix",
    "content": "{ lib, ... }:\n\n{\n    nixpkgs.hostPlatform = lib.mkDefault \"x86_64-linux\";\n}"
  },
  {
    "path": "nixos/hardware/processor.nix",
    "content": "{ config, lib, ... }:\n\n{\n    hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;\n}"
  },
  {
    "path": "nixos/hardware/swapDevice.nix",
    "content": "{ ... }:\n\n{\n    swapDevices = [ ];\n}"
  },
  {
    "path": "nixos/program/default.nix",
    "content": "{ ... }:\n\n{\n    imports = [\n        ./nix-ld.nix\n    ];\n}\n"
  },
  {
    "path": "nixos/program/nix-ld.nix",
    "content": "{ pkgs, lib, ... }:\n\n{\n    # nix-ld for handling dynamic lib\n    programs.nix-ld = {\n        enable = lib.mkDefault true;\n        libraries = with pkgs; [\n            glibc\n        ];\n    };\n}"
  },
  {
    "path": "nixos/service/default.nix",
    "content": "{ ... }:\n\n{\n    imports = [\n        ./postgreSQL.nix\n        ./printing.nix\n        ./wm-and-dm.nix\n        ./pipewire.nix\n        ./nginx.nix\n        ./mySql.nix\n        # ./rabbitMq.nix\n        # ./jenkins.nix\n        # ./kubernetes.nix\n        # ./prometheus.nix\n        # ./grafana.nix\n    ];\n}"
  },
  {
    "path": "nixos/service/mySql.nix",
    "content": "{ pkgs, ... }:\n\nlet\n    statsConfig = {\n        db = \"eep\";\n        user = \"eep\";\n        password = \"1903\";\n    };\n\nin {\n    services.mysql = {\n        enable = true;\n        package = pkgs.mariadb;\n        replication.role = \"master\";\n        replication.slaveHost = \"127.0.0.1\";\n        replication.masterUser = \"${statsConfig.user}\";\n        replication.masterPassword = \"${statsConfig.password}\";\n        initialScript = pkgs.writeText \"setup-sql\" ''\n            CREATE DATABASE IF NOT EXISTS `${statsConfig.db}`;\n            CREATE USER IF NOT EXISTS '${statsConfig.user}'@'%' IDENTIFIED WITH mysql_native_password;\n            ALTER USER '${statsConfig.user}'@'%' IDENTIFIED BY '${statsConfig.password}';\n            GRANT ALL PRIVILEGES ON * . * TO '${statsConfig.user}'@'%';\n        '';\n    };\n}"
  },
  {
    "path": "nixos/service/nginx.nix",
    "content": "{ pkgs, ... }:\n\n{\n    services = {\n        nginx = {\n            enable = true;\n            package = pkgs.nginxStable;\n            statusPage = true;\n        };\n    };\n}"
  },
  {
    "path": "nixos/service/pipewire.nix",
    "content": "{ ... }:\n\n{\n    services.pulseaudio.enable = false;\n    security.rtkit.enable = true;\n    services.pipewire = {\n        enable = true;\n        alsa.enable = true;\n        alsa.support32Bit = true;\n        pulse.enable = true;\n        jack.enable = true; # If you want to use JACK applications, uncomment this\n    };\n}"
  },
  {
    "path": "nixos/service/postgreSQL.nix",
    "content": "{ pkgs, lib, ... }:\n\n{\n    services.postgresql = {\n        enable = true;\n        ensureDatabases = [ \"eep\" ];\n        enableTCPIP = true;\n        settings.port = 5432;\n        authentication = pkgs.lib.mkOverride 10 ''\n            #type database  DBuser  auth-method\n            local all       all     trust\n\n            # IPv4 local connections:\n            host    all    eep    ::1/128    trust\n\n            #type database DBuser origin-address auth-method\n            # ipv4\n            #host  all      all     127.0.0.1/32   md5\n            # ipv6\n            #host all       all     ::1/128        md5\n        '';\n        initialScript = pkgs.writeText \"backend-initScript\" ''\n            CREATE ROLE eep WITH LOGIN PASSWORD '1903' CREATEDB SUPERUSER REPLICATION BYPASSRLS;\n            CREATE DATABASE eep OWNER eep;\n            GRANT ALL PRIVILEGES ON DATABASE eep TO eep;\n        '';\n    };\n}"
  },
  {
    "path": "nixos/service/printing.nix",
    "content": "{ ... }:\n\n{\n    # Enable CUPS to print documents.\n    services.printing.enable = true;\n}"
  },
  {
    "path": "nixos/service/rabbitMq.nix",
    "content": "{ pkgs, ... }:\n\n{\n    # rabbitmq\n    services.rabbitmq = {\n        enable = true;\n        package = pkgs.rabbitmq-server;\n        dataDir = \"/var/lib/rabbitmq\";\n        port = 5672;\n        listenAddress = \"0.0.0.0\";\n        # unsafeCookie = \"\";\n        plugins = [ \n            \"rabbitmq_management\"\n            \"rabbitmq_mqtt\"\n        ];\n\n        managementPlugin = {\n            enable = true;\n            port = 15672;\n        };\n    };\n\n    #\n    services.onlyoffice.rabbitmqUrl = \"amqp://eep:1903@localhost:5672\";\n\n    # erlang\n    services.epmd = {\n        enable = true;\n        package = pkgs.erlang;\n    };\n}"
  },
  {
    "path": "nixos/service/wm-and-dm.nix",
    "content": "{ pkgs, ... }:\n\n{\n    services.displayManager.ly.enable = true;\n    services.displayManager.ly.package = pkgs.ly;\n\n    programs.hyprland.enable = true; # enable Hyprland\n    programs.hyprland.portalPackage = pkgs.xdg-desktop-portal-hyprland;\n    # environment.variables = {\n    #     WLR_NO_HARDWARE_CURSORS = \"1\"; # Jika mengalami masalah kursor\n    #     XKB_DEFAULT_LAYOUT = \"us\";  # Ganti dengan layout yang diinginkan\n    #     XKB_DEFAULT_VARIANT = \"\";   # Jika ada varian khusus, isi di sini\n    #     XDG_SESSION_TYPE = \"wayland\";  # Pastikan sesi menggunakan Wayland\n    #     XDG_CURRENT_DESKTOP = \"Hyprland\";\n    #     XDG_SESSION_DESKTOP = \"Hyprland\";\n    #     HYPRSHOT_DIR = \"/home/eep/Pictures/Screenshots\";\n    # };\n}\n"
  },
  {
    "path": "nixos/system/boot.nix",
    "content": "{ pkgs, ... }:\n\n{\n    # Bootloader.\n    boot.loader.systemd-boot.enable = true;\n    boot.loader.efi.canTouchEfiVariables = true;\n}"
  },
  {
    "path": "nixos/system/default.nix",
    "content": "{ ... }:\n\nlet\n    ver = \"25.05\";\nin {\n    imports = [\n        ./boot.nix\n        ./locale.nix\n        ./networking.nix\n        ./nixpkgs.nix\n        ./timeZone.nix\n        ./user.nix\n        ./environment.nix\n        ./security.nix\n    ];\n    system = {\n        stateVersion = \"${ver}\";\n    };\n}\n"
  },
  {
    "path": "nixos/system/environment.nix",
    "content": "{ pkgs, ... }:\n\n{\n    environment.systemPackages = with pkgs; [\n        # swww\n        # waypaper\n        rofi-wayland\n        dmidecode           # A tool that reads information about your system's hardware from the BIOS according to the SMBIOS/DMI standard\n        dart-sass           # dart sass for hugo\n        brightnessctl       # brightness control\n        pamixer             # control the volume with the PulseAudio backend\n        hugo                # hugo\n        gnumake             # for makefile\n        doas                # alternative of sudo\n        pgcli               # Rich command-line interface for PostgreSQL with auto-completion and syntax highlighting\n        curl                # curl\n        gcc                 # GNU Compiler Collection\n        wget                # wget\n        hyprshot\n        cmake\n        hwloc\n        zip\n        unzip\n        trashy              # if you do the command 'rm' or 'rm -rf' in the terminal it is automatically placed in the trash\n        nix-health          # check the health of your nix setup\n        nix-search-cli      # cli for searching package\n\n        # for go\n        #go-tools\n        #gopls\n\n        go-migrate\n        go-swagger\n        golangci-lint\n        gosec\n        go-mockery\n        ddosify\n        air\n    ];\n}\n"
  },
  {
    "path": "nixos/system/locale.nix",
    "content": "{ ... }:\n\n{\n    # Select internationalisation properties.\n    i18n.defaultLocale = \"en_US.UTF-8\";\n\n    i18n.extraLocaleSettings = {\n        LC_ADDRESS = \"id_ID.UTF-8\";\n        LC_IDENTIFICATION = \"id_ID.UTF-8\";\n        LC_MEASUREMENT = \"id_ID.UTF-8\";\n        LC_MONETARY = \"id_ID.UTF-8\";\n        LC_NAME = \"id_ID.UTF-8\";\n        LC_NUMERIC = \"id_ID.UTF-8\";\n        LC_PAPER = \"id_ID.UTF-8\";\n        LC_TELEPHONE = \"id_ID.UTF-8\";\n        LC_TIME = \"id_ID.UTF-8\";\n    };\n}"
  },
  {
    "path": "nixos/system/networking.nix",
    "content": "{ ... }:\n\n{\n    networking.hostName = \"nixos\";  # Define your hostname.\n    # networking.wireless.enable = true;  # Enables wireless support via wpa_supplicant.\n\n    # Configure network proxy if necessary\n    # networking.proxy.default = \"http://user:password@proxy:port/\";\n    # networking.proxy.noProxy = \"127.0.0.1,localhost,internal.domain\";\n\n    # Enable networking\n    networking.networkmanager.enable = true;\n}"
  },
  {
    "path": "nixos/system/nixpkgs.nix",
    "content": "{ config, pkgs, ... }:\n\n{\n    # Allow unfree packages\n    nixpkgs.config.allowUnfree = true;\n}"
  },
  {
    "path": "nixos/system/security.nix",
    "content": "{ ... }:\n\nlet\n    name = \"eep\";\nin {\n    security = {\n        sudo = {\n            enable = false;\n            wheelNeedsPassword = true;\n        };\n        doas = {\n            enable = true;\n            wheelNeedsPassword = true;\n            extraRules = [\n                {\n                    users = [\"${name}\"];\n                    groups = [\"wheel\"];\n                    keepEnv = true;\n                    noPass = false;\n                }\n            ];\n        };\n    };\n}    "
  },
  {
    "path": "nixos/system/timeZone.nix",
    "content": "{ ... }:\n\nlet\n  timezone = \"Asia/Jakarta\";\nin {\n    # Set your time zone.\n    time.timeZone = \"${timezone}\";\n}"
  },
  {
    "path": "nixos/system/user.nix",
    "content": "{ pkgs, ... }:\n\n{\n   users.users.eep = {\n      isNormalUser = true;\n      description = \"eep\";\n      extraGroups = [ \"networkmanager\" \"wheel\" \"docker\" ];\n   };\n}"
  },
  {
    "path": "nixos/virtualisation/default.nix",
    "content": "{ ... }:\n\n{\n    imports = [\n        ./docker.nix\n    ];\n}"
  },
  {
    "path": "nixos/virtualisation/docker.nix",
    "content": "{ pkgs, ... }:\nlet\n    name = \"eep\";\nin {\n    virtualisation = {\n        docker = {\n            enable = true;\n            enableOnBoot = true;\n            package = pkgs.docker;\n            autoPrune = {\n                enable = false;\n            };\n        };\n    };\n}"
  }
]