here is my gift-buying advice,. it NEVER steers me wrong. i got it from an episode of News Radio where andy dick buys Bill Gates a ball of twine. if you have someone to buy a ift for who doesnt need anything and hasnt ASKED for anything:
dont buy them what they want. people want garbage. you want garbage,. and then when you get it you dont like it. dont ask them what they want either, they dont know. you want to get them something they will not buy for themselves
think about what they would actually use. this can be a replacement for something they used to use that broke, but not an 'upgrade' unless they have specifically expressed wanting a new one. do not buy anything that could be construed as you criticising their way of doing something. if tthey are currently doing something the wrong way and are aware there is a right way but dont do it, there's a reason
think about what they have room in their space to store. when you give someone a gift it becomes an obligation to them regardless of how much they like the gift. they have to store it, look at it, and interact with it, they have to thank you for it too. keep this in mind. small or flat and non-fragile items are best. for example if someone expresses a desire for a houseplant, i will often give them a clone of one of my impossible to kill grandmother plants and then tell them go ahead and kill it, there's plenty more where that one came from and the mother plant doesnt care. never give someone an obligation or strings attached to a gift unless you hate them. do not ask them if they like it or if they're using it afterwards, either. they'll tell you if they do. if not it's better to let it slide
think about situations where they coudl easily and pleasantly use this gift but which they have not thought of themselves. for example your straight male roommate probably doesnt have a fucking bathrobe
think about things they already choose to spend time on and enjoy. for example, my mom said she was starting to think about her novel but didnt know where to start. i bought her a pack of really nice index cards and told her about Nabokov's method of writing sentences and then freely arranging them. index cards are good for everything, not just novel writing. theyre cheap, flat, dont expire, and are visually neutral, and cheap. plus she likes stationery a lot anyway. GREAT gift.
keep it cheap (again this is for someone who doesnt want/need anything). expensive gifts are too much of an obligation for everyone involved and usually more stressful than helpful unless someone needs something specific (like a computer or phone)
do not buy them anything decorative. decorations are way too personal. the expectation is that they have to display it in their house forever or you might get your feelings hurt. bad gift
"i really liked this item/product/tool so i got one for you too because you have the same use case that i do" is a really good gift if you know this is the situation. for example maybe you and your sister have the same skin tone and you found a blush that looks great on your skin. maybe you and your friend both like fountain pens and you found an ink you really like. maybe you and your mom both get migraines and you found an icepack you really like. etc.
SUMMARY: buy them something they havent thought of themselves, wont buy for themselves, but have a pre-existing use case for. you will look like a genius and get lots and lots of thank yous. keep it small and inexpensive and easy to throw away/store/hide in case they politely do not like it. that's my method and it has never failed me since ive started doing it