From 499bb6a2d9f08c3fad40297a13d63c35c42ec260 Mon Sep 17 00:00:00 2001 From: Vidhu Kant Sharma Date: Sat, 23 Mar 2024 12:48:35 +0530 Subject: added a TreeSelect Menu --- .config/XMonad/lib/TreeSelect.hs | 93 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 .config/XMonad/lib/TreeSelect.hs (limited to '.config/XMonad/lib/TreeSelect.hs') diff --git a/.config/XMonad/lib/TreeSelect.hs b/.config/XMonad/lib/TreeSelect.hs new file mode 100644 index 0000000..803789f --- /dev/null +++ b/.config/XMonad/lib/TreeSelect.hs @@ -0,0 +1,93 @@ +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 + ] -- cgit v1.2.3