mirror of
https://github.com/divnix/digga.git
synced 2024-11-23 20:22:04 +03:00
112 lines
3.6 KiB
Nix
112 lines
3.6 KiB
Nix
{ autostart, screenshots, pkgs, stoggle, volnoti }:
|
|
let inherit (pkgs) alsaUtils;
|
|
in
|
|
''
|
|
-- Function for fullscreen toggle
|
|
fullToggle :: X ()
|
|
fullToggle = do
|
|
spawn "${stoggle}"
|
|
sendMessage $ Toggle NBFULL
|
|
sendMessage $ SetStruts [] [minBound .. maxBound]
|
|
|
|
setVolume :: String -> X ()
|
|
setVolume options = do
|
|
spawn ("${alsaUtils}/bin/amixer -q set Master " ++ options)
|
|
spawn "${volnoti}"
|
|
|
|
myAutostart :: X ()
|
|
myAutostart = do
|
|
spawn "${autostart}"
|
|
spawn "feh --bg-fill --no-fehbg ${pkgs.adapta-backgrounds}/share/backgrounds/adapta/tri-fadeno.jpg"
|
|
setWMName "LG3D"
|
|
sendMessage $ SetStruts [] [minBound .. maxBound]
|
|
setDefaultCursor xC_left_ptr
|
|
|
|
-- Set custom keybinds below following the structure:
|
|
-- ( ( ModifierKey, KeyPress ), Action )
|
|
myKeys :: [ ( ( KeyMask, KeySym ), X () ) ]
|
|
myKeys =
|
|
-- toggle fullscreen, along with power state
|
|
[ ( ( myModKey , xK_f )
|
|
, fullToggle
|
|
)
|
|
-- resize windows in master pane
|
|
, ( ( myModKey , xK_Left )
|
|
, sendMessage MirrorExpand
|
|
)
|
|
, ( ( myModKey , xK_Right )
|
|
, sendMessage MirrorShrink
|
|
)
|
|
, ( ( myModKey , xK_Up )
|
|
, sendMessage MirrorExpand
|
|
)
|
|
, ( ( myModKey , xK_Down )
|
|
, sendMessage MirrorShrink
|
|
)
|
|
-- toggle systray
|
|
, ( ( myModKey .|. shiftMask , xK_f )
|
|
, sendMessage ToggleStruts
|
|
)
|
|
-- lower volume
|
|
, ( ( 0 , xF86XK_AudioLowerVolume )
|
|
, setVolume "2%- unmute"
|
|
)
|
|
-- raise volume
|
|
, ( ( 0 , xF86XK_AudioRaiseVolume )
|
|
, setVolume "2%+ unmute"
|
|
)
|
|
-- mute volume
|
|
, ( ( 0 , xF86XK_AudioMute )
|
|
, setVolume "toggle"
|
|
)
|
|
-- start qutebrowser
|
|
, ( ( myModKey , xK_b )
|
|
, spawn "qute"
|
|
)
|
|
-- screen lock
|
|
, ( ( myModKey .|. shiftMask , xK_l )
|
|
|
|
, spawn "loginctl lock-session"
|
|
)
|
|
-- screenshot
|
|
, ( ( myModKey , xK_Print )
|
|
, spawn "maim -u \
|
|
\ | png2ff | xz -9 - \
|
|
\ > ~/${screenshots}/$(date +%m.%d.%y_%I.%M.%S_%p).ff.xz"
|
|
)
|
|
-- screenshot focused window
|
|
, ( ( myModKey .|. shiftMask , xK_Print )
|
|
|
|
, spawn "maim -u -i$(xdotool getactivewindow) \
|
|
\ | png2ff \
|
|
\ | xz -9 - \
|
|
\ > ~/${screenshots}/$(date +%m.%d.%y_%I.%M.%S_%p).ff.xz"
|
|
)
|
|
-- screenshot selection to clipboard
|
|
, ( ( myModKey .|. controlMask , xK_Print )
|
|
|
|
, spawn "maim -s -u \
|
|
\ | xclip -selection clipboard -t image/png"
|
|
)
|
|
-- screenshot selection file
|
|
, ( ( myModKey .|. controlMask .|. shiftMask, xK_Print )
|
|
|
|
, spawn "maim -s -u \
|
|
\ | png2ff \
|
|
\ | xz -9 - \
|
|
\ > ~/${screenshots}/$(date +%m.%d.%y_%I.%M.%S_%p).ff.xz"
|
|
)
|
|
-- screenshot selection to imgur and paste url in clipboard
|
|
, ( ( myModKey .|. shiftMask , xK_i )
|
|
|
|
, spawn "maim -s -u /tmp/img.png; \
|
|
\ imgurbash2 /tmp/img.png; \
|
|
\ rm /tmp/img.png"
|
|
)
|
|
-- dmenu frontend for network manager
|
|
, ( ( myModKey , xK_n )
|
|
, spawn "networkmanager_dmenu -fn 'monospace'"
|
|
)
|
|
]
|
|
''
|