aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMateja <mail@matejamaric.com>2020-08-18 14:09:08 +0200
committerMateja <mail@matejamaric.com>2020-08-18 14:09:08 +0200
commit7775115024777a6a891b3fba33b6972187e4b6ef (patch)
tree891fee4b582264633563079c9d26537033511279
downloaddotfiles-7775115024777a6a891b3fba33b6972187e4b6ef.tar.gz
dotfiles-7775115024777a6a891b3fba33b6972187e4b6ef.zip
first commit
-rw-r--r--.config/dunst/dunstrc257
-rw-r--r--.config/termite/config259
-rw-r--r--.config/xmobar/xmobarrc28
-rw-r--r--.gitignore4
-rw-r--r--.xmonad/xmonad.hs230
-rw-r--r--programs14
-rwxr-xr-xstuff/scripts/unmount-usb11
7 files changed, 803 insertions, 0 deletions
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:
+# <b>bold</b>
+# <i>italic</i>
+# <s>strikethrough</s>
+# <u>underline</u>
+#
+# For a complete reference see
+# <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>.
+# 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 = "<b>%s</b>\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% | <fc=#ee9a00>%date%</fc> "
+ }
+
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 "<action=xdotool key super+n>n</action>"
+xmobarEscape = concatMap doubleLts
+ where doubleLts '<' = "<<"
+ doubleLts x = [x]
+
+myWorkspaces = clickable . (map xmobarEscape) $ map show [1..9]
+ where
+ clickable l = [ "<action=xdotool key super+" ++ show (n) ++ ">" ++ ws ++ "</action>" |
+ (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