module TreeSelect where import Data.Tree import XMonad import qualified XMonad.StackSet as W import XMonad.Actions.TreeSelect import Defaults showTS x = treeselectAction myTSConfig x myBrowserTS :: Forest (TSNode (X ())) myBrowserTS = [ Node (TSNode "LibreWolf" "The default" (spawn myBrowser)) [] , Node (TSNode "LibreWolf (private)" "" (spawn myPrivateBrowser)) [] , Node (TSNode "Vivaldi" "" (spawn myBrowser')) [] , Node (TSNode "TOR" "" (spawn "torbrowser-launcher")) [] , Node (TSNode "Firefox" "" (spawn "firefox")) [] , Node (TSNode "Brave" "" (spawn "brave")) [] ] myEditingTS :: Forest (TSNode (X ())) myEditingTS = [ Node (TSNode "GIMP" "Hackerman's photoshop" (spawn "gimp")) [] , Node (TSNode "Kdenlive" "Main video editor" (spawn "kdenlive")) [] , Node (TSNode "Audacity" "" (spawn "audacity")) [] , Node (TSNode "OBS" "" (spawn "obs-studio")) [] , Node (TSNode "Canva" "Zoomer's photoshop" (spawn $ myBrowser ++ " https://canva.com")) [] ] myDevTS :: Forest (TSNode (X ())) myDevTS = [ Node (TSNode "Doom Emacs" "" (spawn myTextEditor)) [] , Node (TSNode "VSC" "VSCodium" (spawn myTextEditor')) [] , Node (TSNode "Postman" "" (spawn "postman")) [] , Node (TSNode "Virt Manager" "" (spawn "virt-manager")) [] , Node (TSNode "IntelliJ IDEA" "Java IDE" (spawn "idea")) [] , Node (TSNode "Android Studio" "" (spawn "android-studio")) [] , Node (TSNode "PyCharm" "Python IDE" (spawn "pycharm")) [] ] myUtilTS :: Forest (TSNode (X ())) myUtilTS = [ Node (TSNode "File Manager" "" (spawn myFileManager)) [] , Node (TSNode "Volume Control" "pavucontrol" (spawn "pavucontrol")) [] , Node (TSNode "Cloud" "Nextcloud" (spawn $ myBrowser ++ " " ++ myCloud)) [] , Node (TSNode "Calculator" "" (spawn myCalculator)) [] , Node (TSNode "Screenshot" "" (spawn fullScreenshot)) [] , Node (TSNode "Torrent" "" (spawn myTorrentClient)) [] , Node (TSNode "Email Client" "" (spawn myEmailClient)) [] , Node (TSNode "Screen Recorder" "OBS" (spawn "obs-studio")) [] , Node (TSNode "Wallpapers" "" (spawn myWallpaperMenu)) [] , Node (TSNode "Google Docs" "" (spawn $ myBrowser ++ " https://docs.google.com")) [] , Node (TSNode "Google Sheets" "" (spawn $ myBrowser ++ " https://sheets.google.com")) [] , Node (TSNode "Google Slides" "" (spawn $ myBrowser ++ " https://slides.google.com")) [] , Node (TSNode "Google Forms" "" (spawn $ myBrowser ++ " https://forms.google.com")) [] ] myLinksTS :: Forest (TSNode (X ())) myLinksTS = [ Node (TSNode "Linode Dashboard" "" (spawn $ myBrowser ++ " " ++ vpsDashboard)) [] , Node (TSNode "Linode Dashboard (DNS)" "" (spawn $ myBrowser ++ " " ++ dnsDashboard)) [] , Node (TSNode "Git Server" "MikunoNaka.net" (spawn $ myBrowser ++ " " ++ myGitServer)) [] , Node (TSNode "GitHub" "My GitHub Profile" (spawn $ myBrowser ++ " " ++ myGitHubProfile)) [] , Node (TSNode "MyAnimeList" "My MAL Profile" (spawn $ myBrowser ++ " " ++ myMALProfile)) [] , Node (TSNode "My Website" "VidhuKant.com" (spawn $ myBrowser ++ " " ++ myWebsite)) [] , Node (TSNode "Cloud Storage" "Nextcloud" (spawn $ myBrowser ++ " " ++ myCloud)) [] , Node (TSNode "YouTube Channel" "" (spawn $ myBrowser ++ " " ++ myYTChannel)) [] , Node (TSNode "WhatsApp Web" "" (spawn $ myBrowser ++ " https://web.whatsapp.com")) [] , Node (TSNode "Google Docs" "" (spawn $ myBrowser ++ " https://docs.google.com")) [] , Node (TSNode "Google Sheets" "" (spawn $ myBrowser ++ " https://sheets.google.com")) [] , Node (TSNode "Google Slides" "" (spawn $ myBrowser ++ " https://slides.google.com")) [] , Node (TSNode "Google Forms" "" (spawn $ myBrowser ++ " https://forms.google.com")) [] ] myPowerTS :: Forest (TSNode (X ())) myPowerTS = [ Node (TSNode "Shut Down" "" (spawn "shutdown now")) [] , Node (TSNode "Reboot" "" (spawn "reboot")) [] ] myMainTS :: Forest (TSNode (X ())) myMainTS = [ Node (TSNode "Web Browser" "Open for more options" (spawn myBrowser)) myBrowserTS , Node (TSNode "Discord" "Zoomer's Spyware" (spawn myDiscord)) [] , Node (TSNode "Editing" "Makin' memes" (return())) myEditingTS , Node (TSNode "Development" "Hackering tools" (return())) myDevTS , Node (TSNode "Utilities" "Misc n settings" (return())) myUtilTS , Node (TSNode "Links" "Commonly visited sites" (return())) myLinksTS , Node (TSNode "Power" "" (return())) myPowerTS ]