Last active
December 28, 2021 20:21
-
-
Save ozgun/b752130a3b33a3597b7e to your computer and use it in GitHub Desktop.
My XMonad config file
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import XMonad | |
import XMonad.Hooks.DynamicLog | |
import XMonad.Hooks.ManageDocks | |
import XMonad.Util.Run(spawnPipe) | |
import XMonad.Config.Desktop | |
---import XMonad.Config.Gnome | |
import XMonad.Config.Xfce | |
import qualified Data.Map as M | |
import XMonad.Hooks.SetWMName | |
import XMonad.Actions.CycleWS | |
import XMonad.Layout.NoBorders | |
import XMonad.Hooks.ManageHelpers | |
import XMonad.Prompt (defaultXPConfig) | |
import XMonad.Prompt.Ssh (sshPrompt) | |
import XMonad.Prompt | |
import XMonad.Prompt.Shell | |
import Data.List ( isInfixOf ) | |
--import XMonad.Actions.CycleWindows -- classic alt-tab | |
--import XMonad.Actions.CycleWS -- cycle thru WS', toggle last WS | |
-- ((modkey, key), action) | |
import XMonad.Util.EZConfig | |
import System.IO | |
import System.Exit | |
--- import qualified XMonad.Layout.IndependentScreens as LIS | |
--- togglevga = do | |
--- screencount <- LIS.countScreens | |
--- if screencount > 1 | |
--- then spawn "xrandr --output VGA1 --off" | |
--- else spawn "xrandr --output VGA1 --auto --right-of LVDS1" | |
------------------------------------------------------------------------ | |
-- Terminal | |
-- The preferred terminal program, which is used in a binding below and by | |
-- certain contrib modules. | |
-- | |
myTerminal = "/usr/bin/urxvt" | |
-- Define amount and names of workspaces | |
myWorkspaces = ["1:shell","2:code","3:browser","4:pidgin","5:git","6:file_manager","7:chat","8:torrent","9:misc"] | |
--- xprop |grep WM_CLASS ile listelenenlerden ilki resource, ikincisi classname olur. Ornegin: | |
-- WM_CLASS(STRING) = "gvim", "Gvim" | |
-- durumunda "gvim" resource yani appName'dir. "Gvim" ise className. | |
--- http://xmonad.org/xmonad-docs/xmonad/XMonad-ManageHook.html | |
-- appName: Return the application name.(WM_CLASS'taki 1. eleman) | |
-- resource: Backwards compatible alias for appName. | |
-- className: Return the resource class (WM_CLASS'taki 2. eleman) | |
-- title: Return the window title. (_NET_WM_NAME, WM_NAME) | |
myManageHook = composeAll | |
[ className =? "File Operation Progress" --> doFloat | |
, resource =? "desktop_window" --> doIgnore | |
, className =? "xfce4-notifyd" --> doIgnore | |
--, className =? "Iron" --> doShift "1:main" | |
---, className =? "Firefox" --> doShift "3:trades" | |
, className =? "URxvt" --> doShift "1:shell" | |
---, appName =? "README.rdoc (~/Projects/yh/parkweb) - GVIM" --> doShift "2:code" | |
---, name =? "project (~/Projects/yh/parkweb/tmp) - GVIM" --> doShift "2:code" | |
---, netName =? "project (~/Projects/yh/parkweb/tmp) - GVIM" --> doShift "2:code" | |
---, title =? "project (~/Projects/yh/parkweb/tmp) - GVIM" --> doShift "2:code" | |
---, title ~? "my_project" --> doShift "2:code" | |
---, title ~? "Calcu" --> doShift "2:code" | |
---, appName ~? "gcalct" --> doShift "2:code" | |
---, appName ~? ".my_project" --> doShift "2:code" | |
---, stringProperty "WM_NAME" ~? ".my_project" --> doShift "2:code" | |
---, className =? "Gvim" <&&> | |
--- fmap ( ".my_project" `isInfixOf` ) ( stringProperty "WM_NAME" ) --> doShift "2:code" | |
, className =? "Google-chrome" --> doShift "3:browser" | |
, className =? "Pidgin" --> doShift "4:pidgin" | |
, className =? "Git-gui" --> doShift "5:git" | |
, className =? "Worker" --> doShift "6:file_manager" | |
, className =? "Thunar" --> doShift "6:file_manager" | |
, className =? "Xchat" --> doShift "7:chat" | |
, className =? "Transmission-gtk" --> doShift "8:torrent" | |
---, className =? "Shotwell" --> doShift "5:graphic" | |
---, className =? "Skype" --> doFloat | |
---, className =? "push_setup" --> doFloat | |
---, className =? "TopLevel" --> doFloat | |
---, className =? "Push" --> doFloat | |
, appName =? "push_setup" --> doFloat -- git push penceresi | |
, appName =? "__console____o1____d" --> doFloat --- git push yaptiktan sonraki process penceresi | |
, className =? "Toplevel" --> doFloat --- git push yaptiktan sonraki process penceresi | |
, className =? "Gimp" --> doFloat | |
, className =? "Pidgin" --> doFloat | |
, className =? "Vlc" --> doFloat | |
, className =? "Xmessage" --> doFloat | |
, className =? "Transmission-gtk" --> doFloat | |
, className =? "Gcr-viewer" --> doFloat | |
, appName =? "Delete" --> doFloat --- worker file delete window | |
, appName =? "Copy" --> doFloat --- worker file copy window | |
, appName =? "Move" --> doFloat --- worker file move window | |
, appName =? "Worker Configuration" --> doFloat --- worker configurtion window | |
, appName =? "Edit type" --> doFloat --- worker configurtion window | |
, appName =? "Hotkeys" --> doFloat --- worker configurtion window | |
, appName =? "Edit button" --> doFloat --- worker configurtion window | |
, appName =? "Save File" --> doFloat --- Chrome download/save file | |
, title =? "Add New Items" --> doFloat --- Xfce4-panel add new items | |
, isFullscreen --> doFullFloat | |
, className =? "TheSwapper.bin.x86" --> doFullFloat | |
, isDialog --> doFloat | |
--, className =? "Gimp" --> doShift "5:graphic" | |
--, className =? "Vlc" --> doShift "7:media" | |
--, className =? "Minitube" --> doShift "7:media" | |
] where name = stringProperty "WM_NAME" | |
netName = stringProperty "_NET_WM_NAME" | |
role = stringProperty "WM_WINDOW_ROLE" | |
customKeys (XConfig {modMask = modm}) = M.fromList $ | |
[ ((modm, xK_p) , spawn "dmenu_run") | |
, ((modm .|. shiftMask, xK_q) , spawn "gnome-session-quit") | |
] | |
myKeys = | |
[ (("M1-C-w"), spawn "google-chrome") | |
, (("M1-C-v"), spawn "gvim") | |
---, (("M1-z"), spawn "xkill") | |
, (("M1-C-f" ), spawn "worker") -- file manager | |
, (("M1-C-t" ), spawn myTerminal) -- terminal | |
, (("M1-<F4>"), kill) -- to kill applications | |
, (("M1-C-l"), spawn "xscreensaver-command -lock") -- lock | |
, (("M1-C-<Backspace>"), io (exitWith ExitSuccess)) --- logout, CTRL+ALT+Backspace | |
---, (("M1-C-<End>"), spawn("gksudo shutdown -h now")) --- halt, CTRL+ALT+End | |
, (("M1-C-<End>"), spawn("gksudo pm-hibernate")) --- halt, CTRL+ALT+End | |
, (("M1-C-k"), spawn "/home/ozgun/bin/commands.sh" ) -- komutlar | |
, (("M1-C-u"), spawn "/home/ozgun/bin/uye_siteler.sh") | |
, (("M1-C-s"), sshPrompt defaultXPConfig) --- ssh baglantisi acmak icin. CTRL+ALT+s | |
, (("M1-C-r"), shellPrompt defaultXPConfig) --- Shell'de program calistirma icin. CTRL+ALT+r | |
, ("C-<Print>", spawn "sleep 0.2; scrot -s") | |
, ("<Print>", spawn "scrot") | |
, ("M-<Esc>", toggleWS) -- <-- Really really usefull!!!. Son 2 workspace arasinda toggle. | |
] | |
--, ("M1-<Tab>", cycleRecentWindows [xK_Alt_L] xK_Tab xK_Tab) -- %! Alt+TAB | |
--, ((modMask, xK_Tab), windows W.focusDown) -- %! Move focus to the next window | |
--- myKeys = | |
--- [ (("M4-c"), spawn "google-chrome") -- mod+c chrome acar | |
--- , (("M4-z"), spawn "xkill") | |
--- , ((mod1Mask .|. controlMask, xK_l), spawn "xscreensaver-command -lock") | |
--- , ((controlMask, xK_Print), spawn "sleep 0.2; scrot -s") | |
--- , ((controlMask .|. mod1Mask, xK_BackSpace), io (exitWith ExitSuccess)) | |
--- , (( mod4Mask, xK_f), spawn "firefox") -- to open firefox | |
--- , (( mod4Mask, xK_F4), kill) -- to kill applications | |
--- , (( controlMask, xK_KP_Add), sendMessage Expand) -- Ctrl + the plus (+) button to expand the master pane | |
--- , ((mod1Mask .|. controlMask, xK_k), spawn "/home/ozgun/bin/commands.sh" ) | |
--- , ((mod1Mask .|. controlMask, xK_v), spawn "gvim" ) | |
--- , ((mod1Mask .|. controlMask, xK_u), spawn "/home/ozgun/bin/uye_siteler.sh" ) | |
--- , ((0, xK_Print), spawn "scrot") | |
--- ] | |
main = do | |
xmonad $ xfceConfig | |
{ modMask = mod4Mask | |
, borderWidth = 1 | |
, terminal = myTerminal | |
, workspaces = myWorkspaces | |
---, manageHook = manageDocks <+> manageHook defaultConfig | |
, manageHook = manageDocks <+> myManageHook | |
, startupHook = setWMName "LG3D" | |
, layoutHook = smartBorders . avoidStruts $ layoutHook defaultConfig | |
, keys = customKeys <+> keys desktopConfig | |
} `additionalKeysP` myKeys | |
-- Query operators | |
q ~? x = fmap (x `isInfixOf`) q -- haystack includes needle? | |
--- main = do | |
--- xmonad $ defaultConfig | |
--- { modMask = mod4Mask | |
--- , borderWidth = 1 | |
--- , terminal = myTerminal | |
--- , workspaces = myWorkspaces | |
--- ---, manageHook = manageDocks <+> manageHook defaultConfig | |
--- , manageHook = manageDocks <+> myManageHook | |
--- , startupHook = setWMName "LG3D" | |
--- , layoutHook = smartBorders . avoidStruts $ layoutHook defaultConfig | |
--- , keys = customKeys <+> keys desktopConfig | |
--- } `additionalKeysP` myKeys | |
--- | |
--- main = do | |
--- xmproc <- spawnPipe "/usr/bin/xmobar ~/.xmobarrc" | |
--- xmonad $ defaultConfig | |
--- { modMask = mod4Mask | |
--- , borderWidth = 1 | |
--- , terminal = myTerminal | |
--- , workspaces = myWorkspaces | |
--- , manageHook = manageDocks <+> manageHook defaultConfig | |
--- , layoutHook = avoidStruts $ layoutHook defaultConfig | |
--- }`additionalKeys` | |
--- [ ((mod1Mask .|. controlMask, xK_l), spawn "xscreensaver-command -lock") | |
--- , ((controlMask, xK_Print), spawn "sleep 0.2; scrot -s") | |
--- , ((controlMask .|. mod1Mask, xK_BackSpace), io (exitWith ExitSuccess)) | |
--- , (( mod4Mask, xK_f), spawn "firefox") -- to open firefox | |
--- , (( mod4Mask, xK_F4), kill) -- to kill applications | |
--- , (( controlMask, xK_KP_Add), sendMessage Expand) -- Ctrl + the plus (+) button to expand the master pane | |
--- , ((mod1Mask .|. controlMask, xK_k), spawn "/home/ozgun/bin/commands.sh" ) | |
--- , ((mod1Mask .|. controlMask, xK_v), spawn "gvim" ) | |
--- , ((mod1Mask .|. controlMask, xK_u), spawn "/home/ozgun/bin/uye_siteler.sh" ) | |
--- , ((0, xK_Print), spawn "scrot") | |
--- ] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment