<TJ-> sabel: ACPI (Advanced Configuration and Power Interface) is responsible for such things. Within ACPI is the Differentiated System Description Table (DSDT) which contains a virtual machine bytecode that is executed by the system
<TJ-> sabel: Many, if not most, manufacturers tailor that ACPI DSDT code to recognise and provide full functionality only to Windows
<sabel> TJ- oh..is there any harm in just holding the power button?
<TJ-> sabel: Linux usally gets the lowest possible (default fallback) features, which can include devices not working at all
<TJ-> sabel: the good news is Linux can pretend to be Windows
TJ-> sabel: the DSDT code will recognise various versions of Windows so your first step is to identify the versions it recognises. Use this: "sudo strings /sys/firmware/acpi/tables/DSDT | grep -i windows" and show us (in a pastebin) the result
<sabel> TJ- just says windows 2009, 2012, 2013. didnt seem to need a pastebin for that.
<TJ-> sabel: right, so the 'best' versions is "Windows 2013" yes? (the capital W is important)
<TJ-> sabel: so you can add the kernel command-line parameter to tell it to pretend to be "Windows 2013" by doing: "sudo sed -i 's/^\(GRUB_CMDLINE_LINUX=".*\)"$/\1 acpi_osi=\\"Windows 2013\\""/' /etc/default/grub "
<TJ-> sabel: after which the entry will look something like GRUB_CMDLINE_LINUX="acpi_osi=\"Windows 2013\"" if you do "cat /etc/default/grub"
<sabel> TJ- yep that worked, Should i reboot and give it a shot?
<TJ-> sabel: if that is correct, update grub's boot menu with "sudo update-grub" and next time the PC boots, with luck, the full ACPI functionality will be there and power off might work properly (and other things too!)
<sabel> Alrighty wish me luck!