Compare commits
6 commits
e9659a2829
...
3514e0afb5
Author | SHA1 | Date | |
---|---|---|---|
3514e0afb5 | |||
9781b26b22 | |||
2e0c992a54 | |||
4c33a6da56 | |||
5a1c779a0d | |||
04c02fde72 |
81 changed files with 48 additions and 1072 deletions
|
@ -1,10 +1,18 @@
|
||||||
# wayland
|
# Wayland desktop environment
|
||||||
|
|
||||||
Contains:
|
Contains:
|
||||||
[riverwm](https://github.com/riverwm/river)
|
[riverwm](https://github.com/riverwm/river)
|
||||||
[waybar](https://github.com/Alexays/Waybar)
|
[waybar](https://github.com/Alexays/Waybar)
|
||||||
|
mako -- notification daemon
|
||||||
|
font settings
|
||||||
|
kanshi -- display output setup
|
||||||
|
|
||||||
My first foray into wayland is based on river,
|
The thoughts below are overhauled and fairly old - they are still based on my first days and weeks on wayland.
|
||||||
|
Takeaway is this: I love the river wm, waybar is unexciting but does what it's supposed to and the wayland environment is totally worth it.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
My first foray into wayland is based on river,
|
||||||
a tiling window manager somewhat based on bspwm.
|
a tiling window manager somewhat based on bspwm.
|
||||||
|
|
||||||
This is only a very work-in-progress README file.
|
This is only a very work-in-progress README file.
|
|
@ -1,417 +0,0 @@
|
||||||
[global]
|
|
||||||
### Display ###
|
|
||||||
|
|
||||||
# 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 window manager that exports the
|
|
||||||
# _NET_ACTIVE_WINDOW property.
|
|
||||||
# This should be the case for almost all modern window managers.
|
|
||||||
#
|
|
||||||
# If this option is set to mouse or keyboard, the monitor option
|
|
||||||
# will be ignored.
|
|
||||||
follow = mouse
|
|
||||||
|
|
||||||
# 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 respectively.
|
|
||||||
# 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 = "300x5-30+20"
|
|
||||||
|
|
||||||
# Show how many messages are currently hidden (because of geometry).
|
|
||||||
indicate_hidden = yes
|
|
||||||
|
|
||||||
# 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 window manager is
|
|
||||||
# present (e.g. xcompmgr, compiz, etc.).
|
|
||||||
transparency = 20
|
|
||||||
|
|
||||||
# The height of the entire notification. If the height is smaller
|
|
||||||
# than the font height and padding combined, it will be raised
|
|
||||||
# to the font height and padding.
|
|
||||||
notification_height = 0
|
|
||||||
|
|
||||||
# Draw a line of "separator_height" pixel height between two
|
|
||||||
# notifications.
|
|
||||||
# Set to 0 to disable.
|
|
||||||
separator_height = 2
|
|
||||||
|
|
||||||
# Padding between text and separator.
|
|
||||||
padding = 8
|
|
||||||
|
|
||||||
# Horizontal padding.
|
|
||||||
horizontal_padding = 8
|
|
||||||
|
|
||||||
# Defines width in pixels of frame around the notification window.
|
|
||||||
# Set to 0 to disable.
|
|
||||||
frame_width = 3
|
|
||||||
|
|
||||||
# Defines color of the frame around the notification window.
|
|
||||||
frame_color = "#aaaaaa"
|
|
||||||
|
|
||||||
# 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 = auto
|
|
||||||
|
|
||||||
# Sort messages by urgency.
|
|
||||||
sort = yes
|
|
||||||
|
|
||||||
# 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.
|
|
||||||
# A client can set the 'transient' hint to bypass this. See the rules
|
|
||||||
# section for how to disable this if necessary
|
|
||||||
idle_threshold = 120
|
|
||||||
|
|
||||||
### Text ###
|
|
||||||
|
|
||||||
font = Monospace 10
|
|
||||||
|
|
||||||
# The spacing between lines. If the height is smaller than the
|
|
||||||
# font height, it will get raised to the font height.
|
|
||||||
line_height = 0
|
|
||||||
|
|
||||||
# Possible values are:
|
|
||||||
# full: Allow a small subset of html markup in notifications:
|
|
||||||
# <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>.
|
|
||||||
#
|
|
||||||
# strip: This setting is provided for compatibility with some broken
|
|
||||||
# clients that send markup even though it's not enabled on the
|
|
||||||
# server. Dunst will try to strip the markup but the parsing is
|
|
||||||
# simplistic so using this option outside of matching rules for
|
|
||||||
# specific applications *IS GREATLY DISCOURAGED*.
|
|
||||||
#
|
|
||||||
# no: Disable markup parsing, incoming notifications will be treated as
|
|
||||||
# plain text. Dunst will not advertise that it has the body-markup
|
|
||||||
# capability if this is set as a global setting.
|
|
||||||
#
|
|
||||||
# It's important to note that markup inside the format option will be parsed
|
|
||||||
# regardless of what this is set to.
|
|
||||||
markup = full
|
|
||||||
|
|
||||||
# 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
|
|
||||||
# %n progress value if set without any extra characters
|
|
||||||
# %% Literal %
|
|
||||||
# Markup is allowed
|
|
||||||
format = "<b>%s</b>\n%b"
|
|
||||||
|
|
||||||
# Alignment of message text.
|
|
||||||
# Possible values are "left", "center" and "right".
|
|
||||||
alignment = left
|
|
||||||
|
|
||||||
# Show age of message if message is older than show_age_threshold
|
|
||||||
# seconds.
|
|
||||||
# Set to -1 to disable.
|
|
||||||
show_age_threshold = 60
|
|
||||||
|
|
||||||
# Split notifications into multiple lines if they don't fit into
|
|
||||||
# geometry.
|
|
||||||
word_wrap = yes
|
|
||||||
|
|
||||||
# When word_wrap is set to no, specify where to make an ellipsis in long lines.
|
|
||||||
# Possible values are "start", "middle" and "end".
|
|
||||||
ellipsize = middle
|
|
||||||
|
|
||||||
# Ignore newlines '\n' in notifications.
|
|
||||||
ignore_newline = no
|
|
||||||
|
|
||||||
# Stack together notifications with the same content
|
|
||||||
stack_duplicates = true
|
|
||||||
|
|
||||||
# Hide the count of stacked notifications with the same content
|
|
||||||
hide_duplicate_count = false
|
|
||||||
|
|
||||||
# Display indicators for URLs (U) and actions (A).
|
|
||||||
show_indicators = yes
|
|
||||||
|
|
||||||
### Icons ###
|
|
||||||
|
|
||||||
# Align icons left/right/off
|
|
||||||
icon_position = left
|
|
||||||
|
|
||||||
# Scale larger icons down to this size, set to 0 to disable
|
|
||||||
max_icon_size = 128
|
|
||||||
|
|
||||||
# Paths to default icons.
|
|
||||||
icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
|
|
||||||
|
|
||||||
### History ###
|
|
||||||
|
|
||||||
# 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 = 20
|
|
||||||
|
|
||||||
### Misc/Advanced ###
|
|
||||||
|
|
||||||
# dmenu path.
|
|
||||||
dmenu = /usr/bin/dmenu -p dunst:
|
|
||||||
|
|
||||||
# Browser for opening urls in context menu.
|
|
||||||
browser = xdg-open
|
|
||||||
|
|
||||||
# Always run rule-defined scripts, even if the notification is suppressed
|
|
||||||
always_run_script = true
|
|
||||||
|
|
||||||
# Define the title of the windows spawned by dunst
|
|
||||||
title = Dunst
|
|
||||||
|
|
||||||
# Define the class of the windows spawned by dunst
|
|
||||||
class = Dunst
|
|
||||||
|
|
||||||
# Print a notification on startup.
|
|
||||||
# This is mainly for error detection, since dbus (re-)starts dunst
|
|
||||||
# automatically after a crash.
|
|
||||||
startup_notification = false
|
|
||||||
|
|
||||||
# Manage dunst's desire for talking
|
|
||||||
# Can be one of the following values:
|
|
||||||
# crit: Critical features. Dunst aborts
|
|
||||||
# warn: Only non-fatal warnings
|
|
||||||
# mesg: Important Messages
|
|
||||||
# info: all unimportant stuff
|
|
||||||
# debug: all less than unimportant stuff
|
|
||||||
verbosity = mesg
|
|
||||||
|
|
||||||
# Define the corner radius of the notification window
|
|
||||||
# in pixel size. If the radius is 0, you have no rounded
|
|
||||||
# corners.
|
|
||||||
# The radius will be automatically lowered if it exceeds half of the
|
|
||||||
# notification height to avoid clipping text and/or icons.
|
|
||||||
corner_radius = 1
|
|
||||||
|
|
||||||
### Legacy
|
|
||||||
|
|
||||||
# Use the Xinerama extension instead of RandR for multi-monitor support.
|
|
||||||
# This setting is provided for compatibility with older nVidia drivers that
|
|
||||||
# do not support RandR and using it on systems that support RandR is highly
|
|
||||||
# discouraged.
|
|
||||||
#
|
|
||||||
# By enabling this setting dunst will not be able to detect when a monitor
|
|
||||||
# is connected or disconnected which might break follow mode if the screen
|
|
||||||
# layout changes.
|
|
||||||
force_xinerama = false
|
|
||||||
|
|
||||||
### mouse
|
|
||||||
|
|
||||||
# Defines action of mouse event
|
|
||||||
# Possible values are:
|
|
||||||
# * none: Don't do anything.
|
|
||||||
# * do_action: If the notification has exactly one action, or one is marked as default,
|
|
||||||
# invoke it. If there are multiple and no default, open the context menu.
|
|
||||||
# * close_current: Close current notification.
|
|
||||||
# * close_all: Close all notifications.
|
|
||||||
mouse_left_click = close_current
|
|
||||||
mouse_middle_click = close_all
|
|
||||||
mouse_right_click = do_action
|
|
||||||
|
|
||||||
# Experimental features that may or may not work correctly. Do not expect them
|
|
||||||
# to have a consistent behaviour across releases.
|
|
||||||
[experimental]
|
|
||||||
# Calculate the dpi to use on a per-monitor basis.
|
|
||||||
# If this setting is enabled the Xft.dpi value will be ignored and instead
|
|
||||||
# dunst will attempt to calculate an appropriate dpi value for each monitor
|
|
||||||
# using the resolution and physical size. This might be useful in setups
|
|
||||||
# where there are multiple screens with very different dpi values.
|
|
||||||
per_monitor_dpi = false
|
|
||||||
|
|
||||||
[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". Make sure this key actually exists on your keyboard layout,
|
|
||||||
# e.g. check output of 'xmodmap -pke'
|
|
||||||
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.
|
|
||||||
background = "#222222"
|
|
||||||
foreground = "#888888"
|
|
||||||
timeout = 10
|
|
||||||
# Icon for notifications with low urgency, uncomment to enable
|
|
||||||
#icon = /path/to/icon
|
|
||||||
|
|
||||||
[urgency_normal]
|
|
||||||
background = "#285577"
|
|
||||||
foreground = "#ffffff"
|
|
||||||
timeout = 10
|
|
||||||
# Icon for notifications with normal urgency, uncomment to enable
|
|
||||||
#icon = /path/to/icon
|
|
||||||
|
|
||||||
[urgency_critical]
|
|
||||||
background = "#900000"
|
|
||||||
foreground = "#ffffff"
|
|
||||||
frame_color = "#ff0000"
|
|
||||||
timeout = 0
|
|
||||||
# Icon for notifications with critical urgency, uncomment to enable
|
|
||||||
#icon = /path/to/icon
|
|
||||||
|
|
||||||
# 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 (discouraged, see desktop_entry)
|
|
||||||
# body
|
|
||||||
# category
|
|
||||||
# desktop_entry
|
|
||||||
# icon
|
|
||||||
# match_transient
|
|
||||||
# msg_urgency
|
|
||||||
# stack_tag
|
|
||||||
# summary
|
|
||||||
#
|
|
||||||
# and you can override the
|
|
||||||
# background
|
|
||||||
# foreground
|
|
||||||
# format
|
|
||||||
# frame_color
|
|
||||||
# fullscreen
|
|
||||||
# new_icon
|
|
||||||
# set_stack_tag
|
|
||||||
# set_transient
|
|
||||||
# timeout
|
|
||||||
# urgency
|
|
||||||
#
|
|
||||||
# Shell-like globbing will get expanded.
|
|
||||||
#
|
|
||||||
# Instead of the appname filter, it's recommended to use the desktop_entry filter.
|
|
||||||
# GLib based applications export their desktop-entry name. In comparison to the appname,
|
|
||||||
# the desktop-entry won't get localized.
|
|
||||||
#
|
|
||||||
# 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.
|
|
||||||
|
|
||||||
# Disable the transient hint so that idle_threshold cannot be bypassed from the
|
|
||||||
# client
|
|
||||||
#[transient_disable]
|
|
||||||
# match_transient = yes
|
|
||||||
# set_transient = no
|
|
||||||
#
|
|
||||||
# Make the handling of transient notifications more strict by making them not
|
|
||||||
# be placed in history.
|
|
||||||
#[transient_history_ignore]
|
|
||||||
# match_transient = yes
|
|
||||||
# history_ignore = yes
|
|
||||||
|
|
||||||
# fullscreen values
|
|
||||||
# show: show the notifications, regardless if there is a fullscreen window opened
|
|
||||||
# delay: displays the new notification, if there is no fullscreen window active
|
|
||||||
# If the notification is already drawn, it won't get undrawn.
|
|
||||||
# pushback: same as delay, but when switching into fullscreen, the notification will get
|
|
||||||
# withdrawn from screen again and will get delayed like a new notification
|
|
||||||
#[fullscreen_delay_everything]
|
|
||||||
# fullscreen = delay
|
|
||||||
[fullscreen_show_critical]
|
|
||||||
msg_urgency = critical
|
|
||||||
fullscreen = show
|
|
||||||
[stack-volumes]
|
|
||||||
appname = "pavolume"
|
|
||||||
set_stack_tag = "volume"
|
|
||||||
|
|
||||||
#[espeak]
|
|
||||||
# summary = "*"
|
|
||||||
# script = dunst_espeak.sh
|
|
||||||
|
|
||||||
#[script-test]
|
|
||||||
# summary = "*script*"
|
|
||||||
# script = dunst_test.sh
|
|
||||||
|
|
||||||
#[ignore]
|
|
||||||
# # This notification will not be displayed
|
|
||||||
# summary = "foobar"
|
|
||||||
# format = ""
|
|
||||||
|
|
||||||
#[history-ignore]
|
|
||||||
# # This notification will not be saved in history
|
|
||||||
# summary = "foobar"
|
|
||||||
# history_ignore = yes
|
|
||||||
|
|
||||||
#[skip-display]
|
|
||||||
# # This notification will not be displayed, but will be included in the history
|
|
||||||
# summary = "foobar"
|
|
||||||
# skip_display = yes
|
|
||||||
|
|
||||||
#[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
|
|
||||||
#
|
|
||||||
#[stack-volumes]
|
|
||||||
# appname = "some_volume_notifiers"
|
|
||||||
# set_stack_tag = "volume"
|
|
||||||
#
|
|
||||||
# vim: ft=cfg
|
|
|
@ -1,8 +0,0 @@
|
||||||
enable_audio_bell no
|
|
||||||
include current-theme.conf
|
|
||||||
|
|
||||||
font_family Liga Iosevka
|
|
||||||
bold_font Iosevka Term Bold Nerd Font Complete
|
|
||||||
italic_font Iosevka Term Italic Nerd Font Complete
|
|
||||||
bold_italic_font Iosevka Term Heavy Italic Nerd Font Complete
|
|
||||||
|
|
|
@ -1,6 +1,12 @@
|
||||||
# mpv module
|
# Multimedia module
|
||||||
|
|
||||||
[mpv](https://mpv.io) -- free, open-source, cross-platform media player
|
[mpv](https://mpv.io) -- free, open-source, cross-platform media player
|
||||||
|
beets -- organize your music library
|
||||||
|
mopidy -- serve your music library
|
||||||
|
ncmpcpp -- actually play your music (and twist your tongue pronouncing it)
|
||||||
|
|
||||||
|
The largest modifications so far are definitely to mpv (described below),
|
||||||
|
with beets and mopidy being somewhat configured to my tastes as well.
|
||||||
|
|
||||||
mpv is set up to hopefully strike a balance between high quality playback, streaming with a reasonable speed and saving battery power.
|
mpv is set up to hopefully strike a balance between high quality playback, streaming with a reasonable speed and saving battery power.
|
||||||
It is set up to play both local files and streams from the web (especially youtube with playlisting and ad skipping), via a qutebrowser mapping if the corresponding module is installed.
|
It is set up to play both local files and streams from the web (especially youtube with playlisting and ad skipping), via a qutebrowser mapping if the corresponding module is installed.
|
|
@ -1,160 +0,0 @@
|
||||||
configuration {
|
|
||||||
show-icons: true;
|
|
||||||
icon-theme: "Paper";
|
|
||||||
theme: "themes/settings.rasi";
|
|
||||||
cycle: true;
|
|
||||||
hide-scrollbar: true;
|
|
||||||
disable-history: false;
|
|
||||||
modi: "drun";
|
|
||||||
display-drun: "apps";
|
|
||||||
columns: 2;
|
|
||||||
pid: "/run/user/1000/rofi.pid";
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ALL OPTIONS */
|
|
||||||
/* configuration { */
|
|
||||||
/* modi: "window,run,ssh,drun,combi,keys,calc"; */
|
|
||||||
/* width: 50;*/
|
|
||||||
/* lines: 15;*/
|
|
||||||
/* columns: 1;*/
|
|
||||||
/* font: "mono 12";*/
|
|
||||||
/* bw: 1;*/
|
|
||||||
/* location: 0;*/
|
|
||||||
/* padding: 5;*/
|
|
||||||
/* yoffset: 0;*/
|
|
||||||
/* xoffset: 0;*/
|
|
||||||
/* fixed-num-lines: true;*/
|
|
||||||
/* show-icons: false;*/
|
|
||||||
/* terminal: "rofi-sensible-terminal";*/
|
|
||||||
/* ssh-client: "ssh";*/
|
|
||||||
/* ssh-command: "{terminal} -e {ssh-client} {host} [-p {port}]";*/
|
|
||||||
/* run-command: "{cmd}";*/
|
|
||||||
/* run-list-command: "";*/
|
|
||||||
/* run-shell-command: "{terminal} -e {cmd}";*/
|
|
||||||
/* window-command: "wmctrl -i -R {window}";*/
|
|
||||||
/* window-match-fields: "all";*/
|
|
||||||
/* icon-theme: ;*/
|
|
||||||
/* drun-match-fields: "name,generic,exec,categories";*/
|
|
||||||
/* drun-show-actions: false;*/
|
|
||||||
/* drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";*/
|
|
||||||
/* disable-history: false;*/
|
|
||||||
/* ignored-prefixes: "";*/
|
|
||||||
/* sort: false;*/
|
|
||||||
/* sorting-method: ;*/
|
|
||||||
/* case-sensitive: false;*/
|
|
||||||
/* cycle: true;*/
|
|
||||||
/* sidebar-mode: false;*/
|
|
||||||
/* eh: 1;*/
|
|
||||||
/* auto-select: false;*/
|
|
||||||
/* parse-hosts: false;*/
|
|
||||||
/* parse-known-hosts: true;*/
|
|
||||||
/* combi-modi: "window,run";*/
|
|
||||||
/* matching: "normal";*/
|
|
||||||
/* tokenize: true;*/
|
|
||||||
/* m: "-5";*/
|
|
||||||
/* line-margin: 2;*/
|
|
||||||
/* line-padding: 1;*/
|
|
||||||
/* filter: ;*/
|
|
||||||
/* separator-style: "dash";*/
|
|
||||||
/* hide-scrollbar: false;*/
|
|
||||||
/* fullscreen: false; */
|
|
||||||
/* fake-transparency: false;*/
|
|
||||||
/* dpi: -1;*/
|
|
||||||
/* threads: 0;*/
|
|
||||||
/* scrollbar-width: 8;*/
|
|
||||||
/* scroll-method: 0;*/
|
|
||||||
/* fake-background: "screenshot";*/
|
|
||||||
/* window-format: "{w} {c} {t}";*/
|
|
||||||
/* click-to-exit: true;*/
|
|
||||||
/* show-match: true;*/
|
|
||||||
/* theme: "dmenu"; */
|
|
||||||
/* color-normal: ;*/
|
|
||||||
/* color-urgent: ;*/
|
|
||||||
/* color-active: ;*/
|
|
||||||
/* color-window: ;*/
|
|
||||||
/* max-history-size: 25;*/
|
|
||||||
/* combi-hide-mode-prefix: false;*/
|
|
||||||
/* matching-negate-char: '-' /* unsupported */;*/
|
|
||||||
/* cache-dir: ;*/
|
|
||||||
/* pid: "/run/user/1000/rofi.pid"; */
|
|
||||||
/* display-window: ;*/
|
|
||||||
/* display-windowcd: ;*/
|
|
||||||
/* display-run: ;*/
|
|
||||||
/* display-ssh: ;*/
|
|
||||||
/* display-drun: ;*/
|
|
||||||
/* display-combi: ;*/
|
|
||||||
/* display-keys: ;*/
|
|
||||||
/* display-calc: ;*/
|
|
||||||
/* kb-primary-paste: "Control+V,Shift+Insert";*/
|
|
||||||
/* kb-secondary-paste: "Control+v,Insert";*/
|
|
||||||
/* kb-clear-line: "Control+w";*/
|
|
||||||
/* kb-move-front: "Control+a";*/
|
|
||||||
/* kb-move-end: "Control+e";*/
|
|
||||||
/* kb-move-word-back: "Alt+b,Control+Left";*/
|
|
||||||
/* kb-move-word-forward: "Alt+f,Control+Right";*/
|
|
||||||
/* kb-move-char-back: "Left,Control+b";*/
|
|
||||||
/* kb-move-char-forward: "Right,Control+f";*/
|
|
||||||
/* kb-remove-word-back: "Control+Alt+h,Control+BackSpace";*/
|
|
||||||
/* kb-remove-word-forward: "Control+Alt+d";*/
|
|
||||||
/* kb-remove-char-forward: "Delete,Control+d";*/
|
|
||||||
/* kb-remove-char-back: "BackSpace,Shift+BackSpace,Control+h";*/
|
|
||||||
/* kb-remove-to-eol: "Control+k";*/
|
|
||||||
/* kb-remove-to-sol: "Control+u";*/
|
|
||||||
/* kb-accept-entry: "Control+j,Control+m,Return,KP_Enter";*/
|
|
||||||
/* kb-accept-custom: "Control+Return";*/
|
|
||||||
/* kb-accept-alt: "Shift+Return";*/
|
|
||||||
/* kb-delete-entry: "Shift+Delete";*/
|
|
||||||
/* kb-mode-next: "Shift+Right,Control+Tab";*/
|
|
||||||
/* kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab";*/
|
|
||||||
/* kb-row-left: "Control+Page_Up";*/
|
|
||||||
/* kb-row-right: "Control+Page_Down";*/
|
|
||||||
/* kb-row-up: "Up,Control+p,ISO_Left_Tab";*/
|
|
||||||
/* kb-row-down: "Down,Control+n";*/
|
|
||||||
/* kb-row-tab: "Tab";*/
|
|
||||||
/* kb-page-prev: "Page_Up";*/
|
|
||||||
/* kb-page-next: "Page_Down";*/
|
|
||||||
/* kb-row-first: "Home,KP_Home";*/
|
|
||||||
/* kb-row-last: "End,KP_End";*/
|
|
||||||
/* kb-row-select: "Control+space";*/
|
|
||||||
/* kb-screenshot: "Alt+S";*/
|
|
||||||
/* kb-ellipsize: "Alt+period";*/
|
|
||||||
/* kb-toggle-case-sensitivity: "grave,dead_grave";*/
|
|
||||||
/* kb-toggle-sort: "Alt+grave";*/
|
|
||||||
/* kb-cancel: "Escape,Control+g,Control+bracketleft";*/
|
|
||||||
/* kb-custom-1: "Alt+1";*/
|
|
||||||
/* kb-custom-2: "Alt+2";*/
|
|
||||||
/* kb-custom-3: "Alt+3";*/
|
|
||||||
/* kb-custom-4: "Alt+4";*/
|
|
||||||
/* kb-custom-5: "Alt+5";*/
|
|
||||||
/* kb-custom-6: "Alt+6";*/
|
|
||||||
/* kb-custom-7: "Alt+7";*/
|
|
||||||
/* kb-custom-8: "Alt+8";*/
|
|
||||||
/* kb-custom-9: "Alt+9";*/
|
|
||||||
/* kb-custom-10: "Alt+0";*/
|
|
||||||
/* kb-custom-11: "Alt+exclam";*/
|
|
||||||
/* kb-custom-12: "Alt+at";*/
|
|
||||||
/* kb-custom-13: "Alt+numbersign";*/
|
|
||||||
/* kb-custom-14: "Alt+dollar";*/
|
|
||||||
/* kb-custom-15: "Alt+percent";*/
|
|
||||||
/* kb-custom-16: "Alt+dead_circumflex";*/
|
|
||||||
/* kb-custom-17: "Alt+ampersand";*/
|
|
||||||
/* kb-custom-18: "Alt+asterisk";*/
|
|
||||||
/* kb-custom-19: "Alt+parenleft";*/
|
|
||||||
/* kb-select-1: "Super+1";*/
|
|
||||||
/* kb-select-2: "Super+2";*/
|
|
||||||
/* kb-select-3: "Super+3";*/
|
|
||||||
/* kb-select-4: "Super+4";*/
|
|
||||||
/* kb-select-5: "Super+5";*/
|
|
||||||
/* kb-select-6: "Super+6";*/
|
|
||||||
/* kb-select-7: "Super+7";*/
|
|
||||||
/* kb-select-8: "Super+8";*/
|
|
||||||
/* kb-select-9: "Super+9";*/
|
|
||||||
/* kb-select-10: "Super+0";*/
|
|
||||||
/* ml-row-left: "ScrollLeft";*/
|
|
||||||
/* ml-row-right: "ScrollRight";*/
|
|
||||||
/* ml-row-up: "ScrollUp";*/
|
|
||||||
/* ml-row-down: "ScrollDown";*/
|
|
||||||
/* me-select-entry: "MousePrimary";*/
|
|
||||||
/* me-accept-entry: "MouseDPrimary";*/
|
|
||||||
/* me-accept-custom: "Control+MouseDPrimary";*/
|
|
||||||
/* } */
|
|
|
@ -1,47 +0,0 @@
|
||||||
#!/usr/bin/env sh
|
|
||||||
# Original wrapper script from: https://github.com/wstam88/rofi-fontawesome
|
|
||||||
# more fa icon lists can be obtained there as well
|
|
||||||
|
|
||||||
# a file to read from, will be preferred over url
|
|
||||||
# ROFI_FONTAWESOME_LIST_FILE="some-fa5-icon-list.txt"
|
|
||||||
# a url to pull list from
|
|
||||||
# ROFI_FONTAWESOME_LIST_URL="https://point-me-to/a/fa-icon-list.txt"
|
|
||||||
# icon|name|unicode, icon is default
|
|
||||||
# ROFI_FONTAWESOME_OUTPUT="icon"
|
|
||||||
|
|
||||||
if [ -n "$*" ]; then
|
|
||||||
output="${ROFI_FONTAWESOME_OUTPUT}"
|
|
||||||
case "$output" in
|
|
||||||
unicode)
|
|
||||||
printf "%s" "$*" |
|
|
||||||
grep -o -e '...;' |
|
|
||||||
sed 's/^&#x//' |
|
|
||||||
sed 's/;$//' |
|
|
||||||
xclip -selection clipboard >/dev/null 2>/dev/null &
|
|
||||||
;;
|
|
||||||
name)
|
|
||||||
printf "%s" "$*" |
|
|
||||||
cut -d\' -f2 |
|
|
||||||
xclip -selection clipboard >/dev/null 2>/dev/null &
|
|
||||||
;;
|
|
||||||
icon | *)
|
|
||||||
printf "%s" "$*" |
|
|
||||||
grep -o -e '...;' |
|
|
||||||
sed 's/^&#x/\\u/' |
|
|
||||||
sed 's/;$//' |
|
|
||||||
xclip -selection clipboard >/dev/null 2>/dev/null &
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
exit 0
|
|
||||||
|
|
||||||
elif [ -z "$*" ]; then
|
|
||||||
printf "\x00prompt\x1fIcon> \n"
|
|
||||||
printf "\x00markup-rows\x1ftrue\n"
|
|
||||||
|
|
||||||
url=${ROFI_FONTAWESOME_LIST_URL:-"https://raw.githubusercontent.com/wstam88/rofi-fontawesome/master/fa5-icon-list.txt"}
|
|
||||||
if [ -n "${ROFI_FONTAWESOME_LIST_FILE}" ]; then
|
|
||||||
cat "$ROFI_FONTAWESOME_LIST_FILE"
|
|
||||||
elif [ -n "${url}" ]; then
|
|
||||||
curl -s "${url}"
|
|
||||||
fi
|
|
||||||
fi
|
|
|
@ -1,37 +0,0 @@
|
||||||
#!/usr/bin/env sh
|
|
||||||
# Nerdfont csv from: https://github.com/shanedabes/rofi-nerdfonts
|
|
||||||
|
|
||||||
# a file to read from, will be preferred over url
|
|
||||||
# ROFI_NERDFONT_LIST_FILE="point/to/nerdfont-chars.csv"
|
|
||||||
# a url to pull list from
|
|
||||||
# ROFI_NERDFONT_LIST_URL="https://point-me-to/a/nerd-icon-list.csv"
|
|
||||||
# icon|name, icon is default
|
|
||||||
# ROFI_NERDFONT_OUTPUT="icon"
|
|
||||||
|
|
||||||
if [ -n "$*" ]; then
|
|
||||||
output="${ROFI_NERDFONT_OUTPUT}"
|
|
||||||
case "$output" in
|
|
||||||
name)
|
|
||||||
printf "%s" "$*" |
|
|
||||||
cut -d',' -f2 |
|
|
||||||
xclip -selection clipboard >/dev/null 2>/dev/null &
|
|
||||||
;;
|
|
||||||
icon | *)
|
|
||||||
printf "%s" "$*" |
|
|
||||||
cut -d',' -f1 |
|
|
||||||
xclip -selection clipboard >/dev/null 2>/dev/null &
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
exit 0
|
|
||||||
|
|
||||||
elif [ -z "$*" ]; then
|
|
||||||
printf "\x00prompt\x1fIcon> \n"
|
|
||||||
printf "\x00markup-rows\x1ftrue\n"
|
|
||||||
|
|
||||||
url=${ROFI_NERDFONT_LIST_URL:-"https://raw.githubusercontent.com/shanedabes/rofi-nerdfonts/master/chars.csv"}
|
|
||||||
if [ -n "${ROFI_NERDFONT_LIST_FILE}" ]; then
|
|
||||||
cat "$ROFI_NERDFONT_LIST_FILE"
|
|
||||||
elif [ -n "${url}" ]; then
|
|
||||||
curl -s "${url}"
|
|
||||||
fi
|
|
||||||
fi
|
|
|
@ -1,28 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
rofi_command="rofi"
|
|
||||||
|
|
||||||
original_args=("$@")
|
|
||||||
for ((i = 0; i <= "${#original_args[@]}"; i++)); do
|
|
||||||
if [ "${original_args[i]}" == "-color" ]; then
|
|
||||||
for ((j = 0; j <= "${#original_args[@]}"; j++)); do
|
|
||||||
if [ "${original_args[j]}" == "-theme" ]; then
|
|
||||||
echo "with theme: $i : ${original_args[i]} ${original_args[i + 1]}"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# for ((index = 0; index <= ${#lines_ary[@]}; index++)); do
|
|
||||||
# if [ "${lines_ary[index]}" == "Release:" ]; then
|
|
||||||
# echo "${lines_ary[index + 1]}"
|
|
||||||
# fi
|
|
||||||
# done
|
|
||||||
|
|
||||||
$rofi_command "${original_args[@]}"
|
|
||||||
|
|
||||||
# if [ -z "${color}" ]; then
|
|
||||||
# command rofi "${original_args[@]}"
|
|
||||||
# fi
|
|
||||||
|
|
||||||
# echo "color = ${color}"
|
|
|
@ -1,6 +0,0 @@
|
||||||
Calculator,!c,source,"rofi -show calc -modi calc -no-show-match -no-sort -theme Arc-Dark"
|
|
||||||
Clipboard,!y,source,"rofi -modi "clipboard:greenclip print" -show clipboard -run-command '{cmd}' -theme Arc-Dark"
|
|
||||||
Emojis,!e,source,"rofimoji --rofi-args '-theme sidebar'"
|
|
||||||
Youtube,!yt,source,"someroficommand"
|
|
||||||
Wikipedia,!w,source,"someroficommand"
|
|
||||||
DuckDuckGo,!ddg,source,"someroficommand"
|
|
Can't render this file because it contains an unexpected character in line 2 and column 33.
|
|
@ -1,11 +0,0 @@
|
||||||
* {
|
|
||||||
accent: #ffffff; // anything which should be accented
|
|
||||||
background: #000000; // rofi background color
|
|
||||||
background-nofocus: #000000;// bg of items not focused
|
|
||||||
background-focus: #4682b4; // bg of item focused
|
|
||||||
foreground: #ffffff; // rofi foreground color
|
|
||||||
foreground-nofocus: #ffffff;// fg of items not focused
|
|
||||||
foreground-focus: #000000; // fg of items focused
|
|
||||||
on: #6B9BC3; // color to signify something is turned on
|
|
||||||
off: #1D354A; // color to signify something is turned off
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
* {
|
|
||||||
accent: #83a598; // anything which should be accented
|
|
||||||
background: #282828; // rofi background color
|
|
||||||
background-nofocus: #282828;// bg of items not focused
|
|
||||||
background-focus: #1d2021; // bg of item focused
|
|
||||||
foreground: #ebdbb2; // rofi foreground color
|
|
||||||
foreground-nofocus: #ebdbb2;// fg of items not focused
|
|
||||||
foreground-focus: #83a598; // fg of items focused
|
|
||||||
on: #83a598; // color to signify something is turned on
|
|
||||||
off: #fb4934; // color to signify something is turned off
|
|
||||||
}
|
|
|
@ -1,35 +0,0 @@
|
||||||
/**
|
|
||||||
* Layout for the horizontal top bar
|
|
||||||
* dmenu we all know and love
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
@import "layouts/list-horizontal.rasi"
|
|
||||||
* {
|
|
||||||
background-color: @background;
|
|
||||||
border-color: @accent;
|
|
||||||
text-color: @foreground;
|
|
||||||
font: @text-font;
|
|
||||||
}
|
|
||||||
|
|
||||||
#window {
|
|
||||||
anchor: north;
|
|
||||||
location: north;
|
|
||||||
width: 100%;
|
|
||||||
padding: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#listview {
|
|
||||||
spacing: 5px;
|
|
||||||
lines: 100;
|
|
||||||
border: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#entry {
|
|
||||||
expand: false;
|
|
||||||
width: 10em;
|
|
||||||
}
|
|
||||||
|
|
||||||
#element {
|
|
||||||
padding: 0px 2px;
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
|
|
||||||
/**
|
|
||||||
* This theme is intended for a full-width dropdown. It will dynamically resize, depending on the amount of list items.
|
|
||||||
*/
|
|
||||||
|
|
||||||
@import "./layouts/list-vertical-dynamic.rasi"
|
|
||||||
|
|
||||||
#window {
|
|
||||||
width: 100%;
|
|
||||||
location:north;
|
|
||||||
anchor:north;
|
|
||||||
}
|
|
||||||
|
|
||||||
#listview {
|
|
||||||
dynamic: true;
|
|
||||||
fixed-height: false;
|
|
||||||
}
|
|
|
@ -1,28 +0,0 @@
|
||||||
/**
|
|
||||||
* Settings for a general purpose
|
|
||||||
* horizontal options list menu:
|
|
||||||
*/
|
|
||||||
@import "../settings.rasi"
|
|
||||||
* {
|
|
||||||
background-color: @background;
|
|
||||||
text-color: @foreground;
|
|
||||||
font: @text-font;
|
|
||||||
}
|
|
||||||
#window {
|
|
||||||
children: [ horizbox ];
|
|
||||||
}
|
|
||||||
#horizbox {
|
|
||||||
orientation: horizontal;
|
|
||||||
children: [ prompt, entry, listview ];
|
|
||||||
}
|
|
||||||
#listview {
|
|
||||||
layout: horizontal;
|
|
||||||
}
|
|
||||||
#element {
|
|
||||||
background-color: @background-nofocus;
|
|
||||||
text-color: @foreground-nofocus;
|
|
||||||
}
|
|
||||||
#element.selected {
|
|
||||||
background-color: @background-focus;
|
|
||||||
text-color: @foreground-focus;
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
/**
|
|
||||||
* This theme is intended for a normal vertical list, which can fill the width of the screen.
|
|
||||||
*/
|
|
||||||
|
|
||||||
@import "../settings.rasi"
|
|
||||||
|
|
||||||
#window {
|
|
||||||
padding: 5;
|
|
||||||
}
|
|
||||||
|
|
||||||
#listview {
|
|
||||||
layout: vertical;
|
|
||||||
spacing: @option-5-listview-spacing;
|
|
||||||
}
|
|
||||||
|
|
||||||
#element {
|
|
||||||
padding: 10;
|
|
||||||
}
|
|
|
@ -1,55 +0,0 @@
|
||||||
/**
|
|
||||||
* Settings for a general purpose full screen
|
|
||||||
* horizontal options screen. The options will
|
|
||||||
* make use of icons.
|
|
||||||
* Px values for 1920x1080 screens.
|
|
||||||
*
|
|
||||||
* Depending on how many options your list
|
|
||||||
* should display, choose the corresponding padding and spacing
|
|
||||||
* for window and listview from below and add it to your
|
|
||||||
* specific theme.
|
|
||||||
*/
|
|
||||||
|
|
||||||
@import "list-horizontal.rasi"
|
|
||||||
* {
|
|
||||||
/* General */
|
|
||||||
icon-font: "Iosevka 40";
|
|
||||||
font: @icon-font;
|
|
||||||
inputbar-margin: 4px 4px;
|
|
||||||
prompt-padding: 16px 20px;
|
|
||||||
entry-padding: 18px 16px 16px 0px;
|
|
||||||
list-element-padding: 20px;
|
|
||||||
list-element-margin: @inputbar-margin;
|
|
||||||
list-element-border: 0px 0px 0px 8px;
|
|
||||||
list-8-window-padding: 219px 360px;
|
|
||||||
/**
|
|
||||||
* Values bellow are 'no-padding' ones for Iosevka icons in this size.
|
|
||||||
* If you use a different sized font, you will have to find your own
|
|
||||||
* padding and spacing values.
|
|
||||||
* -12px 0px -19px -96px */
|
|
||||||
option-element-padding: 88px 100px 81px 4px;
|
|
||||||
option-3-window-padding: 415px 446px;
|
|
||||||
option-3-listview-spacing: 140px;
|
|
||||||
option-5-window-padding: 415px 183px;
|
|
||||||
option-5-listview-spacing: 77px;
|
|
||||||
option-6-listview-spacing: 50px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#window {
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
padding: @option-5-window-padding;
|
|
||||||
}
|
|
||||||
|
|
||||||
#horizbox {
|
|
||||||
children: [ listview ];
|
|
||||||
}
|
|
||||||
|
|
||||||
#listview {
|
|
||||||
spacing: @option-5-listview-spacing;
|
|
||||||
}
|
|
||||||
|
|
||||||
#element {
|
|
||||||
padding: @option-element-padding;
|
|
||||||
border: @list-element-border;
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
/**
|
|
||||||
* This theme is intended for a 5 items wide menu on a 1920x1080 pixels resolution.
|
|
||||||
* You may have to tweak values such as the window padding if you have a different resolution.
|
|
||||||
*/
|
|
||||||
|
|
||||||
@import "layouts/options-horizontal-fullscreen.rasi"
|
|
||||||
|
|
||||||
#window {
|
|
||||||
padding: @option-5-window-padding;
|
|
||||||
}
|
|
||||||
#listview {
|
|
||||||
spacing: @option-5-listview-spacing;
|
|
||||||
lines: 5;
|
|
||||||
}
|
|
|
@ -1,41 +0,0 @@
|
||||||
/**
|
|
||||||
* Changing this file allows all other theme files to be affected since
|
|
||||||
* they all get their default settings from here.
|
|
||||||
* Idea cribbed from: https://gitlab.com/vahnrr/rofi-menus
|
|
||||||
*
|
|
||||||
* Structure (what goes where) should be set in specific theme files, which pull from more general layouts/ files
|
|
||||||
* Color (what has which accent) can be added with colorschemes/ files, and then set globally from here
|
|
||||||
*
|
|
||||||
* if a layout needs a *very* specific colorscheme it can also be set in the layouts/theme files
|
|
||||||
* but try to keep the two separated as much as possible, so we can adjust global options easily from here
|
|
||||||
*/
|
|
||||||
|
|
||||||
//default import
|
|
||||||
@import "colorschemes/gruvbox-dark.rasi"
|
|
||||||
|
|
||||||
* {
|
|
||||||
/* General */
|
|
||||||
text-font: "Iosevka Nerd Font";
|
|
||||||
text-font-mono: "Iosevka Nerd Font";
|
|
||||||
icon-font: "Iosevka Nerd Font";
|
|
||||||
icon-font-small: "Iosevka Nerd Font";
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* In case rofi gets started without a specific theme
|
|
||||||
* try to match the imported theme colors as best we
|
|
||||||
* can to any general purpose.
|
|
||||||
*/
|
|
||||||
* {
|
|
||||||
background-color: @background;
|
|
||||||
text-color: @foreground;
|
|
||||||
font: @text-font;
|
|
||||||
}
|
|
||||||
#element {
|
|
||||||
background-color: @background-nofocus;
|
|
||||||
text-color: @foreground-nofocus;
|
|
||||||
}
|
|
||||||
#element.selected {
|
|
||||||
background-color: @background-focus;
|
|
||||||
text-color: @foreground-focus;
|
|
||||||
}
|
|
|
@ -1,48 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# rofi-bang
|
|
||||||
#
|
|
||||||
|
|
||||||
# Allows execution of arbitrary commands through rofi by
|
|
||||||
# invoking shell scripts. These shell scripts can in turn
|
|
||||||
# of course be other rofi commands, which allows the creation
|
|
||||||
# of chained rofi executions (e.g. !c 1+2) to run a
|
|
||||||
# calculator script within rofi and immediately execute it.
|
|
||||||
# Hence, rofi-bang.
|
|
||||||
|
|
||||||
cwd="$XDG_CONFIG_HOME"/rofi
|
|
||||||
if [ ! -d "$cwd" ]; then
|
|
||||||
echo "The necessary directory at $HOME/.config/rofi is not set up correctly."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
cmdfile="$cwd/rofi-bang-commands.csv"
|
|
||||||
if [ ! -f "$cmdfile" ]; then
|
|
||||||
echo "The nessesary file at $cwd/rofi-bang-commands.csv has not been found."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Present the initial selection screen - but as soon as only one candidate is left exit out
|
|
||||||
# since bangs are unique (!text will not be matched by anything else) it should automatically exit
|
|
||||||
# whenever a bang has been typed
|
|
||||||
selection=$(
|
|
||||||
cut <"$cmdfile" -s -d ',' -f 1,2 |
|
|
||||||
sed 's/,/: /' |
|
|
||||||
printf "%s\n%s\n%s" "$(cat -)" "suffix that is not in cmd file" "one last entry" |
|
|
||||||
rofi -dmenu -i -p "Run> " -theme "Arc-Dark" -auto-select |
|
|
||||||
sed 's/: /,/' |
|
|
||||||
head -n 1
|
|
||||||
)
|
|
||||||
# we did not select anything, just exit
|
|
||||||
if [ -z "$selection" ]; then exit 0; fi
|
|
||||||
|
|
||||||
# we selected something, check if it is in the bang commands file
|
|
||||||
# if it is, we should execute the bang
|
|
||||||
is_bang=$(grep "$selection" "$cmdfile")
|
|
||||||
if [ -n "$is_bang" ]; then
|
|
||||||
cmd=$(echo "$is_bang" | cut -s -d ',' -f 4)
|
|
||||||
echo "$cmd" | xargs --no-run-if-empty -I "{}" /bin/bash -c "{}"
|
|
||||||
else
|
|
||||||
echo "not implemented yet, should re-run rofi with the exact same settings"
|
|
||||||
fi
|
|
|
@ -1,87 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# source surfraw config
|
|
||||||
source $HOME/.surfraw.conf
|
|
||||||
|
|
||||||
# load global files
|
|
||||||
source /etc/rofi-surfraw.conf
|
|
||||||
|
|
||||||
# create local copy of custom searchengines
|
|
||||||
if [[ ! -d $HOME/.config/rofi-surfraw ]]; then
|
|
||||||
mkdir $HOME/.config/rofi-surfraw/searchengines
|
|
||||||
fi
|
|
||||||
if [[ ! -f $HOME/.config/rofi-surfraw/searchengines ]]; then
|
|
||||||
cp /usr/share/doc/rofi-surfraw/searchengines $HOME/.config/rofi-surfraw/searchengines
|
|
||||||
fi
|
|
||||||
|
|
||||||
# get local config
|
|
||||||
if [[ -f $HOME/.config/rofi-surfraw/config ]]; then
|
|
||||||
source $HOME/.config/rofi-surfraw/config
|
|
||||||
fi
|
|
||||||
|
|
||||||
# get list of search engines from surfraw
|
|
||||||
if [[ $@ == *"--no-list"* ]]; then
|
|
||||||
:
|
|
||||||
else
|
|
||||||
# list=$(sr -elvi | awk '{ print "?"$1 }' | tail -n +2)
|
|
||||||
list=$(sr -elvi | awk '{if (NR!=1) print "?"$1 }')
|
|
||||||
fi
|
|
||||||
|
|
||||||
# get custom engines from text file
|
|
||||||
if [[ $@ == *"--no-custom"* ]]; then
|
|
||||||
:
|
|
||||||
else
|
|
||||||
# custom=$(cat $HOME/.config/rofi-surfraw/searchengines | awk -F ' - ' '{ print $1 }')
|
|
||||||
custom=$(awk -F ' - ' '{ print $1 }' $HOME/.config/rofi-surfraw/searchengines)
|
|
||||||
fi
|
|
||||||
|
|
||||||
main() {
|
|
||||||
# Draw Menu
|
|
||||||
HELP_MSG="<span color=\"$help_color\">Hit Ctrl+Space to complete Engine Name
|
|
||||||
Searches without prepended engine use "${default}"</span>"
|
|
||||||
elvi=$(echo -e "${list}\n${custom}" | rofi -dmenu -mesg "${HELP_MSG}" -p "Search > ")
|
|
||||||
|
|
||||||
# Some logic
|
|
||||||
if [[ $elvi == "" ]]; then
|
|
||||||
exit
|
|
||||||
elif [[ $elvi == "!"* ]]; then
|
|
||||||
entry=$(grep "$(echo "${elvi}" | awk '{ print $1 }')" "$HOME/.config/rofi-surfraw/searchengines")
|
|
||||||
method=$(echo "${entry}" | awk -F ' - ' '{ print $2 }')
|
|
||||||
bang=$(echo "${entry}" | awk -F ' - ' '{ print $3 }')
|
|
||||||
search=$(echo "${elvi}" | awk '{$1=""; print $0}' | cut -c 2-)
|
|
||||||
if [[ $method == "surfraw" ]]; then
|
|
||||||
sr ${bang} ${search}
|
|
||||||
elif [[ $method == "custom" ]]; then
|
|
||||||
"$SURFRAW_graphical_browser" $SURFRAW_graphical_browser_args ${bang}"${search}"
|
|
||||||
fi
|
|
||||||
elif [[ $elvi == "?"* ]]; then
|
|
||||||
name=$(echo "${elvi}" | awk '{ print $1 }' | cut -c 2-)
|
|
||||||
search=$(echo "${elvi}" | awk '{$1=""; print $0}' | cut -c 2-)
|
|
||||||
sr ${name} ${search}
|
|
||||||
else
|
|
||||||
if [[ $default == "!"* ]]; then
|
|
||||||
entry=$(grep "$(echo "${default}" | awk '{ print $1 }')" "$HOME/.config/rofi-surfraw/searchengines")
|
|
||||||
method=$(echo "${entry}" | awk -F ' - ' '{ print $2 }')
|
|
||||||
bang=$(echo "${entry}" | awk -F ' - ' '{ print $3 }')
|
|
||||||
else
|
|
||||||
method="surfraw"
|
|
||||||
bang="$default"
|
|
||||||
fi
|
|
||||||
search="${elvi}"
|
|
||||||
if [[ $method == "surfraw" ]]; then
|
|
||||||
sr ${bang} ${search}
|
|
||||||
elif [[ $method == "custom" ]]; then
|
|
||||||
"$SURFRAW_graphical_browser" $SURFRAW_graphical_browser_args ${bang}"${search}"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
if [[ $1 == "--help" ]]; then
|
|
||||||
echo "rofi-surfraw - (C) 2015 Rasmus Steinke <rasi at xssn dot at>"
|
|
||||||
echo "---"
|
|
||||||
echo "--help this help"
|
|
||||||
echo "--no-list do not show inbuild search engines"
|
|
||||||
echo "--no-custom do not show custom search engines"
|
|
||||||
else
|
|
||||||
main
|
|
||||||
fi
|
|
25
terminal/.config/bat/config
Normal file
25
terminal/.config/bat/config
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
# This is `bat`s configuration file. Each line either contains a comment or
|
||||||
|
# a command-line option that you want to pass to `bat` by default. You can
|
||||||
|
# run `bat --help` to get a list of all possible configuration options.
|
||||||
|
|
||||||
|
# Desired highlighting theme (e.g. "TwoDark"). Run `bat --list-themes`
|
||||||
|
# for a list of all available themes
|
||||||
|
--theme="base16"
|
||||||
|
|
||||||
|
# Use italic text on the terminal. This is not supported on all
|
||||||
|
# terminal emulators (like tmux, by default):
|
||||||
|
--italic-text=always
|
||||||
|
|
||||||
|
# Uncomment the following line to disable automatic paging:
|
||||||
|
#--paging=never
|
||||||
|
|
||||||
|
# Uncomment the following line if you are using less version >= 551 and want to
|
||||||
|
# enable mouse scrolling support in `bat` when running inside tmux. This might
|
||||||
|
# disable text selection, unless you press shift.
|
||||||
|
#--pager="less --RAW-CONTROL-CHARS --quit-if-one-screen --mouse"
|
||||||
|
|
||||||
|
# Syntax mappings: map a certain filename pattern to a language.
|
||||||
|
# Example 1: use the C++ syntax for Arduino .ino files
|
||||||
|
# Example 2: Use ".gitignore"-style highlighting for ".ignore" files
|
||||||
|
#--map-syntax "*.ino:C++"
|
||||||
|
#--map-syntax ".ignore:Git Ignore"
|
|
@ -1,6 +1,11 @@
|
||||||
# Bibtex module
|
# Writing module
|
||||||
|
|
||||||
[bibtex](https://en.wikipedia.org/wiki/BibTeX) - plain-text reference management
|
[bibtex](https://en.wikipedia.org/wiki/BibTeX) - plain-text reference management
|
||||||
|
[zathura](git.pwmt.org) - keyboard-driven PDF reading
|
||||||
|
|
||||||
|
This readme is a little out of date, as are the scripts below.
|
||||||
|
They are old, I used them during my time as a student and they are probably written terribly.
|
||||||
|
But I still think there is value in them, hence not removing them from the repo just yet.
|
||||||
|
|
||||||
## bib-due
|
## bib-due
|
||||||
|
|
Loading…
Reference in a new issue