No, this is not a topic whether keyboard / mouse or gamepad controls are better :-)
I'm having a different problem: On Linux (Slackware64 14.2 in my case) and with two different console gamepad converters (EMS Trio Linker Plus II and Bliss Box) the game is crashing on start if a controller is connected. Judging from the log (see below) the input library seems to cause the crash. Apart from that the game is running perfectly and is perfect fun - thanks a lot!
Stacktrace: at (wrapper managed-to-native) IxboduSEWeEfUOCcbJLzYAjUvjN.cYDfacSWXeRkenHjXeMXFWdJESx (intptr,string,string) <0x000b8> at (wrapper managed-to-native) IxboduSEWeEfUOCcbJLzYAjUvjN.cYDfacSWXeRkenHjXeMXFWdJESx (intptr,string,string) <0x000b8> at IxboduSEWeEfUOCcbJLzYAjUvjN.JFYETsstakHPRjykrGTMhusUgmX (intptr,string,string) <0x00028> at racuqrGfcNAVVxmXGLXtGBVGPsd.JFYETsstakHPRjykrGTMhusUgmX (intptr,string,string) <0x0003b> at EZPQDGiWHsubHsxsOkPDJKHoLPu.LVFadESqqJtmKWCUVXwwSpInJFo (intptr) <0x00345> at EZPQDGiWHsubHsxsOkPDJKHoLPu..ctor () <0x00133> at Rewired.Linux.LinuxInputSource..ctor (Rewired.Config.UpdateLoopSetting,bool,bool,bool,bool) <0x00041> at Rewired.Linux.LinuxInputManager..ctor (Rewired.Data.ConfigVars,System.Func`2<Rewired.BridgedControllerHWInfo, Rewired.HardwareJoystickMap_InputManager>,System.Func`1<int>,bool,bool,bool,bool) <0x000c8> at Rewired.InputManagers.Initializer.Initialize (Rewired.Data.ConfigVars) <0x000e2> at SGOGEfdrBuQcIIQrVpGGMBAQHTHq.pCvjmjNEMejgvjMRWcanISBJqiea (string,System.Collections.Generic.List`1<System.Reflection.Assembly>,Rewired.Data.ConfigVars) <0x00162> at Rewired.InputManager_Base.InitializePlatform (Rewired.Data.ConfigVars) <0x00099> at Rewired.ReInput.YRWVGJLLxndyxDUUopzNtFSAIu (System.Func`2<Rewired.Data.ConfigVars, object>) <0x003b9> at Rewired.ReInput.pCvjmjNEMejgvjMRWcanISBJqiea (Rewired.InputManager_Base,System.Func`2<Rewired.Data.ConfigVars, object>,Rewired.Data.ConfigVars,Rewired.Data.ControllerDataFiles,Rewired.Data.UserData,Rewired.Data.UserDataStore) <0x0018b> at Rewired.InputManager_Base.Initialize () <0x00340> at Rewired.InputManager_Base.Awake () <0x00014> at (wrapper runtime-invoke) object.runtime_invoke_void__this__ (object,intptr,intptr,intptr) <0x0005e> Native stacktrace: /usr/local/games/WhatTheBox_Data/Mono/x86_64/libmono.so(+0x91a46) [0x7f7957404a46] /usr/local/games/WhatTheBox_Data/Mono/x86_64/libmono.so(+0x348e4) [0x7f79573a78e4] /lib64/libpthread.so.0(+0x113b0) [0x7f795a6413b0] /lib64/libc.so.6(strlen+0x26) [0x7f7958e6fff6] /lib64/libudev.so.0(+0x5b14) [0x7f78cc7afb14] /lib64/libudev.so.0(udev_device_get_parent+0x30) [0x7f78cc7afb90] /usr/lib64/libudev.so(udev_device_get_parent_with_subsystem_devtype+0x14) [0x7f7955fe7aa4] [0x411cb3b8] Debug info from gdb: [...] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". 0x00007f795a64053d in read () from /lib64/libpthread.so.0 Id Target Id Frame * 1 Thread 0x7f795ac19740 (LWP 24181) "WhatTheBox.x86_" 0x00007f795a64053d in read () from /lib64/libpthread.so.0 2 Thread 0x7f7956ce7700 (LWP 24182) "WhatTheBox.x86_" 0x00007f795a63d718 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0 [... snip idle threads due to message length constraints ...] 33 Thread 0x7f7940244700 (LWP 24215) "WhatTheBox.x86_" 0x00007f7958ee19f7 in ioctl () from /lib64/libc.so.6 34 Thread 0x7f7940238700 (LWP 24216) "WhatTheBox.x86_" 0x00007f7958eb0c4d in nanosleep () from /lib64/libc.so.6 35 Thread 0x7f7940023700 (LWP 24217) "WhatTheBox.x86_" 0x00007f795a63f847 in do_futex_wait.constprop () from /lib64/libpthread.so.0 36 Thread 0x7f78cddd1700 (LWP 24218) "WhatTheBox.x86_" 0x00007f795a63f847 in do_futex_wait.constprop () from /lib64/libpthread.so.0 37 Thread 0x7f78cd5d0700 (LWP 24219) "WhatTheBox.x86_" 0x00007f7958ee030d in poll () from /lib64/libc.so.6 38 Thread 0x7f7957a81700 (LWP 24220) "WhatTheBox.x86_" 0x00007f7958eb0c4d in nanosleep () from /lib64/libc.so.6 Thread 38 (Thread 0x7f7957a81700 (LWP 24220)): #0 0x00007f7958eb0c4d in nanosleep () at /lib64/libc.so.6 #1 0x00007f7958ee2844 in usleep () at /lib64/libc.so.6 #2 0x000000000147edff in () #3 0x00000000014755fb in FMOD::Thread::callback(void*) () #4 0x00007f795a637684 in start_thread () at /lib64/libpthread.so.0 #5 0x00007f7958eebefd in clone () at /lib64/libc.so.6 [... snip idle threads due to message length constraints ...] Thread 3 (Thread 0x7f7956c56700 (LWP 24183)): #0 0x00007f795a63f847 in do_futex_wait.constprop () at /lib64/libpthread.so.0 #1 0x00007f795a63f8f4 in __new_sem_wait_slow.constprop.0 () at /lib64/libpthread.so.0 #2 0x00007f795a63f99a in sem_wait@@GLIBC_2.2.5 () at /lib64/libpthread.so.0 #3 0x00007f79574fedcf in mono_sem_wait () at /usr/local/games/WhatTheBox_Data/Mono/x86_64/libmono.so #4 0x00007f79574698b5 in () at /usr/local/games/WhatTheBox_Data/Mono/x86_64/libmono.so #5 0x00007f79574d117e in () at /usr/local/games/WhatTheBox_Data/Mono/x86_64/libmono.so #6 0x00007f79574f6ce7 in () at /usr/local/games/WhatTheBox_Data/Mono/x86_64/libmono.so #7 0x00007f7957517836 in () at /usr/local/games/WhatTheBox_Data/Mono/x86_64/libmono.so #8 0x00007f795a637684 in start_thread () at /lib64/libpthread.so.0 #9 0x00007f7958eebefd in clone () at /lib64/libc.so.6 Thread 2 (Thread 0x7f7956ce7700 (LWP 24182)): #0 0x00007f795a63d718 in pthread_cond_timedwait@@GLIBC_2.3.2 () at /lib64/libpthread.so.0 #1 0x00007f79574e38c2 in () at /usr/local/games/WhatTheBox_Data/Mono/x86_64/libmono.so #2 0x00007f795a637684 in start_thread () at /lib64/libpthread.so.0 #3 0x00007f7958eebefd in clone () at /lib64/libc.so.6 Thread 1 (Thread 0x7f795ac19740 (LWP 24181)): #0 0x00007f795a64053d in read () at /lib64/libpthread.so.0 #1 0x00007f7957404b91 in () at /usr/local/games/WhatTheBox_Data/Mono/x86_64/libmono.so #2 0x00007f79573a78e4 in () at /usr/local/games/WhatTheBox_Data/Mono/x86_64/libmono.so #3 0x00007f795a6413b0 in <signal handler called> () at /lib64/libpthread.so.0 #4 0x00007f7958e6fff6 in strlen () at /lib64/libc.so.6 #5 0x00007f78cc7afb14 in () at /lib64/libudev.so.0 #6 0x00007f78cc7afb90 in udev_device_get_parent () at /lib64/libudev.so.0 #7 0x00007f7955fe7aa4 in udev_device_get_parent_with_subsystem_devtype () at /usr/lib64/libudev.so #8 0x00000000411cb3b8 in () #9 0x0000000003390650 in () #10 0x0000000003391610 in () #11 0x00007ffe858c9628 in () #12 0x0000000004d024d0 in () #13 0x0000000000000000 in () ================================================================= Got a SIGSEGV while executing native code. This usually indicates a fatal error in the mono runtime or one of the native libraries used by your application. ================================================================= Preloaded type GtkListStore Preloaded type GtkWindow Preloaded type GtkVBox Preloaded type GtkImage Preloaded type GtkNotebook Preloaded type GtkHBox Preloaded type GtkFrame Preloaded type GtkAlignment Preloaded type GtkTreeView Preloaded type GtkLabel Preloaded type GtkCheckButton Preloaded type GtkScrolledWindow Preloaded type GtkComboBox