From 7775115024777a6a891b3fba33b6972187e4b6ef Mon Sep 17 00:00:00 2001 From: Mateja Date: Tue, 18 Aug 2020 14:09:08 +0200 Subject: first commit --- .config/dunst/dunstrc | 257 +++++++++++++++++++++++++++++++++++++++++++++ .config/termite/config | 259 ++++++++++++++++++++++++++++++++++++++++++++++ .config/xmobar/xmobarrc | 28 +++++ .gitignore | 4 + .xmonad/xmonad.hs | 230 ++++++++++++++++++++++++++++++++++++++++ programs | 14 +++ stuff/scripts/unmount-usb | 11 ++ 7 files changed, 803 insertions(+) create mode 100644 .config/dunst/dunstrc create mode 100644 .config/termite/config create mode 100644 .config/xmobar/xmobarrc create mode 100644 .gitignore create mode 100644 .xmonad/xmonad.hs create mode 100644 programs create mode 100755 stuff/scripts/unmount-usb diff --git a/.config/dunst/dunstrc b/.config/dunst/dunstrc new file mode 100644 index 0000000..bf8e14f --- /dev/null +++ b/.config/dunst/dunstrc @@ -0,0 +1,257 @@ +[global] +font = Iosevka Term 11 + +# Allow a small subset of html markup: +# bold +# italic +# strikethrough +# underline +# +# For a complete reference see +# . +# If markup is not allowed, those tags will be stripped out of the +# message. +markup = yes +plain_text = no + +# The format of the message. Possible variables are: +# %a appname +# %s summary +# %b body +# %i iconname (including its path) +# %I iconname (without its path) +# %p progress value if set ([ 0%] to [100%]) or nothing +# Markup is allowed +format = "%s\n%b" + +# Sort messages by urgency. +sort = no + +# Show how many messages are currently hidden (because of geometry). +indicate_hidden = yes + +# Alignment of message text. +# Possible values are "left", "center" and "right". +alignment = center + +# The frequency with wich text that is longer than the notification +# window allows bounces back and forth. +# This option conflicts with "word_wrap". +# Set to 0 to disable. +bounce_freq = 0 + +# Show age of message if message is older than show_age_threshold +# seconds. +# Set to -1 to disable. +show_age_threshold = -1 + +# Split notifications into multiple lines if they don't fit into +# geometry. +word_wrap = yes + +# Ignore newlines '\n' in notifications. +ignore_newline = no + +# Hide duplicate's count and stack them +stack_duplicates = yes +hide_duplicates_count = yes + + +# The geometry of the window: +# [{width}]x{height}[+/-{x}+/-{y}] +# The geometry of the message window. +# The height is measured in number of notifications everything else +# in pixels. If the width is omitted but the height is given +# ("-geometry x2"), the message window expands over the whole screen +# (dmenu-like). If width is 0, the window expands to the longest +# message displayed. A positive x is measured from the left, a +# negative from the right side of the screen. Y is measured from +# the top and down respectevly. +# The width can be negative. In this case the actual width is the +# screen width minus the width defined in within the geometry option. +#geometry = "250x50-40+40" +geometry = "300x50-15+49" + +# Shrink window if it's smaller than the width. Will be ignored if +# width is 0. +shrink = no + +# The transparency of the window. Range: [0; 100]. +# This option will only work if a compositing windowmanager is +# present (e.g. xcompmgr, compiz, etc.). +transparency = 5 + +# Don't remove messages, if the user is idle (no mouse or keyboard input) +# for longer than idle_threshold seconds. +# Set to 0 to disable. +idle_threshold = 0 + +# Which monitor should the notifications be displayed on. +monitor = 0 + +# Display notification on focused monitor. Possible modes are: +# mouse: follow mouse pointer +# keyboard: follow window with keyboard focus +# none: don't follow anything +# +# "keyboard" needs a windowmanager that exports the +# _NET_ACTIVE_WINDOW property. +# This should be the case for almost all modern windowmanagers. +# +# If this option is set to mouse or keyboard, the monitor option +# will be ignored. +follow = none + +# Should a notification popped up from history be sticky or timeout +# as if it would normally do. +sticky_history = yes + +# Maximum amount of notifications kept in history +history_length = 15 + +# Display indicators for URLs (U) and actions (A). +show_indicators = no + +# The height of a single line. If the height is smaller than the +# font height, it will get raised to the font height. +# This adds empty space above and under the text. +line_height = 3 + +# Draw a line of "separatpr_height" pixel height between two +# notifications. +# Set to 0 to disable. +separator_height = 2 + +# Padding between text and separator. +padding = 6 + +# Horizontal padding. +horizontal_padding = 6 + +# Define a color for the separator. +# possible values are: +# * auto: dunst tries to find a color fitting to the background; +# * foreground: use the same color as the foreground; +# * frame: use the same color as the frame; +# * anything else will be interpreted as a X color. +separator_color = frame + +# Print a notification on startup. +# This is mainly for error detection, since dbus (re-)starts dunst +# automatically after a crash. +startup_notification = false + +# dmenu path. +dmenu = /usr/bin/dmenu -p dunst: + +# Browser for opening urls in context menu. +browser = /usr/bin/firefox -new-tab + +# Align icons left/right/off +icon_position = off +max_icon_size = 80 + +# Paths to default icons. +icon_path = /usr/share/icons/Paper/16x16/mimetypes/:/usr/share/icons/Paper/48x48/status/:/usr/share/icons/Paper/16x16/devices/:/usr/share/icons/Paper/48x48/notifications/:/usr/share/icons/Paper/48x48/emblems/ + +frame_width = 3 +frame_color = "#8EC07C" + +[shortcuts] + +# Shortcuts are specified as [modifier+][modifier+]...key +# Available modifiers are "ctrl", "mod1" (the alt-key), "mod2", +# "mod3" and "mod4" (windows-key). +# Xev might be helpful to find names for keys. + +# Close notification. +close = ctrl+space + +# Close all notifications. +close_all = ctrl+shift+space + +# Redisplay last message(s). +# On the US keyboard layout "grave" is normally above TAB and left +# of "1". +history = ctrl+grave + +# Context menu. +context = ctrl+shift+period + +[urgency_low] +# IMPORTANT: colors have to be defined in quotation marks. +# Otherwise the "#" and following would be interpreted as a comment. +frame_color = "#3B7C87" +foreground = "#3B7C87" +background = "#191311" +#background = "#2B313C" +timeout = 4 + +[urgency_normal] +frame_color = "#5B8234" +foreground = "#5B8234" +background = "#191311" +#background = "#2B313C" +timeout = 6 + +[urgency_critical] +frame_color = "#B7472A" +foreground = "#B7472A" +background = "#191311" +#background = "#2B313C" +timeout = 8 + + +# Every section that isn't one of the above is interpreted as a rules to +# override settings for certain messages. +# Messages can be matched by "appname", "summary", "body", "icon", "category", +# "msg_urgency" and you can override the "timeout", "urgency", "foreground", +# "background", "new_icon" and "format". +# Shell-like globbing will get expanded. +# +# SCRIPTING +# You can specify a script that gets run when the rule matches by +# setting the "script" option. +# The script will be called as follows: +# script appname summary body icon urgency +# where urgency can be "LOW", "NORMAL" or "CRITICAL". +# +# NOTE: if you don't want a notification to be displayed, set the format +# to "". +# NOTE: It might be helpful to run dunst -print in a terminal in order +# to find fitting options for rules. + +#[espeak] +# summary = "*" +# script = dunst_espeak.sh + +#[script-test] +# summary = "*script*" +# script = dunst_test.sh + +#[ignore] +# # This notification will not be displayed +# summary = "foobar" +# format = "" + +#[signed_on] +# appname = Pidgin +# summary = "*signed on*" +# urgency = low +# +#[signed_off] +# appname = Pidgin +# summary = *signed off* +# urgency = low +# +#[says] +# appname = Pidgin +# summary = *says* +# urgency = critical +# +#[twitter] +# appname = Pidgin +# summary = *twitter.com* +# urgency = normal +# +# vim: ft=cfg diff --git a/.config/termite/config b/.config/termite/config new file mode 100644 index 0000000..29184f1 --- /dev/null +++ b/.config/termite/config @@ -0,0 +1,259 @@ +[options] +#allow_bold = true +#audible_bell = false +#bold_is_bright = true +#cell_height_scale = 1.0 +#cell_width_scale = 1.0 +#clickable_url = true +#dynamic_title = true +font = Inconsolata 12 +#fullscreen = true +#icon_name = terminal +#mouse_autohide = false +#scroll_on_output = false +#scroll_on_keystroke = true +# Length of the scrollback buffer, 0 disabled the scrollback buffer +# and setting it to a negative value means "infinite scrollback" +scrollback_lines = 10000 +#search_wrap = true +#urgent_on_bell = true +#hyperlinks = false + +# $BROWSER is used by default if set, with xdg-open as a fallback +#browser = xdg-open + +# "system", "on" or "off" +#cursor_blink = system + +# "block", "underline" or "ibeam" +#cursor_shape = block + +# Hide links that are no longer valid in url select overlay mode +#filter_unmatched_urls = true + +# Emit escape sequences for extra modified keys +#modify_other_keys = false + +# set size hints for the window +#size_hints = false + +# "off", "left" or "right" +#scrollbar = off + +[hints] +#font = Monospace 12 +#foreground = #dcdccc +#background = #3f3f3f +#active_foreground = #e68080 +#active_background = #3f3f3f +#padding = 2 +#border = #3f3f3f +#border_width = 0.5 +#roundness = 2.0 + +# vim: ft=dosini cms=#%s + +[colors] +# hard contrast: background = #1d2021 +#background = #282828 +#background = rgba(40, 40, 40, 0.8) +background = rgba(20, 20, 20, 0.7) +# soft contrast: background = #32302f +foreground = #ebdbb2 +foreground_bold = #ebdbb2 + +# dark0 + gray +color0 = #282828 +color8 = #928374 + +# neutral_red + bright_red +color1 = #cc241d +color9 = #fb4934 + +# neutral_green + bright_green +color2 = #98971a +color10 = #b8bb26 + +# neutral_yellow + bright_yellow +color3 = #d79921 +color11 = #fabd2f + +# neutral_blue + bright_blue +color4 = #458588 +color12 = #83a598 + +# neutral_purple + bright_purple +color5 = #b16286 +color13 = #d3869b + +# neutral_aqua + faded_aqua +color6 = #689d6a +color14 = #8ec07c + +# light4 + light1 +color7 = #a89984 +color15 = #ebdbb2 + +# vim: ft=dosini cms=#%s + +#[colors] +#foreground = #d3dae5 +#foreground_bold = #d3dae5 +#cursor = #d3dae5 +##background = #10100e +#background = rgba(16, 16, 14, 0.8) +# +#color0 = #10100e +#color8 = #9398a0 +#color1 = #8a7358 +#color9 = #8a7358 +#color2 = #988a6e +#color10 = #988a6e +#color3 = #7c8488 +#color11 = #7c8488 +#color4 = #9e9f9e +#color12 = #9e9f9e +#color5 = #d0cab7 +#color13 = #d0cab7 +#color6 = #adb7c3 +#color14 = #adb7c3 +#color7 = #d3dae5 +#color15 = #d3dae5 + +#------------------------------------------------------------ +# default +#[colors] +# If both of these are unset, cursor falls back to the foreground color, +# and cursor_foreground falls back to the background color. +#cursor = #dcdccc +#cursor_foreground = #dcdccc + +#foreground = #dcdccc +#foreground_bold = #ffffff +#background = #3f3f3f + +# 20% background transparency (requires a compositor) +#background = rgba(63, 63, 63, 0.8) + +# If unset, will reverse foreground and background +#highlight = #2f2f2f + +# Colors from color0 to color254 can be set +#color0 = #3f3f3f +#color1 = #705050 +#color2 = #60b48a +#color3 = #dfaf8f +#color4 = #506070 +#color5 = #dc8cc3 +#color6 = #8cd0d3 +#color7 = #dcdccc +#color8 = #709080 +#color9 = #dca3a3 +#color10 = #c3bf9f +#color11 = #f0dfaf +#color12 = #94bff3 +#color13 = #ec93d3 +#color14 = #93e0e3 +#color15 = #ffffff +#------------------------------------------------------------ +# grayscale +# [colors] +# +# foreground = #b9b9b9 +# foreground_bold = #b9b9b9 +# cursor = #b9b9b9 +# background = #101010 +# +# color0 = #101010 +# color1 = #7c7c7c +# color2 = #8e8e8e +# color3 = #a0a0a0 +# color4 = #686868 +# color5 = #747474 +# color6 = #868686 +# color7 = #b9b9b9 +# color8 = #525252 +# color9 = #7c7c7c +# color10 = #8e8e8e +# color11 = #a0a0a0 +# color12 = #686868 +# color13 = #747474 +# color14 = #868686 +# color15 = #f7f7f7 +#------------------------------------------------------------ +# solarized +# [colors] +# +# foreground = #93a1a1 +# foreground_bold = #93a1a1 +# cursor = #93a1a1 +# background = #002b36 +# +# color0 = #002b36 +# color1 = #dc322f +# color2 = #859900 +# color3 = #b58900 +# color4 = #268bd2 +# color5 = #6c71c4 +# color6 = #2aa198 +# color7 = #93a1a1 +# color8 = #657b83 +# color9 = #dc322f +# color10 = #859900 +# color11 = #b58900 +# color12 = #268bd2 +# color13 = #6c71c4 +# color14 = #2aa198 +# color15 = #fdf6e3 +#------------------------------------------------------------ +# shapeshifter +#[colors] +# +#foreground = #ababab +#foreground_bold = #ababab +#cursor = #ababab +##background = #000000aa +#background = rgba(0, 0, 0, 0.8) +# +#color0 = #000000 +#color1 = #e92f2f +#color2 = #0ed839 +#color3 = #dddd13 +#color4 = #3b48e3 +#color5 = #f996e2 +#color6 = #23edda +#color7 = #ababab +#color8 = #343434 +#color9 = #e92f2f +#color10 = #0ed839 +#color11 = #dddd13 +#color12 = #3b48e3 +#color13 = #f996e2 +#color14 = #23edda +#color15 = #f9f9f9 +#------------------------------------------------------------ +# isotope +# [colors] +# +# foreground = #d0d0d0 +# foreground_bold = #d0d0d0 +# cursor = #d0d0d0 +# background = #000000 +# +# color0 = #000000 +# color1 = #ff0000 +# color2 = #33ff00 +# color3 = #ff0099 +# color4 = #0066ff +# color5 = #cc00ff +# color6 = #00ffff +# color7 = #d0d0d0 +# color8 = #808080 +# color9 = #ff0000 +# color10 = #33ff00 +# color11 = #ff0099 +# color12 = #0066ff +# color13 = #cc00ff +# color14 = #00ffff +# color15 = #ffffff +#------------------------------------------------------------ diff --git a/.config/xmobar/xmobarrc b/.config/xmobar/xmobarrc new file mode 100644 index 0000000..6aea9d1 --- /dev/null +++ b/.config/xmobar/xmobarrc @@ -0,0 +1,28 @@ +Config { font = "-misc-fixed-*-*-*-*-10-*-*-*-*-*-*-*" + , additionalFonts = [] + , borderColor = "black" + , border = TopB + , bgColor = "black" + , fgColor = "grey" + , alpha = 255 + , position = Bottom + , textOffset = -1 + , iconOffset = -1 + , lowerOnStart = True + , pickBroadest = False + , persistent = False + , hideOnStart = False + , iconRoot = "." + , allDesktops = True + , overrideRedirect = True + , commands = [ + Run Date "%a %d %b %I:%M %p" "date" 10 + , Run Alsa "default" "Master" [] + , Run UnsafeStdinReader + , Run Kbd [] + ] + , sepChar = "%" + , alignSep = "}{" + , template = " %UnsafeStdinReader% }{ %kbd% | %alsa:default:Master% | %date% " + } + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1bf14c5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +*.errors +*.hi +*.o +xmonad-x86_64-linux diff --git a/.xmonad/xmonad.hs b/.xmonad/xmonad.hs new file mode 100644 index 0000000..cf2f262 --- /dev/null +++ b/.xmonad/xmonad.hs @@ -0,0 +1,230 @@ +import XMonad + +import Data.Monoid +import System.Exit +import qualified XMonad.StackSet as W +import qualified Data.Map as M + +import XMonad.Util.SpawnOnce +import XMonad.Hooks.DynamicLog + +import XMonad.Layout.SimpleFloat +-- import XMonad.Layout.TrackFloating + +main = xmonad =<< statusBar myBar myPP toggleStrutsKey myConfig + +myConfig = def + { terminal = "termite" + , modMask = mod4Mask + , borderWidth = 2 + , startupHook = myStartupHook + , keys = myKeys + , layoutHook = myLayout + , workspaces = myWorkspaces + , manageHook = myManageHook + } + +--bar-------------------------------------------------- +myBar = "xmobar" + +-- Custom PP, determines what is being written to the bar. +myPP = xmobarPP { ppCurrent = xmobarColor "#429942" "" . wrap "<" ">" } + +-- Key binding to toggle the gap for the bar. +toggleStrutsKey XConfig {XMonad.modMask = modMask} = (modMask, xK_b) + +-- Make xmobar workspaces clickable +-- following code just makes myWorkspaces keep a list of "n" +xmobarEscape = concatMap doubleLts + where doubleLts '<' = "<<" + doubleLts x = [x] + +myWorkspaces = clickable . (map xmobarEscape) $ map show [1..9] + where + clickable l = [ "" ++ ws ++ "" | + (i,ws) <- zip [1..9] l, + let n = i ] + +--startup-------------------------------------------------- +myStartupHook = do + spawnOnce "xset -b &" + spawnOnce "setxkbmap -layout us,rs -variant ,alternatequotes -option grp:alt_shift_toggle,caps:swapescape &" + spawnOnce "feh --bg-fill stuff/pictures/wallpaper.jpg &" + spawnOnce "dunst &" + spawnOnce "udiskie &" + spawnOnce "picom &" + +--layout-------------------------------------------------- +-- myLayout = tiled ||| Mirror tiled ||| Full +myLayout = tiled ||| Mirror tiled ||| Full ||| simpleFloat + where + -- default tiling algorithm partitions the screen into two panes + tiled = Tall nmaster delta ratio + + -- The default number of windows in the master pane + nmaster = 1 + + -- Default proportion of screen occupied by master pane + ratio = 1/2 + + -- Percent of screen to increment by when resizing panes + delta = 3/100 + +--Window rules--you can use xprop to see WM_NAME or WM_CLASS------------------ +myManageHook = composeAll + [ className =? "MPlayer" --> doFloat + , resource =? "desktop_window" --> doIgnore + , resource =? "kdesktop" --> doIgnore ] + +--keys------------------------------------------------------------------------- +myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $ + + -- launch a terminal + [ ((modm .|. shiftMask, xK_Return), spawn $ XMonad.terminal conf) + + -- my keybindings ----------------------------------------------- + , ((modm, xK_bracketleft), spawn "amixer -q sset Master 5%+") + , ((modm, xK_apostrophe), spawn "amixer -q sset Master 5%-") + , ((modm, xK_semicolon), spawn "amixer -q sset Master toggle") + , ((modm, xK_u ), spawn "~/stuff/scripts/unmount-usb") + , ((modm, xK_s ), spawn "scrot -ze 'mv $f ~/stuff/pictures/screenshots/'") + -- my keybindings stop ----------------------------------------------- + + -- launch dmenu + , ((modm, xK_p ), spawn "dmenu_run") + + -- launch gmrun + , ((modm .|. shiftMask, xK_p ), spawn "gmrun") + + -- close focused window + , ((modm .|. shiftMask, xK_c ), kill) + + -- Rotate through the available layout algorithms + , ((modm, xK_space ), sendMessage NextLayout) + + -- Reset the layouts on the current workspace to default + , ((modm .|. shiftMask, xK_space ), setLayout $ XMonad.layoutHook conf) + + -- Resize viewed windows to the correct size + , ((modm, xK_n ), refresh) + + -- Move focus to the next window + , ((modm, xK_Tab ), windows W.focusDown) + + -- Move focus to the next window + , ((modm, xK_j ), windows W.focusDown) + + -- Move focus to the previous window + , ((modm, xK_k ), windows W.focusUp ) + + -- Move focus to the master window + , ((modm, xK_m ), windows W.focusMaster ) + + -- Swap the focused window and the master window + , ((modm, xK_Return), windows W.swapMaster) + + -- Swap the focused window with the next window + , ((modm .|. shiftMask, xK_j ), windows W.swapDown ) + + -- Swap the focused window with the previous window + , ((modm .|. shiftMask, xK_k ), windows W.swapUp ) + + -- Shrink the master area + , ((modm, xK_h ), sendMessage Shrink) + + -- Expand the master area + , ((modm, xK_l ), sendMessage Expand) + + -- Push window back into tiling + , ((modm, xK_t ), withFocused $ windows . W.sink) + + -- Increment the number of windows in the master area + , ((modm , xK_comma ), sendMessage (IncMasterN 1)) + + -- Deincrement the number of windows in the master area + , ((modm , xK_period), sendMessage (IncMasterN (-1))) + + -- Toggle the status bar gap + -- Use this binding with avoidStruts from Hooks.ManageDocks. + -- See also the statusBar function from Hooks.DynamicLog. + -- + -- , ((modm , xK_b ), sendMessage ToggleStruts) + + -- Quit xmonad + , ((modm .|. shiftMask, xK_q ), io (exitWith ExitSuccess)) + + -- Restart xmonad + , ((modm , xK_q ), spawn "xmonad --recompile; xmonad --restart") + + -- Run xmessage with a summary of the default keybindings (useful for beginners) + , ((modm .|. shiftMask, xK_slash ), spawn ("echo \"" ++ help ++ "\" | xmessage -file -")) + ] + ++ + + -- + -- mod-[1..9], Switch to workspace N + -- mod-shift-[1..9], Move client to workspace N + -- + [((m .|. modm, k), windows $ f i) + | (i, k) <- zip (XMonad.workspaces conf) [xK_1 .. xK_9] + , (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]] + ++ + + -- + -- mod-{w,e,r}, Switch to physical/Xinerama screens 1, 2, or 3 + -- mod-shift-{w,e,r}, Move client to screen 1, 2, or 3 + -- + [((m .|. modm, key), screenWorkspace sc >>= flip whenJust (windows . f)) + | (key, sc) <- zip [xK_w, xK_e, xK_r] [0..] + , (f, m) <- [(W.view, 0), (W.shift, shiftMask)]] + +-- | Finally, a copy of the default bindings in simple textual tabular format. +help :: String +help = unlines ["The default modifier key is 'alt'. Default keybindings:", + "", + "-- launching and killing programs", + "mod-Shift-Enter Launch xterminal", + "mod-p Launch dmenu", + "mod-Shift-p Launch gmrun", + "mod-Shift-c Close/kill the focused window", + "mod-Space Rotate through the available layout algorithms", + "mod-Shift-Space Reset the layouts on the current workSpace to default", + "mod-n Resize/refresh viewed windows to the correct size", + "", + "-- move focus up or down the window stack", + "mod-Tab Move focus to the next window", + "mod-Shift-Tab Move focus to the previous window", + "mod-j Move focus to the next window", + "mod-k Move focus to the previous window", + "mod-m Move focus to the master window", + "", + "-- modifying the window order", + "mod-Return Swap the focused window and the master window", + "mod-Shift-j Swap the focused window with the next window", + "mod-Shift-k Swap the focused window with the previous window", + "", + "-- resizing the master/slave ratio", + "mod-h Shrink the master area", + "mod-l Expand the master area", + "", + "-- floating layer support", + "mod-t Push window back into tiling; unfloat and re-tile it", + "", + "-- increase or decrease number of windows in the master area", + "mod-comma (mod-,) Increment the number of windows in the master area", + "mod-period (mod-.) Deincrement the number of windows in the master area", + "", + "-- quit, or restart", + "mod-Shift-q Quit xmonad", + "mod-q Restart xmonad", + "mod-[1..9] Switch to workSpace N", + "", + "-- Workspaces & screens", + "mod-Shift-[1..9] Move client to workspace N", + "mod-{w,e,r} Switch to physical/Xinerama screens 1, 2, or 3", + "mod-Shift-{w,e,r} Move client to screen 1, 2, or 3", + "", + "-- Mouse bindings: default actions bound to mouse events", + "mod-button1 Set the window to floating mode and move by dragging", + "mod-button2 Raise the window to the top of the stack", + "mod-button3 Set the window to floating mode and resize by dragging"] diff --git a/programs b/programs new file mode 100644 index 0000000..cdc57a9 --- /dev/null +++ b/programs @@ -0,0 +1,14 @@ +xmonad +xmonad-contrib +xmonad-utils +xmobar +xdotool +dunst +udiskie +picom + +feh +dmenu +termite +ttf-inconsolata +xorg-xinit diff --git a/stuff/scripts/unmount-usb b/stuff/scripts/unmount-usb new file mode 100755 index 0000000..f195317 --- /dev/null +++ b/stuff/scripts/unmount-usb @@ -0,0 +1,11 @@ +#!/bin/bash +options=$(lsblk | grep /run/media/$USER | rev | cut -d ' ' -f 1 | rev) +[ -n "$options" ] && opt_num=$(echo "$options" | wc -l) || opt_num=0 +if [ $opt_num == 0 ]; then + notify-send "Nothing mounted!" +elif [ $opt_num == 1 ]; then + udiskie-umount "$options" +else + unmount_device=$(echo "$options" | rofi -dmenu -p "What device you want to unmount?") + udiskie-umount "$unmount_device" +fi -- cgit v1.2.3