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