From 80c8527ce3085bd1481ed723269f1aca9bac1d9a Mon Sep 17 00:00:00 2001 From: Max Hohlfeld Date: Mon, 15 May 2023 09:57:12 +0200 Subject: [PATCH] feat: add dmenu screenshot script --- roles/scripts/files/dmenu_screenshot | 14 ++++++++++++++ roles/scripts/tasks/main.yml | 3 +++ roles/xmonad/files/xmonad_t460p.hs | 7 +++---- 3 files changed, 20 insertions(+), 4 deletions(-) create mode 100644 roles/scripts/files/dmenu_screenshot diff --git a/roles/scripts/files/dmenu_screenshot b/roles/scripts/files/dmenu_screenshot new file mode 100644 index 0000000..d1935d6 --- /dev/null +++ b/roles/scripts/files/dmenu_screenshot @@ -0,0 +1,14 @@ +#! /usr/bin/env sh +# Changed a bit from Luke Smith https://github.com/LukeSmithxyz/voidrice/blob/master/.local/bin/maimpick +# A dmenu for selecting a screenshot option as listed below. Requires maim, xdotool and dmenu. + +DEST="/home/max/bilder/screenshots/screenshot_$(date +%Y-%m-%d_%T).png" + +case "$(printf "a selected area\\ncurrent window\\nfull screen\\na selected area (to clipboard)\\ncurrent window (to clipboard)\\nfull screen (to clipboard)" | dmenu -i -p "Screenshot which area?")" in + "a selected area") maim -u -s $DEST ;; + "current window") maim -u -i "$(xdotool getactivewindow)" $DEST ;; + "full screen") maim -u -B -d '0.8' --quiet $DEST ;; + "a selected area (to clipboard)") maim -s -u | xclip -selection clipboard -t image/png ;; + "current window (to clipboard)") maim -u -i "$(xdotool getactivewindow)" | xclip -selection clipboard -t image/png ;; + "full screen (to clipboard)") maim | xclip -selection clipboard -t image/png ;; +esac diff --git a/roles/scripts/tasks/main.yml b/roles/scripts/tasks/main.yml index ee86142..56dfd4e 100644 --- a/roles/scripts/tasks/main.yml +++ b/roles/scripts/tasks/main.yml @@ -5,6 +5,8 @@ - tectonic - pandoc - ttf-liberation + - maim + - xdotool state: present become: true tags: pc @@ -25,4 +27,5 @@ - { src: compiledoc, dest: ~/.local/bin/compiledoc } - { src: inline_code.tex, dest: ~/.local/bin/inline_code.tex } - { src: open_editor_in_new_shell, dest: ~/.local/bin/open_editor_in_new_shell } + - { src: dmenu_screenshot, dest: ~/.local/bin/dmenu_screenshot } tags: pc diff --git a/roles/xmonad/files/xmonad_t460p.hs b/roles/xmonad/files/xmonad_t460p.hs index fd7ed1a..51272f5 100644 --- a/roles/xmonad/files/xmonad_t460p.hs +++ b/roles/xmonad/files/xmonad_t460p.hs @@ -155,10 +155,9 @@ myAdditionalKeys = , ("M-.", sendMessage ToggleStruts) -- dmenu prompts - , ("M-", spawn "dm-recent-aliases") - , ("M-p s", spawn "dm-screenshot") + , ("M-", spawn "dmenu_run") + , ("M-p s", spawn "dmenu_screenshot") , ("M-p k", spawn "dm-kill") - , ("M-p p", shellPrompt topicPrompt) -- scratchpads , ("M-n", namedScratchpadAction myScratchpads "nnn") @@ -269,7 +268,7 @@ myStartupHook = do main = do xmproc0 <- spawnPipe "xmobar -x 0 /home/max/.config/xmobar/xmobarrc" xmproc1 <- spawnPipe "xmobar -x 1 /home/max/.config/xmobar/xmobarrc" - xmonad $ spawnExternalProcess def $ docks def { + xmonad $ ewmh . spawnExternalProcess def $ docks def { -- simple stuff terminal = myTerminal, borderWidth = myBorderWidth,