Since dhcpcd is part of "base" packages, you don't really need anything else to have networking. I don't use NetworkManager anymore, as it is bloat at home as I only use wired. But NetworkManager is fine (with also nice ui) and also convenient for wifi. (network-manager-applet)
Just set up /etc/conf.d/net
My interface is eth0 (I only use wired), yours could be different (enp0s25, enp3s0 etc..), check it out with "ip a".
/etc/conf.d/net
# Set the dns_domain_lo variable to the selected domain name
dns_domain_lo="lan"
#If no domain name is configured, then users will notice they get
#"This is hostname.(none)" messages at their login screen.
#This should then be fixed by editing /etc/issue and deleting the string .\O from that file.
modules="dhcpcd" # Only needed if you have more than one DHCP module installed
# For DHCP
dhcpcd_eth0="-t 10" # Timeout after 10 seconds
config_eth0="dhcp"
# For static IP using CIDR notation
#config_eth0="192.168.1.x/24"
#routes_eth0="default via 192.168.1.1"
#dns_servers_eth0="192.168.1.1" # use dns provided by router
# For static IP using netmask notation
#config_eth0="192.168.1.x netmask 255.255.255.0 brd 192.168.1.255"
#routes_eth0="default via 192.168.1.1"
#dns_servers_eth0="192.168.1.1" # use dns provided by router
I use dhcp to get my IP lease, if you want static, comment the dhcp part and uncomment one of the two blocks below, replacing the values of gateway, netmask, interface.. as needed.
You can also use dhclient instead of dhcpcd. In that case, install it : pacman -S dhclient
and replace the modules line to use "dhclient" instead of dhcpcd.
Then, make a symlink of your interface (here eth0) in /etc/init.d
ln -s /etc/init.d/net.lo /etc/init.d/net.eth0
Finally, enable the service :
rc-update add net.eth0 default