Skip to content
Extraits de code Groupes Projets
Vérifiée Valider 7a59b2eb rédigé par Kubat's avatar Kubat
Parcourir les fichiers

Initial commit

parent
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
*.errors
prompt-history
*.png
*.jpg
*.o
lock
wallpaper
xmonad
xmonad-*
*.hi
#!/bin/sh
# export GTK_IM_MODULE=ibus
# export XMODIFIERS=@im=ibus
# export QT_IM_MODULES=ibus
ibus-daemon -drx
ibus engine anthy
# xrdb $HOME/.Xresources
# feh --bg-scale /home/kubat/.xmonad/wallpaper &
pulseaudio &
setxkbmap kubat
// The Kubat Keyboard
// cf $HOME/.keyboard
partial alphanumeric_keys
xkb_symbols "basic" {
include "pc(pc105)"
include "latin"
include "level3(ralt_switch)"
include "nbsp(level4nl)"
include "keypad(oss)"
include "jp(kana)"
include "keypad(operators)"
name[Group1]="Kubat Jr. keyboard";
// First row
key <TLDE> { type[Group1]="PC_ALT_LEVEL2", symbols[Group1]= [ Zenkaku_Hankaku, Kanji ] };
key <AE01> { [ ampersand, 1, ampersand, 1 ] };
key <AE02> { [ numbersign, 2, numbersign, 2 ] };
key <AE03> { [ apostrophe, 3, quotedbl, 3 ] };
key <AE04> { [ parenleft, 4, parenleft, 4 ] };
key <AE05> { [ parenright, 5, parenright, 5 ] };
key <AE06> { [ asciitilde, 6, asciitilde, 6 ] };
key <AE07> { [ grave, 7, grave, 7 ] };
key <AE08> { [ bar, 8, bar, 8 ] };
key <AE09> { [ asciicircum, 9, asciicircum, 9 ] };
key <AE10> { [ at, 0, at, 0 ] };
key <AE11> { [ minus, 0x1002014, asciitilde, 0x1002014 ] };
key <AE12> { [ equal, plus, equal, plus ] };
// Second row
key <AD01> { [ a, A, ae, AE ] };
key <AD02> { [ z, Z, agrave, Agrave] };
key <AD03> { [ e, E, eacute, Eacute ] };
key <AD04> { [ r, R, ecircumflex, Ecircumflex ] };
key <AD05> { [ t, T, egrave, Egrave ] };
key <AD06> { [ y, Y, ydiaeresis, Ydiaeresis ] };
key <AD07> { [ u, U, ugrave, Ugrave ] };
key <AD08> { [ i, I, icircumflex, Icircumflex ] };
key <AD09> { [ o, O, oe, OE ] };
key <AD10> { [ p, P, ocircumflex, Ocircumflex ] };
key <AD11> { [ colon, colon, colon, colon ] };
key <AD12> { [ dollar, dollar, U20AC, U20AC ] };
// Third row
key <CAPS> { [ nobreakspace, nobreakspace, U202F, U202F ] };
key <AC01> { [ q, Q, acircumflex, Acircumflex ] };
key <AC02> { [ s, S, s, S ] };
key <AC03> { [ d, D, ediaeresis, Ediaeresis ] };
key <AC04> { [ f, F, f, F ] };
key <AC05> { [ g, G, g, G ] };
key <AC06> { [ h, H, h, H ] };
key <AC07> { [ j, J, ucircumflex, Ucircumflex ] };
key <AC08> { [ k, K, idiaeresis, Idiaeresis ] };
key <AC09> { [ l, L, bracketleft, 0x100013F ] };
key <AC10> { [ m, M, bracketright, Odiaeresis ] };
key <AC11> { [ semicolon, semicolon, semicolon, semicolon ] };
key <BKSL> { [ asterisk, percent, asterisk, percent ] };
// Fourth row
key <LSGT> { [ less, greater, lessthanequal, greaterthanequal ] };
key <AB01> { [ w, W, leftdoublequotemark, guillemotleft ] };
key <AB02> { [ x, X, rightdoublequotemark, guillemotright ] };
key <AB03> { [ c, C, ccedilla, Ccedilla ] };
key <AB04> { [ v, V, 0x100202F, 0x100202F ] };
key <AB05> { [ b, B, braceleft, braceleft ] };
key <AB06> { [ n, N, braceright, braceright ] };
key <AB07> { [ comma, question, kana_comma, kana_comma ] };
key <AB08> { [ period, 0x1002026, kana_fullstop, kana_fullstop ] };
key <AB09> { [ slash, slash, backslash, backslash ] };
key <AB10> { [ exclam, exclam, kana_middledot, kana_middledot ] };
// Fifth row
key <SPCE> { [ space, space, underscore, underscore ] };
// key <MENU> { type[Group1]="PC_ALT_LEVEL2", symbols[Group1]= [ Henkan, Mode_switch ]};
// Key Pad
key <NMLK> { type[Group1]="PC_ALT_LEVEL2", symbols[Group1]=[ Muhenkan ] };
key <KPDV> { [ slash, slash ] };
key <KPMU> { [ asterisk, asterisk ] };
key <KPSU> { [ minus, minus ] };
key <KPAD> { [ plus, plus ] };
key <KP9> { [ 9, 9, U2510 ] };
key <KP8> { [ 8, 8, U2500, U252C ] };
key <KP7> { [ 7, 7, U250C ] };
key <KP6> { [ 6, 6, U2502, U2524 ] };
key <KP5> { [ 5, 5, U253C ] };
key <KP4> { [ 4, 4, U2502, U251C ] };
key <KP3> { [ 3, 3, U2518 ] };
key <KP2> { [ 2, 2, U2500, U2534 ] };
key <KP1> { [ 1, 1, U2514 ] };
key <KP0> { [ 0, 0 ] };
key <KPDL> { [ period, period, 0x1002026, 0x1002026 ] };
};
#!/bin/sh
convert -size 1920x1800 xc:black base.jpg
convert base.jpg -pointsize 80 -fill lime -fill white -draw "text -0,250 'Hostname: kubatpc'" -pointsize 60 -draw "text -0,500 'Date Tue Jan 29 18:51:48 CET 2019'" 3.jpg
Config { font = "xft:HackNerdFont:size=10:antialias=true,IPAPGothic:size=10:antialias=true"
, bgColor = "#002b36"
, fgColor = "#839496"
, position = Static { xpos = 0 , ypos = 0, width = 1920, height = 18 }
, commands = [ Run Cpu ["-t", "<fc=#b58900>CPU</fc> <total>%", "-L","3","-H","50"] 50
, Run Memory ["-t","<fc=#b58900>RAM</fc> <usedratio>%","-H","80","-L","10"] 50
, Run Date "%Y-%m-%d %H:%M" "date" 300
, Run CoreTemp ["-t", "<fc=#b58900>TEMP</fc> <core0>C", "-L", "30", "-H", "75"] 50
, Run MPD ["-t", "<state>: <artist> - <track>"] 10
, Run BatteryP [ "BAT0" ]
[ "--template" , "<fc=#b58900>BAT</fc> <acstatus>"
, "--Low" , "10"
, "--High" , "80"
, "--"
, "-o" , "<left>% (<timeleft>)"
, "-O" , "<left>% (Charging)"
, "-i" , "Charged"
] 50
, Run Com "/home/kubat/.local/libexec/get_pa_volume.sh" [] "volume" 2
, Run Com "/home/kubat/.local/libexec/is_vpn_running.sh" [] "vpn" 50
, Run Com "/home/kubat/.local/libexec/lektor_info.csh" [] "lektor" 5
, Run StdinReader
]
, allDesktops = False
, sepChar = "%"
, alignSep = "}{"
, template = " %StdinReader% } %lektor% { %cpu% | %memory% | <fc=#b58900>Vol</fc> %volume% | %vpn%%battery% | <fc=#b58900>%date%</fc> "
}
import System.IO
import System.Exit
import System.Posix.Env
import Data.Map as M
import Data.Char
import Graphics.X11.ExtraTypes.XF86
import XMonad
import XMonad.Operations
import XMonad.ManageHook
import XMonad.Config.Desktop
import qualified XMonad.StackSet as W
import XMonad.Actions.SpawnOn
import XMonad.Actions.CycleWS
import XMonad.Actions.Commands
import XMonad.Actions.DynamicWorkspaces
import XMonad.Actions.Submap
import XMonad.Actions.TagWindows
import qualified XMonad.Actions.DynamicWorkspaceOrder as DO
import XMonad.Actions.DynamicWorkspaceGroups
import XMonad.Hooks.ICCCMFocus
import XMonad.Hooks.DynamicLog hiding (xmobar)
import XMonad.Hooks.ManageDocks
import XMonad.Hooks.ManageHelpers
import XMonad.Hooks.UrgencyHook
import XMonad.Hooks.SetWMName
import XMonad.Hooks.EwmhDesktops (ewmh)
import XMonad.Util.Run
import XMonad.Util.EZConfig (additionalKeys)
import XMonad.Util.NamedWindows
import XMonad.Util.Loggers
import XMonad.Prompt
import XMonad.Prompt.Window
import XMonad.Prompt.Layout
import XMonad.Prompt.ConfirmPrompt
import XMonad.Prompt.Pass
import XMonad.Layout.LayoutModifier
import XMonad.Layout.NoBorders
import XMonad.Layout.BinarySpacePartition
import XMonad.Layout.WindowNavigation as WinNav
import XMonad.Layout.BoringWindows
import XMonad.Layout.SubLayouts
import XMonad.Layout.PerWorkspace
main = do
putEnv "GTK_IM_MODULE=ibus"
putEnv "XMODIFIERS=@im=ibus"
putEnv "QT_IM_MODULES=ibus"
xmproc <- spawnPipe "/usr/bin/xmobar -x 0 /home/kubat/.xmonad/xmobar.hs"
xmonad $ docks $ ewmh $ withUrgencyHook LibNotifyUrgencyHook $ defaultConfig
{ modMask = mod4Mask
, focusFollowsMouse = False
, focusedBorderColor = "#F0F0F0"
, normalBorderColor = "#002b36"
, terminal = myTerm
, workspaces = ["#"]
, manageHook = manageHook defaultConfig <+> myManageHook <+> manageDocks
, startupHook = docksStartupHook <+> setWMName "LG3D" <+> myStartupHook
, handleEventHook = docksEventHook
, layoutHook = myLayoutHook
, borderWidth = 1
, logHook = do
takeTopFocus
dynamicLogWithPP xmobarPP
{ ppOutput = hPutStrLn xmproc
, ppTitle = xmobarColor "#c678dd" "" . shorten 50
, ppLayout = xmobarColor "#b58900" "" . (Prelude.map toLower)
, ppSep = " "
, ppWsSep = ""
, ppCurrent = xmobarColor "#268bd2" "" . wrap "[" "]" . (Prelude.map toUpper)
, ppVisible = xmobarColor "grey" "" . (\ x -> " " ++ x ++ " ") . (Prelude.map toUpper)
, ppHidden = xmobarColor "grey" "" . (\ x -> " " ++ x ++ " ") . (Prelude.map toUpper)
, ppHiddenNoWindows = xmobarColor "#707070" "" . (\ x -> " " ++ x ++ " ") . (Prelude.map toUpper)
, ppUrgent = xmobarColor "white" "#268bd2" . (\ x -> " " ++ x ++ " ") . (Prelude.map toUpper)
, ppVisibleNoWindows = Just (xmobarColor "#707070" "" . (\ x -> " " ++ x ++ " ") . (Prelude.map toUpper))
, ppOrder = \(ws:layout:title:extra) -> [ws, "(" ++ layout ++ ")"] ++ extra ++ [ " " ++ title ]
}
} `additionalKeys` myAdditionalKeys
myStartupHook = do
spawn "/home/kubat/.local/bin/xbanish"
spawn "/home/kubat/.xmonad/init.sh"
spawn "xrdb /home/kubat/.Xresources"
spawn "feh --bg-scale /home/kubat/.xmonad/wallpaper &"
spawn "setxkbmap kubat"
-- (windowNavigation $ subTabbed $ emptyBSP)
myLayoutHook =
(onWorkspace "#" (noBorders $ Full))
((avoidStruts $ smartBorders $ windowNavigation $ emptyBSP) ||| (avoidStruts $ noBorders $ Full))
myManageHook = do
composeAll
[ className =? "Xmessage" --> doFloat
, className =? "Unity" --> doFloat
, className =? "Display" --> doFloat
, title =? "OCaml graphics" --> doFloat
, title =? "desktop" --> doIgnore
, manageDocks
]
myTerm = "/home/kubat/.local/bin/st"
myXPConfig = def { font = "xft:SourceCodePro:size=9" , bgColor = "black" , position = Top }
data LibNotifyUrgencyHook = LibNotifyUrgencyHook deriving (Read, Show)
instance UrgencyHook LibNotifyUrgencyHook where
urgencyHook LibNotifyUrgencyHook w = do
name <- getName w
Just idx <- fmap (W.findTag w) $ gets windowset
safeSpawn "notify-send" [show name, "workspace " ++ idx]
data MyPrompt = MyPrompt String
instance XPrompt MyPrompt where
showXPrompt (MyPrompt name) = "Select " ++ name ++ " "
mySelectDisplay "single" = spawn "/home/kubat/.screenlayout/single.sh"
mySelectDisplay "duplicate" = spawn "/home/kubat/.screenlayout/duplicate.sh"
mySelectDisplay "l1080" = spawn "/home/kubat/.screenlayout/lateral_1080.sh"
mySelectDisplay "l1024" = spawn "/home/kubat/.screenlayout/lateral_1024.sh"
mySelectDisplay "l1280" = spawn "/home/kubat/.screenlayout/lateral_1280.sh"
myAdditionalKeys =
[ ((mod4Mask, xK_Return), spawn myTerm)
-- Apps
, ((mod4Mask, xK_a), submap . M.fromList $
[ ((0, xK_p), spawn "firefox --private-window")
, ((0, xK_w), spawn "firefox")
, ((0, xK_c), spawn "chromium")
, ((0, xK_v), spawn "/home/kubat/bin/V4")
, ((0, xK_t), spawn "/usr/bin/alacritty")
, ((0, xK_Return), spawn myTerm)
])
-- Workspace group
, ((mod4Mask, xK_c), submap . M.fromList $
[ ((0, xK_a), promptWSGroupAdd myXPConfig "Add group: ")
, ((0, xK_g), promptWSGroupView myXPConfig "Goto group: ")
, ((0, xK_d), promptWSGroupForget myXPConfig "Forget group: ")
])
-- Tags
, ((mod4Mask, xK_t), submap . M.fromList $
[ ((0, xK_a), tagPrompt myXPConfig (\s -> withFocused (addTag s)))
, ((0, xK_d), tagDelPrompt myXPConfig)
, ((0, xK_g), tagPrompt myXPConfig (\s -> withTaggedGlobalP s shiftHere))
])
-- Passwords
, ((mod4Mask, xK_p), passPrompt myXPConfig)
-- Utility
, ((mod4Mask, xK_d), shellPromptHere myXPConfig)
, ((mod4Mask, xK_b), sendMessage ToggleStruts)
, ((mod4Mask, xK_F1), spawn "i3lock -e -u -t -i /home/kubat/.xmonad/lock")
, ((mod4Mask, xK_Print), spawn "scrot $(date +%F-%H:%M:%S).png -e 'mv $f /home/kubat/pictures/screenshot/'")
, ((mod4Mask, xK_F2), confirmPrompt myXPConfig "poweroff" $ spawn "systemctl poweroff")
, ((mod4Mask, xK_q), confirmPrompt myXPConfig "quit" $ io (exitWith ExitSuccess))
, ((mod4Mask, xK_F8), mkXPrompt (MyPrompt "display") myXPConfig (mkComplFunFromList' ["single", "duplicate", "l1080", "l1024", "l1280"]) $ mySelectDisplay)
, ((mod4Mask .|. shiftMask, xK_c), kill)
-- Workspaces
, ((mod4Mask .|. shiftMask, xK_Tab), focusDown)
, ((mod4Mask .|. controlMask, xK_space), withFocused $ windows . W.sink)
, ((mod4Mask, xK_comma), moveTo Prev HiddenWS)
, ((mod4Mask, xK_period), moveTo Next HiddenWS)
, ((mod4Mask .|. shiftMask, xK_comma), shiftTo Prev HiddenWS)
, ((mod4Mask .|. shiftMask, xK_period), shiftTo Next HiddenWS)
, ((mod4Mask, xK_slash), focusMaster)
, ((mod4Mask .|. shiftMask, xK_slash), windows W.swapMaster)
, ((mod4Mask, xK_exclam), nextScreen)
, ((mod4Mask .|. shiftMask, xK_exclam), shiftNextScreen)
-- Layout control
, ((mod4Mask, xK_l), layoutPrompt myXPConfig)
-- Sublayout
, ((mod4Mask, xK_z), submap . M.fromList $
[ ((0, xK_Up), sendMessage $ pullGroup U)
, ((0, xK_Down), sendMessage $ pullGroup D)
, ((0, xK_Left), sendMessage $ pullGroup L)
, ((0, xK_Right), sendMessage $ pullGroup R)
, ((0, xK_m), withFocused (sendMessage . MergeAll))
, ((0, xK_u), withFocused (sendMessage . UnMerge))
])
-- Control for the bsp layout
, ((mod4Mask .|. shiftMask, xK_8), sendMessage $ ExpandTowards U)
, ((mod4Mask .|. shiftMask, xK_6), sendMessage $ ExpandTowards R)
, ((mod4Mask .|. shiftMask, xK_2), sendMessage $ ExpandTowards D)
, ((mod4Mask .|. shiftMask, xK_4), sendMessage $ ExpandTowards L)
, ((mod4Mask, xK_6), sendMessage $ WinNav.Go R)
, ((mod4Mask, xK_4), sendMessage $ WinNav.Go L)
, ((mod4Mask, xK_8), sendMessage $ WinNav.Go U)
, ((mod4Mask, xK_2), sendMessage $ WinNav.Go D)
, ((mod4Mask .|. controlMask, xK_6), sendMessage $ WinNav.Swap R)
, ((mod4Mask .|. controlMask, xK_4), sendMessage $ WinNav.Swap L)
, ((mod4Mask .|. controlMask, xK_8), sendMessage $ WinNav.Swap U)
, ((mod4Mask .|. controlMask, xK_2), sendMessage $ WinNav.Swap D)
, ((mod4Mask, xK_r), sendMessage Rotate)
, ((mod4Mask, xK_s), sendMessage XMonad.Layout.BinarySpacePartition.Swap)
-- Dynamic workspaces and workspace control
, ((mod4Mask, xK_m), selectWorkspace myXPConfig)
, ((mod4Mask, xK_w), submap . M.fromList $
[ ((0, xK_BackSpace), removeEmptyWorkspace)
, ((0, xK_n), addWorkspacePrompt myXPConfig)
, ((0, xK_r), renameWorkspace myXPConfig)
])
-- Volume, with pulseaudio
, ((mod4Mask, xK_F11), spawn "pavolume voldown 5")
, ((mod4Mask, xK_F12), spawn "pavolume volup 5")
, ((mod4Mask, xK_F10), spawn "pavolume mutetoggle")
-- MPC
, ((mod4Mask .|. mod1Mask, xK_n), spawn "mpc next")
, ((mod4Mask .|. mod1Mask, xK_p), spawn "mpc prev")
, ((mod4Mask .|. mod1Mask, xK_s), spawn "mpc stop")
, ((mod4Mask .|. mod1Mask, xK_space), spawn "mpc pause")
, ((mod4Mask .|. mod1Mask, xK_F11), spawn "mpc volume -5")
, ((mod4Mask .|. mod1Mask, xK_F12), spawn "mpc volume +5")
-- Light
, ((mod4Mask, xK_F5), spawn "lux -s 10%")
, ((mod4Mask, xK_F6), spawn "lux -a 10%")
, ((mod4Mask, xK_F3), spawn "asus-kbd-backlight down")
, ((mod4Mask, xK_F4), spawn "asus-kbd-backlight up")
]
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter