Compare commits
67 Commits
acce21bbc1
..
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 795c0d5330 | |||
| 950ac94dae | |||
| 4e9d21e5e1 | |||
| 57ff1ad019 | |||
| b1c54ef973 | |||
| 73822f700f | |||
| 6f14b52262 | |||
| a93def8e12 | |||
| a0b1248d1e | |||
| 379404a90c | |||
| 8ab9788208 | |||
| 5f01172523 | |||
| 05dfddd04b | |||
| e0ec649da6 | |||
| c12e815cce | |||
| e29f8b2fc1 | |||
| c459c66d3f | |||
| 194b680c13 | |||
| d776d43ef2 | |||
| 830436f44c | |||
| 1c42274ced | |||
| 07eb59bf2a | |||
| 050d923644 | |||
| ca3f573ffc | |||
| e19e5d2c10 | |||
| f2fa6a95d3 | |||
| a9cc6f0889 | |||
| b9bfd9cc51 | |||
| a96fffb78c | |||
| c16abd979b | |||
| c77e3abf65 | |||
| cfcea95348 | |||
| 4111f31ce6 | |||
| 74f4738519 | |||
| e9fab54ab0 | |||
| ef0b087591 | |||
| 313fefe29d | |||
| ae00575ede | |||
| 2e50372c0e | |||
| e62df20a33 | |||
| f0ac725054 | |||
| bdc1e38871 | |||
| 5ff2e4ae5d | |||
| 2d1957bc2e | |||
| a5f3fe65b0 | |||
| d4f42e8858 | |||
| a94cd9350d | |||
| 87f624ac3c | |||
| 4b33912ad1 | |||
| 57ab6006cd | |||
| 75eaf01659 | |||
| f3c17b86c9 | |||
| 1597a80184 | |||
| 9868a3e1c6 | |||
| 52bfa84abc | |||
| b180b09e08 | |||
| b10ea06b65 | |||
| efe132aa1a | |||
| f344708581 | |||
| 6f1f994625 | |||
| 991f7aee59 | |||
| af1a0beed2 | |||
| 51381f96ab | |||
| 4ce08af69a | |||
| 1cabbbed46 | |||
| 3352be2f3d | |||
| 3624fa124c |
+11
-1
@@ -45,4 +45,14 @@ flycheck_*.el
|
||||
.dir-locals.el
|
||||
|
||||
# network security
|
||||
/network-security.data
|
||||
/network-security.data
|
||||
|
||||
# nvim files
|
||||
nvim/env
|
||||
nvim/plugin
|
||||
|
||||
# alacritty themes
|
||||
alacritty/themes
|
||||
|
||||
myzsh
|
||||
ncspot/userstate.cbor
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
# Dotfiles
|
||||
Set of dotfiles I use for my desktop. I run Arch linux (btw) and use `niri` as my window manager, `alacritty` as my terminal emulator and `neovim` as my text editor. I also like to manage my notes using `obsidian`. I spend 99% of my time on my computer using those 4 programs plus `firefox`.
|
||||
|
||||
<p align="center">
|
||||
<img src="desktop.png" width="1000"/>
|
||||
</p>
|
||||
|
||||
People will likely find the `nvim`, `alacritty`, and `zshrc` / `p10k.zsh` configs useful.
|
||||
|
||||
# Installation
|
||||
If you want to just use my entire setup as-is, you can run `install.sh`. This will symlink all of the files in this directory to your home directory. Folders get linked to `~/.config` and files get linked as hidden versions of their names under `$HOME` (e.g. `zshrc` -> `~/.zshrc`).
|
||||
+9
-21
@@ -1,22 +1,10 @@
|
||||
!! URxvt Appearance
|
||||
urxvt*termName: rxvt-256color
|
||||
urxvt*font: xft:Terminus:style=Regular:size=12
|
||||
Xft.autohint: true
|
||||
Xft.antialias: true
|
||||
Xft.hinting: true
|
||||
Xft.hintstyle: hintslight
|
||||
Xft.rgba: rgb
|
||||
Xcursor.size: 16
|
||||
Xft.dpi: 96
|
||||
Xft.autohint: 1
|
||||
Xft.lcdfilter: lcddefault
|
||||
|
||||
urxvt*letterSpace: 0
|
||||
urxvt*lineSpace: 0
|
||||
urxvt*geometry: 120x30
|
||||
urxvt.internalBorder: 24
|
||||
urxvt.saveline: 2048
|
||||
urxvt.scrollBar: false
|
||||
urxvt.scrollBar_right: false
|
||||
urxvt.urgentOnBell: true
|
||||
urxvt.depth: 32
|
||||
urxvt.cursorUnderline: true
|
||||
urxvt.cursorBlink: true
|
||||
urxvt*scrollTtyOutput: false
|
||||
Xft.hintstyle: hintfull
|
||||
Xft.hinting: 1
|
||||
Xft.antialias: 1
|
||||
Xft.rgba: rgb
|
||||
URxvt.font: xft:Hack Nerd Font:size=16
|
||||
rofi.color-enabled: true
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
|
||||
[env]
|
||||
TERM = "alacritty"
|
||||
|
||||
[terminal.shell]
|
||||
program = "/bin/zsh"
|
||||
|
||||
[window]
|
||||
padding = { x = 5, y = 5}
|
||||
dynamic_padding = true
|
||||
decorations = "Full"
|
||||
startup_mode = "Windowed"
|
||||
|
||||
|
||||
[selection]
|
||||
save_to_clipboard = true
|
||||
|
||||
[font]
|
||||
size = 16
|
||||
normal = { family = "Iosevka" }
|
||||
|
||||
[cursor]
|
||||
style = {shape = "underline", blinking = "Always"}
|
||||
|
||||
[general]
|
||||
live_config_reload = true
|
||||
|
||||
import = [
|
||||
"~/.config/alacritty/my_theme.toml"
|
||||
]
|
||||
@@ -0,0 +1,23 @@
|
||||
[colors.primary]
|
||||
background = "#0C0C0C"
|
||||
foreground = "#CCCCCC"
|
||||
|
||||
[colors.normal]
|
||||
black = "#000000"
|
||||
red = "#d6181b"
|
||||
green = "#6A9955"
|
||||
yellow = "#e4d201"
|
||||
blue = "#569cd6"
|
||||
magenta = "#bc3fbc"
|
||||
cyan = "#4EC9B0"
|
||||
white = "#e5e5e5"
|
||||
|
||||
[colors.bright]
|
||||
black = "#666666"
|
||||
red = "#ce9178"
|
||||
green = "#b5cea8"
|
||||
yellow = "#DCDCAA"
|
||||
blue = "#9cdcfe"
|
||||
magenta = "#d670d6"
|
||||
cyan = "#9cdcfe"
|
||||
white = "#e5e5e5"
|
||||
@@ -1,39 +0,0 @@
|
||||
alias activateTop='xrandr --output DP-3 --auto --above eDP-1-1'
|
||||
alias activateSync='nvidia-settings --assign CurrentMetaMode="DP-3: nvidia-auto-select +1920+0 {ForceCompositionPipeline=On},DVI-I-3-2: nvidia-auto-select +0+0 {ForceCompositionPipeline=On}"'
|
||||
alias activateLeft='xrandr --output DP-4 --auto --left-of DP-3; i3-msg restart'
|
||||
alias activateDisplayLink='xrandr --setprovideroutputsource 3 0'
|
||||
alias closeLaptop='xrandr --output eDP-1-1 --off'
|
||||
alias activateHome='closeLaptop; activateLeft; activateSync'
|
||||
alias scan='scanimage --device "airscan:w0:CANON INC. TS6100 series" --format=png --output-file file.png --progress'
|
||||
|
||||
alias weather="curl wttr.in/Phoenix"
|
||||
alias asuvpn='sudo openconnect --csd-wrapper=/usr/lib/openconnect/csd-post.sh --disable-ipv6 --no-proxy --pfs --base-mtu=1000 sslvpn.asu.edu/2fa'
|
||||
alias fixWifi='sudo rmmod iwlmvm; sudo rmmod iwlwifi; sudo modprobe iwlmvm; sudo modprobe iwlwifi'
|
||||
|
||||
alias paraview='~/Projects/paraview/install/bin/paraview'
|
||||
|
||||
export PATH=/home/frosty/.local/bin:$PATH
|
||||
export PATH=/home/frosty/Projects/paraview/install/bin:$PATH
|
||||
export PATH=/opt/cisco/anyconnect/bin:$PATH
|
||||
export PATH=/home/frosty/Programs/CXX/parsplice/install/bin:$PATH
|
||||
|
||||
# LAMMPS dependencies
|
||||
export PYTHONPATH=/home/frosty/Apps/lammps/python:$PYTHONPATH
|
||||
export LD_LIBRARY_PATH=/home/frosty/Apps/lammps/install/lib:$LD_LIBRARY_PATH
|
||||
export PATH=/home/frosty/Apps/lammps/install/bin:$PATH
|
||||
export PATH=/home/frosty/Programs/Rust/CommandPrompter/target/debug:$PATH
|
||||
|
||||
#paraview python module
|
||||
export LD_LIBRARY_PATH=/home/frosty/Projects/paraview/install/lib:$LD_LIBRARY_PATH
|
||||
export PYTHONPATH=/home/frosty/Projects/paraview/install/lib/python3.9/site-packages/:$PYTHONPATH
|
||||
|
||||
#LANL proxy; make sure to comment out after the summer
|
||||
#export http_proxy="http://proxyout.lanl.gov:8080"
|
||||
#export https_proxy="http://proxyout.lanl.gov:8080"
|
||||
#export ftp_proxy="http://proxyout.lanl.gov:8080"
|
||||
#export HTTP_PROXY="http://proxyout.lanl.gov:8080"
|
||||
#export HTTPS_PROXY="http://proxyout.lanl.gov:8080"
|
||||
#export FTP_PROXY="http://proxyout.lanl.gov:8080"
|
||||
|
||||
(cat ~/.cache/wal/sequences &)
|
||||
clear
|
||||
@@ -1,49 +0,0 @@
|
||||
# ~/.bashrc
|
||||
#
|
||||
|
||||
# If not running interactively, don't do anything
|
||||
[[ $- != *i* ]] && return
|
||||
|
||||
if [[ -f ~/.bash_home ]]; then
|
||||
. ~/.bash_home
|
||||
fi
|
||||
|
||||
# later switch to emacs client when the emacs server is running
|
||||
alias emacs='emacsclient -ct --eval "(load \"~/.emacs\")"'
|
||||
alias killEmacs='systemctl --user disable --now emacs'
|
||||
alias startEmacs='systemctl --user enable --now emacs'
|
||||
alias ls='ls --color=auto'
|
||||
alias diff='diff --color=auto'
|
||||
alias grep='grep --color=auto'
|
||||
alias cp="rsync -r --progress"
|
||||
alias mv="rsync -aP --remove-source-files"
|
||||
|
||||
export PATH=/home/local/ASUAD/rhnatysh/ParaView/install/bin:$PATH
|
||||
|
||||
export FLASK_ENV=development
|
||||
# paraview Python module path vars
|
||||
export LD_LIBRARY_PATH=/home/local/ASUAD/rhnatysh/ParaView/install/lib:$LD_LIBRARY_PATH
|
||||
export PYTHONPATH=/home/local/ASUAD/rhnatysh/ParaView/install/lib/python3.8/site-packages/:$PYTHONPATH
|
||||
|
||||
GREEN="\[$(tput setaf 4)\]"
|
||||
GREENER="\[$(tput setaf 2)\]"
|
||||
RESET="\[$(tput sgr0)\]"
|
||||
|
||||
PS1="${GREEN}\u@\h ${GREENER}\W ${RESET}> "
|
||||
|
||||
# >>> conda initialize >>>
|
||||
# !! Contents within this block are managed by 'conda init' !!
|
||||
__conda_setup="$('/home/local/ASUAD/rhnatysh/Apps/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
|
||||
if [ $? -eq 0 ]; then
|
||||
eval "$__conda_setup"
|
||||
else
|
||||
if [ -f "/home/local/ASUAD/rhnatysh/Apps/miniconda3/etc/profile.d/conda.sh" ]; then
|
||||
. "/home/local/ASUAD/rhnatysh/Apps/miniconda3/etc/profile.d/conda.sh"
|
||||
else
|
||||
export PATH="/home/local/ASUAD/rhnatysh/Apps/miniconda3/bin:$PATH"
|
||||
fi
|
||||
fi
|
||||
unset __conda_setup
|
||||
# <<< conda initialize <<<
|
||||
|
||||
[ -f /opt/miniconda3/etc/profile.d/conda.sh ] && source /opt/miniconda3/etc/profile.d/conda.sh
|
||||
BIN
Binary file not shown.
|
After Width: | Height: | Size: 432 KiB |
+377
@@ -0,0 +1,377 @@
|
||||
[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 = keyboard
|
||||
|
||||
# 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 = 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 = 1
|
||||
|
||||
# Defines color of the frame around the notification window.
|
||||
frame_color = "#FFFFFF"
|
||||
|
||||
# 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
|
||||
|
||||
# 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 = 0
|
||||
|
||||
### Text ###
|
||||
|
||||
font = Hack Nerd Font 14
|
||||
|
||||
# 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
|
||||
# <https://developer.gnome.org/pango/stable/pango-Markup.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>%a</b>\n<i>%s</i>\n%b\n%p"
|
||||
|
||||
# Alignment of message text.
|
||||
# Possible values are "left", "center" and "right".
|
||||
alignment = center
|
||||
|
||||
# Vertical alignment of message text and icon.
|
||||
# Possible values are "top", "center" and "bottom".
|
||||
vertical_alignment = center
|
||||
|
||||
# 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
|
||||
|
||||
# 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 small icons up to this size, set to 0 to disable. Helpful
|
||||
# for e.g. small files or high-dpi screens. In case of conflict,
|
||||
# max_icon_size takes precedence over this.
|
||||
min_icon_size = 0
|
||||
|
||||
# Scale larger icons down to this size, set to 0 to disable
|
||||
max_icon_size = 32
|
||||
|
||||
# Paths to default icons.
|
||||
icon_path = /usr/share/icons/ePapirus-Dark/16x16/status/:/usr/share/icons/ePapirus-Dark/16x16/devices/:/usr/share/icons/ePapirus-Dark/16x16/legacy
|
||||
|
||||
### 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 = 5
|
||||
|
||||
### Misc/Advanced ###
|
||||
|
||||
# dmenu path.
|
||||
dmenu = /usr/bin/dmenu -p dunst:
|
||||
|
||||
# Browser for opening urls in context menu.
|
||||
browser = /usr/bin/firefox -new-tab
|
||||
|
||||
# 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
|
||||
|
||||
# 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 = 0
|
||||
|
||||
# Ignore the dbus closeNotification message.
|
||||
# Useful to enforce the timeout set by dunst configuration. Without this
|
||||
# parameter, an application may close the notification sent before the
|
||||
# user defined timeout.
|
||||
ignore_dbusclose = false
|
||||
|
||||
### 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 list of actions for each 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.
|
||||
# These values can be strung together for each mouse event, and
|
||||
# will be executed in sequence.
|
||||
mouse_left_click = close_current
|
||||
mouse_middle_click = do_action, close_current
|
||||
mouse_right_click = close_all
|
||||
|
||||
# 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
|
||||
|
||||
[urgency_low]
|
||||
# IMPORTANT: colors have to be defined in quotation marks.
|
||||
# Otherwise the "#" and following would be interpreted as a comment.
|
||||
background = "#000000"
|
||||
foreground = "#888888"
|
||||
timeout = 5
|
||||
# Icon for notifications with low urgency, uncomment to enable
|
||||
#icon = /path/to/icon
|
||||
|
||||
[urgency_normal]
|
||||
background = "#000000"
|
||||
foreground = "#ffffff"
|
||||
timeout = 5
|
||||
# Icon for notifications with normal urgency, uncomment to enable
|
||||
#icon = /path/to/icon
|
||||
|
||||
[urgency_critical]
|
||||
background = "#000000"
|
||||
foreground = "#ffffff"
|
||||
frame_color = "#ff0000"
|
||||
timeout = 5
|
||||
# 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
|
||||
|
||||
#[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
|
||||
Executable
+4
@@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
|
||||
killall -q dunst
|
||||
dunst -startup_notification &
|
||||
@@ -1,240 +0,0 @@
|
||||
(require 'package)
|
||||
;; fixing broken emacsclient config: emacsclient --eval "(load "~/.emacs")"
|
||||
|
||||
(add-to-list 'package-archives '("elpa" . "https://tromey.com/elpa/") t)
|
||||
(add-to-list 'package-archives '("gnu" . "https://elpa.gnu.org/packages/") t)
|
||||
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
|
||||
(package-initialize)
|
||||
|
||||
;; emacs preferences
|
||||
(setq-default cursor-type 'bar)
|
||||
(global-hl-line-mode 1)
|
||||
(toggle-scroll-bar -1)
|
||||
(menu-bar-mode -1)
|
||||
(tool-bar-mode -1)
|
||||
(column-number-mode t)
|
||||
(set-fringe-mode 10)
|
||||
(setq doc-view-scale-internally nil)
|
||||
(setq visible-bell t)
|
||||
(setq vc-handled-backends nil)
|
||||
|
||||
(setq mouse-wheel-scroll-amount '(1 ((shift) . 1))) ;; one line at a time
|
||||
(setq mouse-wheel-progressive-speed nil) ;; don't accelerate scrolling
|
||||
(setq mouse-wheel-follow-mouse 't) ;; scroll window under mouse
|
||||
(setq scroll-step 1) ;; keyboard scroll one line at a time
|
||||
|
||||
(setq custom-file (concat user-emacs-directory "custom.el"))
|
||||
(load custom-file 'noerror)
|
||||
|
||||
(setq interprogram-cut-function nil)
|
||||
(setq backup-directory-alist '(("" . "~/.emacs.d/backup")))
|
||||
|
||||
(eval-when-compile
|
||||
(require 'use-package))
|
||||
|
||||
(setq package-check-signature nil)
|
||||
(defun ensure-package-installed (&rest packages)
|
||||
"Assure every package is installed, ask for installation if it’s not.
|
||||
|
||||
Return a list of installed packages or nil for every skipped package."
|
||||
(mapcar
|
||||
(lambda (package)
|
||||
;; (package-installed-p 'evil)
|
||||
(if (package-installed-p package)
|
||||
nil
|
||||
(if (y-or-n-p (format "Package %s is missing. Install it? " package))
|
||||
(package-install package)
|
||||
package)))
|
||||
packages))
|
||||
|
||||
;; make sure to have downloaded archive description.
|
||||
;; Or use package-archive-contents as suggested by Nicolas Dudebout
|
||||
(or (file-exists-p package-user-dir)
|
||||
(package-refresh-contents))
|
||||
|
||||
(ensure-package-installed 'use-package 'ivy 'magit 'centaur-tabs 'eglot 'telephone-line 'dashboard 'multiple-cursors 'flycheck 'which-key 'restart-emacs 'doom-themes 'rainbow-mode 'rainbow-delimiters 'neotree 'all-the-icons 'elpy 'rustic 'simpleclip 'messages-are-flowing 'hl-todo 'format-all 'auctex 'counsel 'swiper 'projectile 'org-roam 'smex 'smartparens 'origami)
|
||||
|
||||
(require 'origami)
|
||||
(bind-keys
|
||||
:map origami-mode-map
|
||||
("C-c C-<tab>" . origami-toggle-node))
|
||||
|
||||
(add-hook 'prog-mode-hook #'origami-mode)
|
||||
(require 'smartparens-config)
|
||||
(add-hook 'prog-mode-hook #'smartparens-mode)
|
||||
(bind-keys
|
||||
:map smartparens-mode-map
|
||||
("C-M-a" . sp-beginning-of-sexp)
|
||||
("C-M-e" . sp-end-of-sexp)
|
||||
|
||||
("C-<down>" . sp-down-sexp)
|
||||
("C-<up>" . sp-up-sexp)
|
||||
("M-<down>" . sp-backward-down-sexp)
|
||||
("M-<up>" . sp-backward-up-sexp)
|
||||
|
||||
("C-M-f" . sp-forward-sexp)
|
||||
("C-M-b" . sp-backward-sexp)
|
||||
|
||||
("C-M-n" . sp-next-sexp)
|
||||
("C-M-p" . sp-previous-sexp)
|
||||
|
||||
("C-S-f" . sp-forward-symbol)
|
||||
("C-S-b" . sp-backward-symbol)
|
||||
|
||||
("C-<right>" . sp-forward-slurp-sexp)
|
||||
("M-<right>" . sp-forward-barf-sexp)
|
||||
("C-<left>" . sp-backward-slurp-sexp)
|
||||
("M-<left>" . sp-backward-barf-sexp)
|
||||
|
||||
("C-M-t" . sp-transpose-sexp)
|
||||
("C-M-k" . sp-kill-sexp)
|
||||
("C-k" . sp-kill-hybrid-sexp)
|
||||
("M-k" . sp-backward-kill-sexp)
|
||||
("C-M-w" . sp-copy-sexp)
|
||||
("C-M-d" . delete-sexp)
|
||||
|
||||
("M-<backspace>" . backward-kill-word)
|
||||
("C-<backspace>" . sp-backward-kill-word)
|
||||
([remap sp-backward-kill-word] . backward-kill-word)
|
||||
|
||||
("M-[" . sp-backward-unwrap-sexp)
|
||||
("M-]" . sp-unwrap-sexp)
|
||||
|
||||
("C-x C-t" . sp-transpose-hybrid-sexp)
|
||||
|
||||
("C-c (" . wrap-with-parens)
|
||||
("C-c [" . wrap-with-brackets)
|
||||
("C-c {" . wrap-with-braces)
|
||||
("C-c '" . wrap-with-single-quotes)
|
||||
("C-c \"" . wrap-with-double-quotes)
|
||||
("C-c _" . wrap-with-underscores)
|
||||
("C-c `" . wrap-with-back-quotes))
|
||||
|
||||
|
||||
(use-package company)
|
||||
(add-hook 'after-init-hook 'global-company-mode)
|
||||
|
||||
(use-package eglot :ensure t)
|
||||
(add-hook 'c++-mode-hook 'eglot-ensure)
|
||||
(add-hook 'c-mode-hook 'eglot-ensure)
|
||||
(add-hook 'js-mode-hook 'eglot-ensure)
|
||||
|
||||
(use-package centaur-tabs :init
|
||||
(setq centaur-tabs-enable-key-bindings t
|
||||
centaur-tabs-set-icons t
|
||||
centaur-tabs-set-modified-marker t
|
||||
centaur-tabs-style "chamfer"
|
||||
centaur-tabs-gray-out-icons 'buffer))
|
||||
(centaur-tabs-headline-match)
|
||||
(centaur-tabs-mode 1)
|
||||
|
||||
(add-hook 'after-init-hook #'global-flycheck-mode)
|
||||
(add-hook 'prog-mode-hook #'rainbow-delimiters-mode)
|
||||
(add-hook 'css-mode-hook #'rainbow-mode)
|
||||
|
||||
(require 'telephone-line)
|
||||
(telephone-line-mode 1)
|
||||
(when (fboundp 'windmove-default-keybindings)
|
||||
(windmove-default-keybindings))
|
||||
|
||||
(require 'which-key)
|
||||
(which-key-mode)
|
||||
|
||||
(use-package dashboard
|
||||
:init
|
||||
(setq dashboard-set-footer nil
|
||||
dashboard-org-agenda-categories '("Tasks" "appointments")
|
||||
dashboard-center-content t
|
||||
dashboard-set-heading-icons t
|
||||
dashboard-set-file-icons t)
|
||||
:ensure t
|
||||
:config (dashboard-setup-startup-hook))
|
||||
|
||||
(require 'multiple-cursors)
|
||||
(global-set-key (kbd "C-S-c C-S-c") 'mc/edit-lines)
|
||||
(global-set-key (kbd "C->") 'mc/mark-next-like-this)
|
||||
(global-set-key (kbd "C-<") 'mc/mark-previous-like-this)
|
||||
(global-set-key (kbd "C-c C-<") 'mc/mark-all-like-this)
|
||||
|
||||
(require 'neotree)
|
||||
(global-set-key [f8] 'neotree-toggle)
|
||||
|
||||
(use-package elpy
|
||||
:ensure t
|
||||
:defer t
|
||||
:init
|
||||
(advice-add 'python-mode :before 'elpy-enable)
|
||||
:config
|
||||
(setq elpy-modules (delq 'elpy-module-flymake elpy-modules))
|
||||
(add-hook 'elpy-mode-hook 'flycheck-mode))
|
||||
|
||||
(use-package ivy :ensure t
|
||||
:diminish ivy-mode
|
||||
:init (setq projectile-completion-system 'ivy)
|
||||
:config
|
||||
(ivy-mode 1)
|
||||
(setq ivy-height 13)
|
||||
(setq ivy-wrap t)
|
||||
(setq ivy-use-virtual-buffers t)
|
||||
(setq ivy-count-format "(%d/%d) "))
|
||||
|
||||
(use-package counsel
|
||||
:ensure t
|
||||
:bind*
|
||||
(("M-x" . counsel-M-x)
|
||||
("C-c d d" . counsel-descbinds)
|
||||
("C-c s s" . counsel-ag)
|
||||
("C-c s d" . counsel-ag-projectile)
|
||||
("C-x C-f" . counsel-find-file)
|
||||
("C-x r f" . counsel-recentf)
|
||||
("C-c g g" . counsel-git)
|
||||
("C-c g G" . counsel-git-grep)
|
||||
("C-x l" . counsel-locate)
|
||||
("C-c g s" . counsel-grep-or-swiper)
|
||||
("C-M-y" . counsel-yank-pop)
|
||||
("C-c C-r" . ivy-resume)
|
||||
("C-c i m" . counsel-imenu)
|
||||
("C-c i M" . ivy-imenu-anywhere)
|
||||
("C-c d s" . describe-symbol)))
|
||||
|
||||
(use-package swiper
|
||||
:bind*
|
||||
(("C-s" . swiper)))
|
||||
(setq search-default-mode #'char-fold-to-regexp)
|
||||
|
||||
(use-package projectile
|
||||
:ensure t
|
||||
:init
|
||||
(projectile-mode +1)
|
||||
:bind (:map projectile-mode-map
|
||||
("s-p" . projectile-command-map)
|
||||
("C-c p" . projectile-command-map)))
|
||||
|
||||
;; org settings
|
||||
(setq org-replace-disputed-keys t)
|
||||
(define-key global-map "\C-cl" 'org-store-link)
|
||||
(define-key global-map "\C-ca" 'org-agenda)
|
||||
(setq org-enforce-todo-dependencies t)
|
||||
(setq org-enforce-todo-checkbox-dependencies t)
|
||||
(setq org-log-done t)
|
||||
(setq org-startup-with-inline-images t)
|
||||
(setq org-startup-with-latex-preview t)
|
||||
(setq-default org-display-custom-times t)
|
||||
(setq org-time-stamp-custom-formats '("<%a %b %e %Y>" . "<%a %b %e %Y %H:%M>"))
|
||||
|
||||
; agenda settings
|
||||
(setq org-agenda-include-diary t)
|
||||
(setq org-agenda-skip-scheduled-if-done t)
|
||||
(setq org-agenda-skip-deadline-if-done t)
|
||||
(setq org-agenda-todo-ignore-deadlines t)
|
||||
(setq org-agenda-todo-ignore-with-date t)
|
||||
(setq org-agenda-todo-ignore-scheduled t)
|
||||
(setq org-agenda-start-on-weekday nil)
|
||||
(setq org-agenda-start-day "+0d")
|
||||
|
||||
(add-hook 'diary-list-entries-hook 'diary-sort-entries t)
|
||||
(add-hook 'text-mode-hook 'turn-on-visual-line-mode)
|
||||
|
||||
(cond ((file-exists-p "~/.emacs_home.el") (load "~/.emacs_home.el")))
|
||||
(cond ((file-exists-p "~/.emacs_work.el") (load "~/.emacs_work.el")))
|
||||
;;; .emacs ends here
|
||||
@@ -1,73 +0,0 @@
|
||||
(setq org-agenda-files (list "~/Documents/home-org-mode/tweaking.org"
|
||||
"~/Documents/org-mode/school.org"
|
||||
"~/Documents/home-org-mode/untitled_project.org"
|
||||
"~/Documents/home-org-mode/personal.org"))
|
||||
|
||||
(set-frame-font "Iosevka:size=16")
|
||||
(ensure-package-installed 'rustic)
|
||||
|
||||
(use-package rustic)
|
||||
(setq rustic-lsp-client 'eglot)
|
||||
|
||||
(add-to-list 'eglot-server-programs '((c++-mode c-mode) "clangd"))
|
||||
|
||||
(use-package all-the-icons)
|
||||
|
||||
(use-package org-roam
|
||||
:ensure t
|
||||
:init
|
||||
(setq org-roam-v2-ack t)
|
||||
:custom
|
||||
(org-roam-directory "~/Documents/slipbox")
|
||||
(org-roam-capture-templates
|
||||
'(("d" "default" plain
|
||||
"%?"
|
||||
:if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}\n")
|
||||
:unnarrowed t)
|
||||
("e" "encrypted" plain "%?"
|
||||
:target (file+head "${slug}.org.gpg"
|
||||
"#+title: ${title}\n")
|
||||
:unnarrowed t)
|
||||
("b" "book notes" plain
|
||||
"\n* Source\n\nAuthor: %^{Author}\nTitle: ${title}\nYear: %^{Year}\n\n %?"
|
||||
:if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}\n")
|
||||
:unnarrowed t)))
|
||||
(org-roam-completion-everywhere t)
|
||||
(org-roam-completion-system 'default)
|
||||
(org-roam-dailies-directory "daily/")
|
||||
:bind (("C-c n l" . org-roam-buffer-toggle)
|
||||
("C-c n f" . org-roam-node-find)
|
||||
("C-c n i" . org-roam-node-insert)
|
||||
("C-c n d" . org-roam-dailies-find-date)
|
||||
("C-c n c" . org-roam-dailies-capture-today)
|
||||
("C-c n C r" . org-roam-dailies-capture-tomorrow)
|
||||
("C-c n t" . org-roam-dailies-find-today)
|
||||
("C-c n y" . org-roam-dailies-find-yesterday)
|
||||
("C-c n r" . org-roam-dailies-find-tomorrow)
|
||||
:map org-mode-map
|
||||
("C-M-i" . completion-at-point))
|
||||
:config
|
||||
(require 'org-roam-dailies)
|
||||
(org-roam-setup)
|
||||
(org-roam-db-autosync-mode))
|
||||
|
||||
(add-to-list 'auto-mode-alist '("neomutt" . mail-mode))
|
||||
(setq appt-message-warning-time 15
|
||||
appt-audible nil
|
||||
appt-visible t
|
||||
appt-display-format 'window)
|
||||
(appt-activate 1)
|
||||
(defun notify-send (title msg)
|
||||
(interactive)
|
||||
;; only the first line of the message is returned
|
||||
;; (subseq msg 0 (search msg "\n"))
|
||||
(shell-command (concat "notify-send '" title "' '" msg "'")))
|
||||
(defun facade-notify-appt (min-to-app new-time msg)
|
||||
(notify-send (format "Appointment in %s minute(s)" min-to-app) msg))
|
||||
|
||||
(add-hook 'mail-mode-hook 'flyspell-mode 1)
|
||||
(add-hook 'org-mode-hook 'flyspell-mode 1)
|
||||
(setq appt-disp-window-function (function facade-notify-appt))
|
||||
|
||||
(provide 'emacs_home)
|
||||
;;;emacs_home.el ends here
|
||||
@@ -1,8 +0,0 @@
|
||||
(setq org-agenda-files (list "/home/local/ASUAD/rhnatysh/Seafile/Emacs/Org Notes/Notes.org"
|
||||
"/home/local/ASUAD/rhnatysh/Seafile/Emacs/Org Notes/school.org"))
|
||||
|
||||
(setq org-roam-directory (file-truename "/home/local/ASUAD/rhnatysh/slipbox"))
|
||||
(org-roam-db-autosync-mode)
|
||||
|
||||
(provide 'emacs_work)
|
||||
;;;emacs_work.el ends here
|
||||
+377
@@ -0,0 +1,377 @@
|
||||
/** Global *******************************************/
|
||||
*{
|
||||
all: unset;
|
||||
font-family: feather;
|
||||
font-family: Iosevka;
|
||||
}
|
||||
|
||||
/** Background **************************************
|
||||
.bg {
|
||||
background-image: url("images/bg.png");
|
||||
background-color: #474D59;
|
||||
opacity: 1;
|
||||
} */
|
||||
|
||||
/** Generic window ***********************************/
|
||||
.genwin {
|
||||
background-color: #15161E;
|
||||
border-radius: 16px;
|
||||
}
|
||||
|
||||
/** Profile ******************************************/
|
||||
.face {
|
||||
background-size: 200px;
|
||||
min-height: 200px;
|
||||
min-width: 200px;
|
||||
margin: 65px 0px 0px 0px;
|
||||
border-radius: 100%;
|
||||
}
|
||||
|
||||
.fullname {
|
||||
color: #ef596f;
|
||||
font-size : 30px;
|
||||
font-weight : bold;
|
||||
}
|
||||
|
||||
.username {
|
||||
color: #6BB2C0;
|
||||
font-size : 22px;
|
||||
font-weight : bold;
|
||||
margin : -15px 0px 0px 0px;
|
||||
}
|
||||
|
||||
/** System ********************************************/
|
||||
.iconcpu, .iconmem, .iconbright, .iconbat {
|
||||
font-size : 32px;
|
||||
font-weight : normal;
|
||||
}
|
||||
.iconcpu {
|
||||
color: #f7768e;
|
||||
}
|
||||
.iconmem {
|
||||
color: #9ece6a;
|
||||
}
|
||||
.iconbright {
|
||||
color: #e0af68;
|
||||
}
|
||||
.iconbat {
|
||||
color: #7aa2f7;
|
||||
}
|
||||
|
||||
.cpu_bar, .mem_bar, .bright_bar, .bat_bar, scale trough {
|
||||
all: unset;
|
||||
background-color: #282C34;
|
||||
border-radius: 16px;
|
||||
min-height: 28px;
|
||||
min-width: 240px;
|
||||
}
|
||||
|
||||
.cpu_bar, .mem_bar, .bright_bar, .bat_bar, scale trough highlight {
|
||||
all: unset;
|
||||
border-radius: 16px;
|
||||
}
|
||||
|
||||
.cpu_bar scale trough highlight {
|
||||
background-color: #f7768e;
|
||||
}
|
||||
.mem_bar scale trough highlight {
|
||||
background-color: #9ece6a;
|
||||
}
|
||||
.bright_bar scale trough highlight {
|
||||
background-color: #e0af68;
|
||||
}
|
||||
.bat_bar scale trough highlight {
|
||||
background-color: #7aa2f7;
|
||||
}
|
||||
|
||||
/** Clock ********************************************/
|
||||
.time_hour, .time_min {
|
||||
color: #7dcfff;
|
||||
font-size : 70px;
|
||||
font-weight : bold;
|
||||
}
|
||||
.time_hour {
|
||||
margin : 15px 0px 0px 20px;
|
||||
}
|
||||
.time_min {
|
||||
margin : 0px 0px 10px 0px;
|
||||
}
|
||||
|
||||
.time_mer {
|
||||
color: #9ece6a;
|
||||
font-size : 40px;
|
||||
font-weight : bold;
|
||||
margin : 20px 0px 0px 0px;
|
||||
}
|
||||
|
||||
.time_day {
|
||||
color: #e0af68;
|
||||
font-size : 30px;
|
||||
font-weight : normal;
|
||||
margin : 0px 0px 20px -20px;
|
||||
}
|
||||
|
||||
/** Uptime ********************************************/
|
||||
.icontimer {
|
||||
color: #bb9af7;
|
||||
font-size : 90px;
|
||||
font-weight : normal;
|
||||
}
|
||||
|
||||
.uphour {
|
||||
color: #c0caf5;
|
||||
font-size : 42px;
|
||||
font-weight : bold;
|
||||
}
|
||||
|
||||
.upmin {
|
||||
color: #c0caf5;
|
||||
font-size : 32px;
|
||||
font-weight : bold;
|
||||
}
|
||||
|
||||
/** Music ***************************************/
|
||||
.album_art {
|
||||
background-size: 240px;
|
||||
min-height: 240px;
|
||||
min-width: 240px;
|
||||
margin: 20px;
|
||||
border-radius: 14px;
|
||||
}
|
||||
|
||||
.song {
|
||||
color: #6BB2C0;
|
||||
font-size : 24px;
|
||||
font-weight : bold;
|
||||
margin : 40px 0px 0px 0px;
|
||||
}
|
||||
|
||||
.artist {
|
||||
color: #e0af68;
|
||||
font-size : 16px;
|
||||
font-weight : normal;
|
||||
margin : 0px 0px 15px 0px;
|
||||
}
|
||||
|
||||
.btn_prev, .btn_play, .btn_next {
|
||||
font-family: Iosevka Nerd Font;
|
||||
}
|
||||
.btn_prev {
|
||||
color: #e0af68;
|
||||
font-size : 32px;
|
||||
font-weight : normal;
|
||||
}
|
||||
.btn_play {
|
||||
color: #9ece6a;
|
||||
font-size : 48px;
|
||||
font-weight : bold;
|
||||
}
|
||||
.btn_next {
|
||||
color: #e0af68;
|
||||
font-size : 32px;
|
||||
font-weight : normal;
|
||||
}
|
||||
|
||||
.music_bar scale trough highlight {
|
||||
all: unset;
|
||||
background-color: #bb9af7;
|
||||
border-radius: 8px;
|
||||
}
|
||||
.music_bar scale trough {
|
||||
all: unset;
|
||||
background-color: #282C34;
|
||||
border-radius: 8px;
|
||||
min-height: 20px;
|
||||
min-width: 310px;
|
||||
margin : 10px 0px 0px 0px;
|
||||
}
|
||||
|
||||
/** Weather ***************************************/
|
||||
.iconweather {
|
||||
font-family: Iosevka Nerd Font;
|
||||
font-size : 120px;
|
||||
font-weight : normal;
|
||||
margin : 15px 0px 0px 30px;
|
||||
}
|
||||
|
||||
.label_temp {
|
||||
color : #7dcfff;
|
||||
font-size : 80px;
|
||||
font-weight : bold;
|
||||
margin : -15px 30px 0px 0px;
|
||||
}
|
||||
|
||||
.label_stat {
|
||||
color : #f7768e;
|
||||
font-size : 38px;
|
||||
font-weight : bold;
|
||||
}
|
||||
|
||||
.label_quote {
|
||||
color : #a9b1d6;
|
||||
font-size : 18px;
|
||||
font-weight : normal;
|
||||
}
|
||||
|
||||
/** Applications ***************************************/
|
||||
.appbox {
|
||||
margin : 15px 0px 0px 25px;
|
||||
}
|
||||
|
||||
.app_fox, .app_telegram, .app_discord, .app_terminal,
|
||||
.app_files, .app_geany, .app_code, .app_gimp, .app_vbox {
|
||||
background-repeat: no-repeat;
|
||||
background-size: 64px;
|
||||
min-height: 64px;
|
||||
min-width: 64px;
|
||||
margin: 8px 8px 0px 8px;
|
||||
}
|
||||
|
||||
.app_fox {}
|
||||
.app_telegram {}
|
||||
.app_discord {}
|
||||
.app_terminal {}
|
||||
.app_files {}
|
||||
.app_geany {}
|
||||
.app_code {}
|
||||
.app_gimp {}
|
||||
.app_vbox {}
|
||||
|
||||
/** Links ***************************************/
|
||||
.iconweb, .iconmail {
|
||||
color: #FFFFFF;
|
||||
font-family: Iosevka Nerd Font;
|
||||
font-size : 70px;
|
||||
font-weight : normal;
|
||||
}
|
||||
.iconmail {
|
||||
color: #DF584E;
|
||||
}
|
||||
|
||||
.github {
|
||||
background-color: #24292E;
|
||||
border-radius: 16px;
|
||||
}
|
||||
.reddit {
|
||||
background-color: #E46231;
|
||||
border-radius: 16px;
|
||||
}
|
||||
.twitter {
|
||||
background-color: #61AAD6;
|
||||
border-radius: 16px;
|
||||
}
|
||||
.youtube {
|
||||
background-color: #DF584E;
|
||||
border-radius: 16px;
|
||||
}
|
||||
.mail {
|
||||
background-color: #FFFFFF;
|
||||
border-radius: 16px;
|
||||
}
|
||||
|
||||
.mailbox {
|
||||
background-color: #E5E5E5;
|
||||
border-radius: 10px;
|
||||
margin: 48px 0px 48px 0px;
|
||||
}
|
||||
.label_mails {
|
||||
color: #404040;
|
||||
font-size : 32px;
|
||||
font-weight : bold;
|
||||
margin: 0px 12px 0px 12px;
|
||||
}
|
||||
|
||||
/** Power buttons ***************************************/
|
||||
.btn_logout, .btn_sleep, .btn_reboot, .btn_poweroff {
|
||||
font-size : 48px;
|
||||
font-weight : bold;
|
||||
}
|
||||
|
||||
.btn_logout {
|
||||
color: #f7768e;
|
||||
}
|
||||
.btn_sleep {
|
||||
color: #9ece6a;
|
||||
}
|
||||
.btn_reboot {
|
||||
color: #e0af68;
|
||||
}
|
||||
.btn_poweroff {
|
||||
color: #7aa2f7;
|
||||
}
|
||||
|
||||
/** Home folders ***************************************/
|
||||
.hddbox {
|
||||
background-color: #282C34;
|
||||
border-radius: 10px;
|
||||
margin : 15px;
|
||||
}
|
||||
.hddicon {
|
||||
color: #7dcfff;
|
||||
font-family: Iosevka Nerd Font;
|
||||
font-size : 70px;
|
||||
font-weight : normal;
|
||||
margin : 25px 20px 25px 40px;
|
||||
}
|
||||
.hdd_label {
|
||||
color: #c0caf5;
|
||||
font-size : 48px;
|
||||
font-weight : bold;
|
||||
margin : 0px 0px 0px 15px;
|
||||
}
|
||||
.fs_sep {
|
||||
color: #15161E;
|
||||
font-size : 36px;
|
||||
font-weight : bold;
|
||||
}
|
||||
|
||||
.iconfolder1, .iconfolder2, .iconfolder3, .iconfolder4, .iconfolder5, .iconfolder6 {
|
||||
font-family: Iosevka Nerd Font;
|
||||
font-size : 32px;
|
||||
font-weight : normal;
|
||||
margin : 0px 0px 0px 75px;
|
||||
}
|
||||
.iconfolder1 {
|
||||
color: #f7768e;
|
||||
}
|
||||
.iconfolder2 {
|
||||
color: #9ece6a;
|
||||
}
|
||||
.iconfolder3 {
|
||||
color: #e0af68;
|
||||
}
|
||||
.iconfolder4 {
|
||||
color: #7dcfff;
|
||||
}
|
||||
.iconfolder5 {
|
||||
color: #bb9af7;
|
||||
}
|
||||
.iconfolder6 {
|
||||
color: #7aa2f7;
|
||||
}
|
||||
|
||||
.label_folder1, .label_folder2, .label_folder3, .label_folder4, .label_folder5, .label_folder6 {
|
||||
font-size : 22px;
|
||||
font-weight : normal;
|
||||
margin : 0px 0px 0px 30px;
|
||||
}
|
||||
.label_folder1 {
|
||||
color: #f7768e;
|
||||
}
|
||||
.label_folder2 {
|
||||
color: #9ece6a;
|
||||
}
|
||||
.label_folder3 {
|
||||
color: #e0af68;
|
||||
}
|
||||
.label_folder4 {
|
||||
color: #7dcfff;
|
||||
}
|
||||
.label_folder5 {
|
||||
color: #bb9af7;
|
||||
}
|
||||
.label_folder6 {
|
||||
color: #7aa2f7;
|
||||
}
|
||||
|
||||
/** EOF *************************************************/}
|
||||
@@ -0,0 +1,61 @@
|
||||
|
||||
(defpoll calendar_day :interval "20h" "date '+%d'")
|
||||
(defpoll calendar_year :interval "20h" "date '+%Y'")
|
||||
(defpoll HOUR :interval "5s" `date +\"%I\"`)
|
||||
(defpoll MIN :interval "5s" `date +\"%M\"`)
|
||||
(defpoll MER :interval "5s" `date +\"%p\"`)
|
||||
(defpoll DAY :interval "5s" `date +\"%A\"`)
|
||||
|
||||
|
||||
|
||||
(defwindow example
|
||||
:monitor 0
|
||||
:geometry (geometry :width "100%"
|
||||
:anchor "top left")
|
||||
(cal)
|
||||
)
|
||||
|
||||
(defwidget cal []
|
||||
(box :class "cal" :orientation "v"
|
||||
(box :class "cal-in"
|
||||
(calendar :class "cal"
|
||||
:day calendar_day
|
||||
:year calendar_year))))
|
||||
|
||||
(defwindow quote
|
||||
:wm-ignore true
|
||||
:monitor 0
|
||||
:windowtype "dock"
|
||||
:geometry (geometry :x "200px"
|
||||
:y "65px"
|
||||
:width "170px"
|
||||
:height "200px"
|
||||
:anchor "top left")
|
||||
(clock))
|
||||
|
||||
|
||||
;(defwindow searchapps
|
||||
; :wm-ignore: true
|
||||
; :monitor 0
|
||||
; :windowtype "normal"
|
||||
; :geometry (geometry :x "40%"
|
||||
; :y "30%"
|
||||
; :width "20%"
|
||||
; :height "50%"
|
||||
; :anchor "top left")
|
||||
;(searchapps))
|
||||
|
||||
(defpoll quote_text :interval "3600s" `curl ifconfig.me`)
|
||||
|
||||
(defwidget clock []
|
||||
(box :class "genwin" :orientation "h" :spacing 50 :space-evenly false :vexpand "false" :hexpand "false"
|
||||
(box :orientation "h" :spacing 0
|
||||
(label :class "time_hour" :valign "start" :wrap "true" :limit-width 25 :text HOUR)
|
||||
(label :class "time_min" :valign "end" :wrap "true" :limit-width 25 :text MIN))
|
||||
(box :orientation "v" :spacing 0
|
||||
(label :class "time_mer" :valign "start" :halign "end" :wrap "true" :limit-width 25 :text MER)
|
||||
(label :class "time_day" :valign "end" :halign "end" :wrap "true" :limit-width 25 :text DAY))))
|
||||
|
||||
(defwidget quote[]
|
||||
(box :class "quote" :orientation "v" :space-evenly false :halign "center" :valign "center"
|
||||
(label :class "quote-text" :text "${quote_text}" :wrap true)))
|
||||
@@ -0,0 +1,124 @@
|
||||
# output=<not set>
|
||||
# font=monospace
|
||||
# dpi-aware=auto
|
||||
use-bold=yes
|
||||
# message=
|
||||
# message-mode=wrap
|
||||
# prompt="> "
|
||||
placeholder="Choose an application from the list"
|
||||
icon-theme=kora-grey
|
||||
icons-enabled=yes
|
||||
# hide-before-typing=no
|
||||
# fields=filename,name,generic
|
||||
# password-character=*
|
||||
# filter-desktop=no
|
||||
# match-mode=fzf
|
||||
# sort-result=yes
|
||||
# match-counter=no
|
||||
# delayed-filter-ms=300
|
||||
# delayed-filter-limit=20000
|
||||
show-actions=no
|
||||
# terminal=$TERMINAL -e # Note: you cannot actually use environment variables here
|
||||
# launch-prefix=<not set>
|
||||
# list-executables-in-path=no
|
||||
|
||||
anchor=center
|
||||
# x-margin=0
|
||||
# y-margin=0
|
||||
# lines=15
|
||||
# minimal-lines=no
|
||||
width=45
|
||||
tabs=2
|
||||
# horizontal-pad=40
|
||||
# vertical-pad=8
|
||||
# inner-pad=0
|
||||
|
||||
# scaling-filter=box
|
||||
# image-size-ratio=0.5
|
||||
|
||||
# gamma-correct-blending=no
|
||||
# line-height=<use font metrics>
|
||||
# letter-spacing=0
|
||||
|
||||
# layer=overlay
|
||||
# keyboard-focus=exclusive
|
||||
# exit-on-keyboard-focus-loss=yes
|
||||
|
||||
# cache=<not set>
|
||||
|
||||
# render-workers=<number of logical CPUs>
|
||||
# match-workers=<number of logical CPUs>
|
||||
|
||||
# enable-mouse=yes
|
||||
|
||||
[colors]
|
||||
background=1e1e2edd
|
||||
text=cdd6f4ff
|
||||
prompt=bac2deff
|
||||
placeholder=7f849cff
|
||||
input=cdd6f4ff
|
||||
match=f38ba8ff
|
||||
selection-text=ff2400
|
||||
selection-match=f38ba8ff
|
||||
counter=7f849cff
|
||||
border=f38ba8ff
|
||||
|
||||
[border]
|
||||
width=0
|
||||
radius=10
|
||||
|
||||
[dmenu]
|
||||
# mode=text # text|index
|
||||
# exit-immediately-if-empty=no
|
||||
|
||||
[key-bindings]
|
||||
# cancel=Escape Control+g Control+c Control+bracketleft
|
||||
# execute=Return KP_Enter Control+y
|
||||
# execute-or-next=Tab
|
||||
# execute-input=Shift+Return Shift+KP_Enter
|
||||
# cursor-left=Left Control+b
|
||||
# cursor-left-word=Control+Left Mod1+b
|
||||
# cursor-right=Right Control+f
|
||||
# cursor-right-word=Control+Right Mod1+f
|
||||
# cursor-home=Home Control+a
|
||||
# cursor-end=End Control+e
|
||||
# delete-line=Control+Shift+BackSpace
|
||||
# delete-prev=BackSpace Control+h
|
||||
# delete-prev-word=Mod1+BackSpace Control+BackSpace Control+w
|
||||
# delete-line-backward=Control+u
|
||||
# delete-next=Delete KP_Delete Control+d
|
||||
# delete-next-word=Mod1+d Control+Delete Control+KP_Delete
|
||||
# delete-line-forward=Control+k
|
||||
# prev=Up Control+p
|
||||
# prev-with-wrap=ISO_Left_Tab
|
||||
# prev-page=Page_Up KP_Page_Up
|
||||
# next=Down Control+n
|
||||
# next-with-wrap=none
|
||||
# next-page=Page_Down KP_Page_Down
|
||||
# expunge=Shift+Delete
|
||||
# clipboard-paste=Control+v XF86Paste
|
||||
# primary-paste=Shift+Insert Shift+KP_Insert
|
||||
|
||||
# custom-N: *dmenu mode only*. Like execute, but with a non-zero
|
||||
# exit-code; custom-1 exits with code 10, custom-2 with 11, custom-3
|
||||
# with 12, and so on.
|
||||
|
||||
# custom-1=Mod1+1
|
||||
# custom-2=Mod1+2
|
||||
# custom-3=Mod1+3
|
||||
# custom-4=Mod1+4
|
||||
# custom-5=Mod1+5
|
||||
# custom-6=Mod1+6
|
||||
# custom-7=Mod1+7
|
||||
# custom-8=Mod1+8
|
||||
# custom-9=Mod1+9
|
||||
# custom-10=Mod1+0
|
||||
# custom-11=Mod1+exclam
|
||||
# custom-12=Mod1+at
|
||||
# custom-13=Mod1+numbersign
|
||||
# custom-14=Mod1+dollar
|
||||
# custom-15=Mod1+percent
|
||||
# custom-16=Mod1+dead_circumflex
|
||||
# custom-17=Mod1+ampersand
|
||||
# custom-18=Mod1+asterix
|
||||
# custom-19=Mod1+parentleft
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,4 @@
|
||||
enable_selector = false
|
||||
selector = "rofi -dmenu -i -p 'Open With: '"
|
||||
term_exec_args = '-e'
|
||||
expand_wildcards = false
|
||||
Executable
+28
@@ -0,0 +1,28 @@
|
||||
#!/bin/sh
|
||||
# Changes the wallpaper to a randomly chosen image in a given directory
|
||||
# at a set interval.
|
||||
|
||||
DEFAULT_INTERVAL=300 # In seconds
|
||||
|
||||
if [ $# -lt 1 ] || [ ! -d "$1" ]; then
|
||||
printf "Usage:\n\t\e[1m%s\e[0m \e[4mDIRECTORY\e[0m [\e[4mINTERVAL\e[0m]\n" "$0"
|
||||
printf "\tChanges the wallpaper to a randomly chosen image in DIRECTORY every\n\tINTERVAL seconds (or every %d seconds if unspecified)." "$DEFAULT_INTERVAL"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# See awww-img(1)
|
||||
RESIZE_TYPE="stretch"
|
||||
export AWWW_TRANSITION_FPS="${AWWW_TRANSITION_FPS:-144}"
|
||||
export AWWW_TRANSITION_STEP="${AWWW_TRANSITION_STEP:-2}"
|
||||
|
||||
while true; do
|
||||
find "$1" -type f \
|
||||
| while read -r img; do
|
||||
echo "$(</dev/urandom tr -dc a-zA-Z0-9 | head -c 8):$img"
|
||||
done \
|
||||
| sort -n | cut -d':' -f2- \
|
||||
| while read -r img; do
|
||||
awww img --resize="$RESIZE_TYPE" "$img"
|
||||
sleep "${2:-$DEFAULT_INTERVAL}"
|
||||
done
|
||||
done
|
||||
@@ -0,0 +1,251 @@
|
||||
-- env vars
|
||||
hl.env("XDG_CURRENT_DESKTOP", "Hyprland")
|
||||
hl.env("XDG_SESSION_TYPE", "wayland")
|
||||
hl.env("XDG_SESSION_DESKTOP", "Hyprland")
|
||||
hl.env("LIBVA_DRIVER_NAME", "nvidia")
|
||||
hl.env("__GLX_VENDOR_LIBRARY_NAME", "nvidia")
|
||||
hl.env("ELECTRON_OZONE_PLATFORM_HINT", "auto")
|
||||
hl.env("QT_QPA_PLATFORM", "wayland;xcb")
|
||||
hl.env("QT_QPA_PLATFORMTHEME", "gtk3")
|
||||
hl.env("XCURSOR_SIZE", "24")
|
||||
hl.env("HYPRCURSOR_SIZE", "24")
|
||||
hl.env("DISPLAY", ":0")
|
||||
hl.env("USE_X11", "false")
|
||||
|
||||
-- monitors
|
||||
hl.monitor({
|
||||
output = "HDMI-A-2",
|
||||
mode = "2560x1440@143.99899",
|
||||
position = "1920x0",
|
||||
scale = "1.25",
|
||||
})
|
||||
|
||||
hl.monitor({
|
||||
output = "DP-4",
|
||||
mode = "1920x1080@143.99",
|
||||
position = "0x0",
|
||||
scale = "auto",
|
||||
})
|
||||
|
||||
local home = os.getenv("HOME")
|
||||
|
||||
hl.on("hyprland.start", function ()
|
||||
-- gentoo specific
|
||||
hl.exec_cmd("/usr/libexec/hyprpolkitagent")
|
||||
hl.exec_cmd("dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP")
|
||||
hl.exec_cmd("hyprpm reload") -- set up plugins
|
||||
|
||||
hl.exec_cmd("hyprctl setcursor Adwaita 24") -- set cursor to be normal
|
||||
hl.exec_cmd("wl-paste --watch cliphist store")
|
||||
hl.exec_cmd("mako")
|
||||
|
||||
hl.exec_cmd("awww-daemon")
|
||||
hl.exec_cmd(home .. "/.config/hypr/awww_randomize.sh " .. home .. "/.wallpapers/2k")
|
||||
hl.exec_cmd("qs -d -p " .. home .. "/.config/quickshell/shell.qml")
|
||||
end)
|
||||
|
||||
-- Refer to https://wiki.hypr.land/Configuring/Basics/Variables/
|
||||
hl.config({
|
||||
general = {
|
||||
gaps_in = 4,
|
||||
gaps_out = 5,
|
||||
|
||||
border_size = 2,
|
||||
|
||||
col = {
|
||||
active_border = "rgba(0DB7D455)",
|
||||
inactive_border = "rgba(595959aa)",
|
||||
},
|
||||
|
||||
resize_on_border = true,
|
||||
no_focus_fallback = true,
|
||||
allow_tearing = true,
|
||||
layout = "scrolling",
|
||||
},
|
||||
|
||||
decoration = {
|
||||
rounding = 10,
|
||||
rounding_power = 2.5,
|
||||
|
||||
shadow = {
|
||||
enabled = false,
|
||||
range = 4,
|
||||
render_power = 3,
|
||||
color = 0xee1a1a1a,
|
||||
},
|
||||
|
||||
blur = {
|
||||
enabled = true,
|
||||
xray = true,
|
||||
size = 6,
|
||||
passes = 1,
|
||||
vibrancy = 0.1696,
|
||||
},
|
||||
|
||||
dim_inactive=true,
|
||||
dim_strength=0.1,
|
||||
dim_special=0.2,
|
||||
},
|
||||
|
||||
input = {
|
||||
kb_layout = "us",
|
||||
follow_mouse = 2,
|
||||
off_window_axis_events = 2,
|
||||
},
|
||||
animations = {
|
||||
enabled = true,
|
||||
},
|
||||
|
||||
misc = {
|
||||
force_default_wallpaper = 0,
|
||||
vrr = 0,
|
||||
disable_hyprland_logo = true,
|
||||
disable_splash_rendering = true,
|
||||
mouse_move_enables_dpms = true,
|
||||
key_press_enables_dpms = true
|
||||
},
|
||||
|
||||
dwindle = {
|
||||
preserve_split = true, -- You probably want this
|
||||
},
|
||||
|
||||
master = {
|
||||
new_status = "master",
|
||||
},
|
||||
|
||||
scrolling = {
|
||||
fullscreen_on_one_column = false,
|
||||
},
|
||||
})
|
||||
|
||||
-- Default curves and animations, see https://wiki.hypr.land/Configuring/Advanced-and-Cool/Animations/
|
||||
hl.curve("easeOutQuint", { type = "bezier", points = { {0.23, 1}, {0.32, 1} } })
|
||||
hl.curve("easeInOutCubic", { type = "bezier", points = { {0.65, 0.05}, {0.36, 1} } })
|
||||
hl.curve("linear", { type = "bezier", points = { {0, 0}, {1, 1} } })
|
||||
hl.curve("almostLinear", { type = "bezier", points = { {0.5, 0.5}, {0.75, 1} } })
|
||||
hl.curve("quick", { type = "bezier", points = { {0.15, 0}, {0.1, 1} } })
|
||||
|
||||
-- Default springs
|
||||
hl.curve("easy", { type = "spring", mass = 1, stiffness = 238.1191, dampening = 24.21279333 })
|
||||
|
||||
hl.animation({ leaf = "global", enabled = true, speed = 10, bezier = "default" })
|
||||
hl.animation({ leaf = "border", enabled = true, speed = 5.39, bezier = "easeOutQuint" })
|
||||
hl.animation({ leaf = "windows", enabled = true, speed = 4.79, spring = "easy" })
|
||||
hl.animation({ leaf = "windowsIn", enabled = true, speed = 4.1, spring = "easy", style = "popin 87%" })
|
||||
hl.animation({ leaf = "windowsOut", enabled = true, speed = 1.49, bezier = "linear", style = "popin 87%" })
|
||||
hl.animation({ leaf = "fadeIn", enabled = true, speed = 1.73, bezier = "almostLinear" })
|
||||
hl.animation({ leaf = "fadeOut", enabled = true, speed = 1.46, bezier = "almostLinear" })
|
||||
hl.animation({ leaf = "fade", enabled = true, speed = 3.03, bezier = "quick" })
|
||||
hl.animation({ leaf = "layers", enabled = true, speed = 3.81, bezier = "easeOutQuint" })
|
||||
hl.animation({ leaf = "layersIn", enabled = true, speed = 4, bezier = "easeOutQuint", style = "fade" })
|
||||
hl.animation({ leaf = "layersOut", enabled = true, speed = 1.5, bezier = "linear", style = "fade" })
|
||||
hl.animation({ leaf = "fadeLayersIn", enabled = true, speed = 1.79, bezier = "almostLinear" })
|
||||
hl.animation({ leaf = "fadeLayersOut", enabled = true, speed = 1.39, bezier = "almostLinear" })
|
||||
hl.animation({ leaf = "workspaces", enabled = true, speed = 1.94, bezier = "almostLinear", style = "fade" })
|
||||
hl.animation({ leaf = "workspacesIn", enabled = true, speed = 1.21, bezier = "almostLinear", style = "fade" })
|
||||
hl.animation({ leaf = "workspacesOut", enabled = true, speed = 1.94, bezier = "almostLinear", style = "fade" })
|
||||
hl.animation({ leaf = "zoomFactor", enabled = true, speed = 7, bezier = "quick" })
|
||||
|
||||
local terminal = "alacritty"
|
||||
local fileManager = "thunar"
|
||||
local menu = "fuzzel"
|
||||
|
||||
local mainMod = "SUPER" -- Sets "Windows" key as main modifier
|
||||
|
||||
-- Example binds, see https://wiki.hypr.land/Configuring/Basics/Binds/ for more
|
||||
hl.bind(mainMod .. " + RETURN", hl.dsp.exec_cmd(terminal))
|
||||
hl.bind(mainMod .. " + D", hl.dsp.exec_cmd(menu))
|
||||
hl.bind(mainMod .. " + E", hl.dsp.exec_cmd(fileManager))
|
||||
|
||||
hl.bind(mainMod .. " + M", hl.dsp.exec_cmd("command -v hyprshutdown >/dev/null 2>&1 && hyprshutdown || hyprctl dispatch 'hl.dsp.exit()'"))
|
||||
hl.bind(mainMod .. " + SPACE", hl.dsp.window.float({ action = "toggle" }))
|
||||
|
||||
hl.bind(mainMod .. " + F", hl.dsp.window.fullscreen_state({ internal="1", client="1", layout_aware=true, action = "toggle"}))
|
||||
hl.bind(mainMod .. " + SHIFT + Q", hl.dsp.window.close())
|
||||
|
||||
-- change focus
|
||||
hl.bind(mainMod .. " + LEFT", hl.dsp.focus({ direction = "left" }))
|
||||
hl.bind(mainMod .. " + RIGHT", hl.dsp.focus({ direction = "right" }))
|
||||
hl.bind(mainMod .. " + UP", hl.dsp.focus({ direction = "up" }))
|
||||
hl.bind(mainMod .. " + DOWN", hl.dsp.focus({ direction = "down" }))
|
||||
|
||||
-- move workspaces
|
||||
hl.bind(mainMod .. " + SHIFT + LEFT", hl.dsp.window.swap({ direction = "left"}))
|
||||
hl.bind(mainMod .. " + SHIFT + RIGHT", hl.dsp.window.swap({ direction = "right"}))
|
||||
hl.bind(mainMod .. " + SHIFT + UP", hl.dsp.window.swap({ direction = "up"}))
|
||||
hl.bind(mainMod .. " + SHIFT + DOWN", hl.dsp.window.swap({ direction = "down"}))
|
||||
|
||||
-- screenshots
|
||||
hl.bind("Print", hl.dsp.exec_cmd("grim -g \"$(slurp)\" ~/$(date + '%Y%m%d-%H%M%S').png")) -- dump to home
|
||||
hl.bind("SUPER + Print", hl.dsp.exec_cmd(
|
||||
"grim -g \"$(slurp)\" - | wl-copy"
|
||||
)) -- copy to clipboard
|
||||
|
||||
-- hy3 settings
|
||||
local hy3 = hl.plugin.hy3
|
||||
hl.bind(mainMod .. " + V", hy3.make_group("v"))
|
||||
hl.bind(mainMod .. " + H", hy3.make_group("h"))
|
||||
hl.bind(mainMod .. " + T", hy3.make_group("tab"))
|
||||
|
||||
hl.bind(mainMod .. " + CTRL + LEFT", hy3.focus_tab({ direction = "left" }))
|
||||
hl.bind(mainMod .. " + CTRL + RIGHT", hy3.focus_tab({ direction = "right" }))
|
||||
|
||||
-- Switch workspaces with mainMod + [0-9]
|
||||
-- Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||
for i = 1, 10 do
|
||||
local key = i % 10 -- 10 maps to key 0
|
||||
hl.bind(mainMod .. " + " .. key, hl.dsp.focus({ workspace = i}))
|
||||
hl.bind(mainMod .. " + SHIFT + " .. key, hl.dsp.window.move({ workspace = i }))
|
||||
end
|
||||
|
||||
-- scratchpad
|
||||
hl.bind(mainMod .. " + MINUS", hl.dsp.workspace.toggle_special("magic"))
|
||||
hl.bind(mainMod .. " + SHIFT + MINUS", hl.dsp.window.move({ workspace = "special:magic" }))
|
||||
|
||||
-- Scroll through existing workspaces with mainMod + scroll
|
||||
hl.bind(mainMod .. " + mouse_down", hl.dsp.focus({ workspace = "e+1" }))
|
||||
hl.bind(mainMod .. " + mouse_up", hl.dsp.focus({ workspace = "e-1" }))
|
||||
|
||||
-- Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
hl.bind(mainMod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true })
|
||||
hl.bind(mainMod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true })
|
||||
|
||||
-- Laptop multimedia keys for volume and LCD brightness
|
||||
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"), { locked = true, repeating = true })
|
||||
hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"), { locked = true, repeating = true })
|
||||
hl.bind("XF86AudioMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"), { locked = true, repeating = true })
|
||||
hl.bind("XF86AudioMicMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"), { locked = true, repeating = true })
|
||||
hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("brightnessctl -e4 -n2 set 5%+"), { locked = true, repeating = true })
|
||||
hl.bind("XF86MonBrightnessDown",hl.dsp.exec_cmd("brightnessctl -e4 -n2 set 5%-"), { locked = true, repeating = true })
|
||||
|
||||
-- Requires playerctl
|
||||
hl.bind("XF86AudioNext", hl.dsp.exec_cmd("playerctl next"), { locked = true })
|
||||
hl.bind("XF86AudioPause", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
|
||||
hl.bind("XF86AudioPlay", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
|
||||
hl.bind("XF86AudioPrev", hl.dsp.exec_cmd("playerctl previous"), { locked = true })
|
||||
|
||||
|
||||
local suppressMaximizeRule = hl.window_rule({
|
||||
-- Ignore maximize requests from all apps. You'll probably like this.
|
||||
name = "suppress-maximize-events",
|
||||
match = { class = ".*" },
|
||||
suppress_event = "maximize",
|
||||
})
|
||||
suppressMaximizeRule:set_enabled(true)
|
||||
|
||||
hl.window_rule({
|
||||
-- Fix some dragging issues with XWayland
|
||||
name = "fix-xwayland-drags",
|
||||
match = {
|
||||
class = "^$",
|
||||
title = "^$",
|
||||
xwayland = true,
|
||||
float = true,
|
||||
fullscreen = false,
|
||||
pin = false,
|
||||
},
|
||||
|
||||
no_focus = true,
|
||||
})
|
||||
|
||||
require("rules")
|
||||
@@ -0,0 +1,34 @@
|
||||
-- floating
|
||||
hl.window_rule({match = {title = "^(Open File)(.*)$" }, center = true})
|
||||
hl.window_rule({match = {title = "^(Open File)(.*)$" }, float = true})
|
||||
hl.window_rule({match = {title = "^(Select a File)(.*)$" }, center = true})
|
||||
hl.window_rule({match = {title = "^(Select a File)(.*)$" }, float = true})
|
||||
hl.window_rule({match = {title = "^(Choose wallpaper)(.*)$" }, center = true})
|
||||
hl.window_rule({match = {title = "^(Choose wallpaper)(.*)$" }, float = true})
|
||||
hl.window_rule({match = {title = "^(Choose wallpaper)(.*)$" }, size = {"(monitor_w*0.60)", "(monitor_h*0.65)"} })
|
||||
hl.window_rule({match = {title = "^(Open Folder)(.*)$" }, center = true})
|
||||
hl.window_rule({match = {title = "^(Open Folder)(.*)$" }, float = true})
|
||||
hl.window_rule({match = {title = "^(Save As)(.*)$" }, center = true})
|
||||
hl.window_rule({match = {title = "^(Save As)(.*)$" }, float = true})
|
||||
hl.window_rule({match = {title = "^(Library)(.*)$" }, center = true})
|
||||
hl.window_rule({match = {title = "^(Library)(.*)$" }, float = true})
|
||||
hl.window_rule({match = {title = "^(File Upload)(.*)$" }, center = true})
|
||||
hl.window_rule({match = {title = "^(File Upload)(.*)$" }, float = true})
|
||||
hl.window_rule({match = {title = "^(.*)(wants to save)$" }, center = true})
|
||||
hl.window_rule({match = {title = "^(.*)(wants to save)$" }, float = true})
|
||||
hl.window_rule({match = {title = "^(.*)(wants to open)$" }, center = true})
|
||||
hl.window_rule({match = {title = "^(.*)(wants to open)$" }, float = true})
|
||||
hl.window_rule({match = {class = "hyprland-share-picker" }, float = true})
|
||||
hl.window_rule({match = {title = "(.*)(Settings)(.*)$" },float = true})
|
||||
|
||||
-- aesthetics
|
||||
hl.layer_rule({
|
||||
match = {namespace = "quickshell"},
|
||||
blur = true,
|
||||
blur_popups = true
|
||||
})
|
||||
|
||||
hl.layer_rule({
|
||||
match = { class = "fuzzel"},
|
||||
blur = true,
|
||||
})
|
||||
@@ -0,0 +1,201 @@
|
||||
# This file has been auto-generated by i3-config-wizard(1).
|
||||
# It will not be overwritten, so edit it as you like.
|
||||
#
|
||||
# Should you change your keyboard layout some time, delete
|
||||
# this file and re-run i3-config-wizard(1).
|
||||
#
|
||||
|
||||
# i3 config file (v4)
|
||||
#
|
||||
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
|
||||
|
||||
set $mod Mod4
|
||||
|
||||
# Font for window titles. Will also be used by the bar unless a different font
|
||||
# is used in the bar {} block below.
|
||||
font pango:Dejavu Sans Mono 12
|
||||
|
||||
# Use pactl to adjust volume in PulseAudio.
|
||||
set $refresh_i3status killall -SIGUSR1 i3status
|
||||
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
|
||||
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
|
||||
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
|
||||
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
|
||||
|
||||
|
||||
# Use Mouse+$mod to drag floating windows to their wanted position
|
||||
floating_modifier $mod
|
||||
|
||||
# start a terminal
|
||||
bindsym $mod+Return exec prime-run alacritty
|
||||
|
||||
# kill focused window
|
||||
bindsym $mod+Shift+q kill
|
||||
|
||||
# custom bindings
|
||||
# start dmenu (a program launcher)
|
||||
bindsym $mod+d exec "rofi -combi-modi window,drun -show combi -modi combi -show-icons"
|
||||
bindsym $mod+p exec bwmenu
|
||||
bindsym --release Print exec --no-startup-id ~/.config/scripts/screenshot-to-clipboard.sh
|
||||
bindsym $mod+Print exec --no-startup-id ~/.config/scripts/screenshot-to-file.sh
|
||||
bindsym $mod+x [urgent=latest] focus
|
||||
bindsym $mod+c exec "rofi -show calc -modi calc -no-show-match -no-sort"
|
||||
# Make the currently focused window a scratchpad
|
||||
bindsym $mod+Shift+minus move scratchpad
|
||||
|
||||
# Show the first scratchpad window
|
||||
bindsym $mod+minus scratchpad show
|
||||
|
||||
# change focus
|
||||
bindsym $mod+j focus left
|
||||
bindsym $mod+k focus down
|
||||
bindsym $mod+l focus up
|
||||
bindsym $mod+semicolon focus right
|
||||
|
||||
# alternatively, you can use the cursor keys:
|
||||
bindsym $mod+Left focus left
|
||||
bindsym $mod+Down focus down
|
||||
bindsym $mod+Up focus up
|
||||
bindsym $mod+Right focus right
|
||||
|
||||
# move focused window
|
||||
bindsym $mod+Shift+j move left
|
||||
bindsym $mod+Shift+k move down
|
||||
bindsym $mod+Shift+l move up
|
||||
bindsym $mod+Shift+semicolon move right
|
||||
|
||||
# alternatively, you can use the cursor keys:
|
||||
bindsym $mod+Shift+Left move left
|
||||
bindsym $mod+Shift+Down move down
|
||||
bindsym $mod+Shift+Up move up
|
||||
bindsym $mod+Shift+Right move right
|
||||
|
||||
# split in horizontal orientation
|
||||
bindsym $mod+h split h
|
||||
|
||||
# split in vertical orientation
|
||||
bindsym $mod+v split v
|
||||
|
||||
# enter fullscreen mode for the focused container
|
||||
bindsym $mod+f fullscreen toggle
|
||||
|
||||
# change container layout (stacked, tabbed, toggle split)
|
||||
bindsym $mod+s layout stacking
|
||||
bindsym $mod+w layout tabbed
|
||||
bindsym $mod+e layout toggle split
|
||||
|
||||
bindsym $mod+Home exec ~/.config/i3/lock.sh
|
||||
|
||||
# toggle tiling / floating
|
||||
bindsym $mod+Shift+space floating toggle
|
||||
|
||||
# change focus between tiling / floating windows
|
||||
bindsym $mod+space focus mode_toggle
|
||||
|
||||
# focus the parent container
|
||||
bindsym $mod+a focus parent
|
||||
|
||||
# focus the child container
|
||||
#bindsym $mod+d focus child
|
||||
|
||||
# Define names for default workspaces for which we configure key bindings later on.
|
||||
# We use variables to avoid repeating the names in multiple places.
|
||||
set $ws1 "1"
|
||||
set $ws2 "2"
|
||||
set $ws3 "3"
|
||||
set $ws4 "4"
|
||||
set $ws5 "5"
|
||||
set $ws6 "6"
|
||||
set $ws7 "7"
|
||||
set $ws8 "8"
|
||||
set $ws9 "9"
|
||||
set $ws10 "10"
|
||||
|
||||
# switch to workspace
|
||||
bindsym $mod+1 workspace number $ws1
|
||||
bindsym $mod+2 workspace number $ws2
|
||||
bindsym $mod+3 workspace number $ws3
|
||||
bindsym $mod+4 workspace number $ws4
|
||||
bindsym $mod+5 workspace number $ws5
|
||||
bindsym $mod+6 workspace number $ws6
|
||||
bindsym $mod+7 workspace number $ws7
|
||||
bindsym $mod+8 workspace number $ws8
|
||||
bindsym $mod+9 workspace number $ws9
|
||||
bindsym $mod+0 workspace number $ws10
|
||||
|
||||
# move focused container to workspace
|
||||
bindsym $mod+Shift+1 move container to workspace number $ws1
|
||||
bindsym $mod+Shift+2 move container to workspace number $ws2
|
||||
bindsym $mod+Shift+3 move container to workspace number $ws3
|
||||
bindsym $mod+Shift+4 move container to workspace number $ws4
|
||||
bindsym $mod+Shift+5 move container to workspace number $ws5
|
||||
bindsym $mod+Shift+6 move container to workspace number $ws6
|
||||
bindsym $mod+Shift+7 move container to workspace number $ws7
|
||||
bindsym $mod+Shift+8 move container to workspace number $ws8
|
||||
bindsym $mod+Shift+9 move container to workspace number $ws9
|
||||
bindsym $mod+Shift+0 move container to workspace number $ws10
|
||||
|
||||
|
||||
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||||
bindsym $mod+Shift+r restart
|
||||
# exit i3 (logs you out of your X session)
|
||||
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
|
||||
|
||||
# resize window (you can also use the mouse for that)
|
||||
mode "resize" {
|
||||
# These bindings trigger as soon as you enter the resize mode
|
||||
|
||||
# Pressing left will shrink the window’s width.
|
||||
# Pressing right will grow the window’s width.
|
||||
# Pressing up will shrink the window’s height.
|
||||
# Pressing down will grow the window’s height.
|
||||
bindsym j resize shrink width 10 px or 10 ppt
|
||||
bindsym k resize grow height 10 px or 10 ppt
|
||||
bindsym l resize shrink height 10 px or 10 ppt
|
||||
bindsym semicolon resize grow width 10 px or 10 ppt
|
||||
|
||||
# same bindings, but for the arrow keys
|
||||
bindsym Left resize shrink width 10 px or 10 ppt
|
||||
bindsym Down resize grow height 10 px or 10 ppt
|
||||
bindsym Up resize shrink height 10 px or 10 ppt
|
||||
bindsym Right resize grow width 10 px or 10 ppt
|
||||
|
||||
# back to normal: Enter or Escape or $mod+r
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
bindsym $mod+r mode "default"
|
||||
}
|
||||
|
||||
bindsym $mod+r mode "resize"
|
||||
|
||||
focus_follows_mouse no
|
||||
#set_from_resource $FOCUS iw3m.color2
|
||||
#set_from_resource $URGENT iw3m.color1
|
||||
#set_from_resource $UNFOCUS iw3m.color7
|
||||
|
||||
#client.focused $FOCUS $FOCUS "#FFFFFF" $FOCUS $FOCUS
|
||||
#client.urgent $URGENT $URGENT "#FFFFFF" $URGENT $URGENT
|
||||
|
||||
# default colors
|
||||
client.focused_inactive #333333 #222222 #888888 #292d2e #222222
|
||||
client.unfocused #333333 #222222 #888888 #292d2e #222222
|
||||
|
||||
title_align center
|
||||
for_window [class="^.*"] border pixel 1
|
||||
for_window [window_role="pop-up"] floating enable
|
||||
for_window [window_role="bubble"] floating enable
|
||||
for_window [window_role="task_dialog"] floating enable
|
||||
for_window [window_role="Preferences"] floating enable
|
||||
for_window [window_type="dialog"] floating enable
|
||||
for_window [window_type="menu"] floating enable
|
||||
|
||||
default_floating_border none
|
||||
hide_edge_borders none
|
||||
gaps inner 0
|
||||
gaps outer 0
|
||||
|
||||
exec_always --no-startup-id ~/.config/wired/start.sh
|
||||
exec_always --no-startup-id feh --bg-scale --randomize ~/.wallpapers/
|
||||
# wal -i ~/.wallpapers
|
||||
#exec_always --no-startup-id ~/.config/dunst/start.sh
|
||||
exec_always --no-startup-id ~/.config/polybar/launch.sh
|
||||
Executable
+39
@@ -0,0 +1,39 @@
|
||||
#!/bin/sh
|
||||
|
||||
BLANK='#00000000'
|
||||
CLEAR='#ffffff22'
|
||||
DEFAULT='#ffffff'
|
||||
TEXT='#ffffff'
|
||||
WRONG='#880000bb'
|
||||
VERIFYING='#089c2f'
|
||||
|
||||
i3lock \
|
||||
--insidever-color=$CLEAR \
|
||||
--ringver-color=$VERIFYING \
|
||||
\
|
||||
--insidewrong-color=$CLEAR \
|
||||
--ringwrong-color=$WRONG \
|
||||
\
|
||||
--inside-color=$BLANK \
|
||||
--ring-color=$DEFAULT \
|
||||
--line-color=$BLANK \
|
||||
--separator-color=$DEFAULT \
|
||||
\
|
||||
--verif-color=$TEXT \
|
||||
--wrong-color=$TEXT \
|
||||
--time-color=$TEXT \
|
||||
--date-color=$TEXT \
|
||||
--layout-color=$TEXT \
|
||||
--keyhl-color=$WRONG \
|
||||
--bshl-color=$WRONG \
|
||||
\
|
||||
--screen 1 \
|
||||
--blur 5 \
|
||||
--clock \
|
||||
--indicator \
|
||||
--radius 150 \
|
||||
--ring-width 3.5 \
|
||||
--time-str="%I:%M:%S %p" \
|
||||
--date-str="%A, %h %e %Y" \
|
||||
--pass-media-keys \
|
||||
--pass-volume-keys \
|
||||
Regular → Executable
+12
-5
@@ -1,8 +1,15 @@
|
||||
dir=~/.dotfiles
|
||||
files="emacs bashrc Xresources"
|
||||
#!/bin/sh
|
||||
dir=$( dirname -- "$0")
|
||||
dir=$( realpath -- "$dir"; )
|
||||
|
||||
cd $dir
|
||||
if [[ -z "${XDG_CONFIG_HOME}" ]]; then
|
||||
CONFIG="${HOME}/.config"
|
||||
else
|
||||
CONFIG="${XDG_CONFIG_HOME}"
|
||||
fi
|
||||
|
||||
for file in $files; do
|
||||
ln -s $dir/$file ~/.$file
|
||||
for file in "${dir}/"* ; do
|
||||
filename=$(basename -- $file)
|
||||
[[ -d "$file" ]] && ln -s $file "$CONFIG/"
|
||||
[[ -f "$file" ]] && ln -s $file "$HOME/.$filename"
|
||||
done
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
background-color=#4A4A4A
|
||||
border-size=0
|
||||
font=Mononoki Nerd Font 14
|
||||
default-timeout=10000
|
||||
max-visible=3
|
||||
layer=overlay
|
||||
border-radius=5
|
||||
Executable
+4
@@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
|
||||
trap "killall -q mako" EXIT
|
||||
mako
|
||||
@@ -0,0 +1,4 @@
|
||||
notify=true
|
||||
|
||||
[notification_format]
|
||||
body = "%album\n%artists"
|
||||
Executable
+33
@@ -0,0 +1,33 @@
|
||||
killall -q playerctl
|
||||
# delete all the copied image files first
|
||||
find "$HOME/.config/ncspot/" -type f -exec sh -c 'file -b --mime-type "$0" | grep -q "^image/" && rm "$0"' {} \;
|
||||
playerctl metadata --follow --format '{{ mpris:trackid }}' | while read -r line; do
|
||||
title=$(playerctl metadata title)
|
||||
album=$(playerctl metadata album)
|
||||
artist=$(playerctl metadata artist)
|
||||
art_url=$(playerctl metadata mpris:artUrl)
|
||||
ap="${art_url##*/}"
|
||||
|
||||
if [[ -n $ap ]]; then
|
||||
cfp="$HOME/.cache/ncspot/covers/$ap"
|
||||
|
||||
# should have a timeout
|
||||
counter=0
|
||||
until [ -e $cfp ]; do
|
||||
sleep 1
|
||||
# counter=$((counter + 1))
|
||||
# if [ "$counter" -eq 60 ]; then
|
||||
# break
|
||||
# fi
|
||||
done
|
||||
MIME_TYPE=$(file -b --mime-type "$cfp")
|
||||
SUB_TYPE=$(echo "$MIME_TYPE" | cut -d'/' -f2)
|
||||
curr_dir="$HOME/.cache/ncspot"
|
||||
nfp="$curr_dir/$ap.$SUB_TYPE"
|
||||
cp $cfp $nfp
|
||||
|
||||
# Extract the subtype (e.g., "jpeg", "plain")
|
||||
SUB_TYPE=$(echo "$MIME_TYPE" | cut -d'/' -f2)
|
||||
notify-send -a ncspot "$title" "$album\n$artist" --hint=string:image-path:$nfp --icon "/usr/share/icons/Papirus-Dark/24x24/devices/audio-speakers.svg"
|
||||
fi
|
||||
done
|
||||
+607
@@ -0,0 +1,607 @@
|
||||
// This config is in the KDL format: https://kdl.dev
|
||||
// "/-" comments out the following node.
|
||||
// Check the wiki for a full description of the configuration:
|
||||
// https://niri-wm.github.io/niri/Configuration:-Introduction
|
||||
|
||||
// Input device configuration.
|
||||
// Find the full list of options on the wiki:
|
||||
// https://niri-wm.github.io/niri/Configuration:-Input
|
||||
environment {
|
||||
XDG_SESSION_TYPE "wayland"
|
||||
MOZ_ENABLE_WAYLAND "1"
|
||||
GTK_USE_PORTAL "1"
|
||||
GDK_BACKEND "wayland"
|
||||
QT_QPA_PLATFORM "wayland"
|
||||
QT_WAYLAND_DISABLE_WINDOWDECORATION "1"
|
||||
QT_QPA_PLATFORMTHEME "qt6ct"
|
||||
SDL_VIDEODRIVER "wayland"
|
||||
ELECTRON_OZONE_PLATFORM_HINT "wayland"
|
||||
XDG_CURRENT_DESKTOP "niri"
|
||||
QT_STYLE_OVERRIDE "kvantum"
|
||||
}
|
||||
|
||||
input {
|
||||
keyboard {
|
||||
xkb {
|
||||
// You can set rules, model, layout, variant and options.
|
||||
// For more information, see xkeyboard-config(7).
|
||||
|
||||
// For example:
|
||||
// layout "us,ru"
|
||||
// options "grp:win_space_toggle,compose:ralt,ctrl:nocaps"
|
||||
|
||||
// If this section is empty, niri will fetch xkb settings
|
||||
// from org.freedesktop.locale1. You can control these using
|
||||
// localectl set-x11-keymap.
|
||||
}
|
||||
|
||||
// Enable numlock on startup, omitting this setting disables it.
|
||||
numlock
|
||||
}
|
||||
|
||||
// Next sections include libinput settings.
|
||||
// Omitting settings disables them, or leaves them at their default values.
|
||||
// All commented-out settings here are examples, not defaults.
|
||||
touchpad {
|
||||
// off
|
||||
tap
|
||||
// dwt
|
||||
// dwtp
|
||||
// drag false
|
||||
// drag-lock
|
||||
natural-scroll
|
||||
// accel-speed 0.2
|
||||
// accel-profile "flat"
|
||||
// scroll-method "two-finger"
|
||||
// disabled-on-external-mouse
|
||||
}
|
||||
|
||||
mouse {
|
||||
// off
|
||||
// natural-scroll
|
||||
// accel-speed 0.2
|
||||
// accel-profile "flat"
|
||||
// scroll-method "no-scroll"
|
||||
}
|
||||
|
||||
trackpoint {
|
||||
// off
|
||||
// natural-scroll
|
||||
// accel-speed 0.2
|
||||
// accel-profile "flat"
|
||||
// scroll-method "on-button-down"
|
||||
// scroll-button 273
|
||||
// scroll-button-lock
|
||||
// middle-emulation
|
||||
}
|
||||
|
||||
// Uncomment this to make the mouse warp to the center of newly focused windows.
|
||||
// warp-mouse-to-focus
|
||||
|
||||
// Focus windows and outputs automatically when moving the mouse into them.
|
||||
// Setting max-scroll-amount="0%" makes it work only on windows already fully on screen.
|
||||
// focus-follows-mouse max-scroll-amount="0%"
|
||||
}
|
||||
|
||||
// You can configure outputs by their name, which you can find
|
||||
// by running `niri msg outputs` while inside a niri instance.
|
||||
// The built-in laptop monitor is usually called "eDP-1".
|
||||
// Find more information on the wiki:
|
||||
// https://niri-wm.github.io/niri/Configuration:-Outputs
|
||||
// Remember to uncomment the node by removing "/-"!
|
||||
|
||||
// Settings that influence how windows are positioned and sized.
|
||||
// Find more information on the wiki:
|
||||
// https://niri-wm.github.io/niri/Configuration:-Layout
|
||||
layout {
|
||||
// Set gaps around windows in logical pixels.
|
||||
gaps 16
|
||||
|
||||
// When to center a column when changing focus, options are:
|
||||
// - "never", default behavior, focusing an off-screen column will keep at the left
|
||||
// or right edge of the screen.
|
||||
// - "always", the focused column will always be centered.
|
||||
// - "on-overflow", focusing a column will center it if it doesn't fit
|
||||
// together with the previously focused column.
|
||||
center-focused-column "never"
|
||||
|
||||
// You can customize the widths that "switch-preset-column-width" (Mod+R) toggles between.
|
||||
preset-column-widths {
|
||||
// Proportion sets the width as a fraction of the output width, taking gaps into account.
|
||||
// For example, you can perfectly fit four windows sized "proportion 0.25" on an output.
|
||||
// The default preset widths are 1/3, 1/2 and 2/3 of the output.
|
||||
proportion 0.33333
|
||||
proportion 0.5
|
||||
proportion 0.66667
|
||||
|
||||
// Fixed sets the width in logical pixels exactly.
|
||||
// fixed 1920
|
||||
}
|
||||
|
||||
// You can also customize the heights that "switch-preset-window-height" (Mod+Ctrl+Shift+R) toggles between.
|
||||
// preset-window-heights { }
|
||||
|
||||
// You can change the default width of the new windows.
|
||||
default-column-width { proportion 0.5; }
|
||||
// If you leave the brackets empty, the windows themselves will decide their initial width.
|
||||
// default-column-width {}
|
||||
|
||||
// By default focus ring and border are rendered as a solid background rectangle
|
||||
// behind windows. That is, they will show up through semitransparent windows.
|
||||
// This is because windows using client-side decorations can have an arbitrary shape.
|
||||
//
|
||||
// If you don't like that, you should uncomment `prefer-no-csd` below.
|
||||
// Niri will draw focus ring and border *around* windows that agree to omit their
|
||||
// client-side decorations.
|
||||
//
|
||||
// Alternatively, you can override it with a window rule called
|
||||
// `draw-border-with-background`.
|
||||
|
||||
// You can change how the focus ring looks.
|
||||
focus-ring {
|
||||
// Uncomment this line to disable the focus ring.
|
||||
// off
|
||||
|
||||
// How many logical pixels the ring extends out from the windows.
|
||||
width 2
|
||||
|
||||
// Colors can be set in a variety of ways:
|
||||
// - CSS named colors: "red"
|
||||
// - RGB hex: "#rgb", "#rgba", "#rrggbb", "#rrggbbaa"
|
||||
// - CSS-like notation: "rgb(255, 127, 0)", rgba(), hsl() and a few others.
|
||||
|
||||
// Color of the ring on the active monitor.
|
||||
active-color "#7fc8ff"
|
||||
|
||||
// Color of the ring on inactive monitors.
|
||||
//
|
||||
// The focus ring only draws around the active window, so the only place
|
||||
// where you can see its inactive-color is on other monitors.
|
||||
inactive-color "#505050"
|
||||
|
||||
// You can also use gradients. They take precedence over solid colors.
|
||||
// Gradients are rendered the same as CSS linear-gradient(angle, from, to).
|
||||
// The angle is the same as in linear-gradient, and is optional,
|
||||
// defaulting to 180 (top-to-bottom gradient).
|
||||
// You can use any CSS linear-gradient tool on the web to set these up.
|
||||
// Changing the color space is also supported, check the wiki for more info.
|
||||
//
|
||||
// active-gradient from="#80c8ff" to="#c7ff7f" angle=45
|
||||
|
||||
// You can also color the gradient relative to the entire view
|
||||
// of the workspace, rather than relative to just the window itself.
|
||||
// To do that, set relative-to="workspace-view".
|
||||
//
|
||||
// inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view"
|
||||
}
|
||||
|
||||
// You can also add a border. It's similar to the focus ring, but always visible.
|
||||
border {
|
||||
// The settings are the same as for the focus ring.
|
||||
// If you enable the border, you probably want to disable the focus ring.
|
||||
off
|
||||
|
||||
width 4
|
||||
active-color "#ffc87f"
|
||||
inactive-color "#505050"
|
||||
|
||||
// Color of the border around windows that request your attention.
|
||||
urgent-color "#9b0000"
|
||||
|
||||
// Gradients can use a few different interpolation color spaces.
|
||||
// For example, this is a pastel rainbow gradient via in="oklch longer hue".
|
||||
//
|
||||
// active-gradient from="#e5989b" to="#ffb4a2" angle=45 relative-to="workspace-view" in="oklch longer hue"
|
||||
|
||||
// inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view"
|
||||
}
|
||||
|
||||
// You can enable drop shadows for windows.
|
||||
shadow {
|
||||
// Uncomment the next line to enable shadows.
|
||||
on
|
||||
|
||||
// By default, the shadow draws only around its window, and not behind it.
|
||||
// Uncomment this setting to make the shadow draw behind its window.
|
||||
//
|
||||
// Note that niri has no way of knowing about the CSD window corner
|
||||
// radius. It has to assume that windows have square corners, leading to
|
||||
// shadow artifacts inside the CSD rounded corners. This setting fixes
|
||||
// those artifacts.
|
||||
//
|
||||
// However, instead you may want to set prefer-no-csd and/or
|
||||
// geometry-corner-radius. Then, niri will know the corner radius and
|
||||
// draw the shadow correctly, without having to draw it behind the
|
||||
// window. These will also remove client-side shadows if the window
|
||||
// draws any.
|
||||
//
|
||||
// draw-behind-window true
|
||||
|
||||
// You can change how shadows look. The values below are in logical
|
||||
// pixels and match the CSS box-shadow properties.
|
||||
|
||||
// Softness controls the shadow blur radius.
|
||||
softness 30
|
||||
|
||||
// Spread expands the shadow.
|
||||
spread 10
|
||||
|
||||
// Offset moves the shadow relative to the window.
|
||||
offset x=0 y=5
|
||||
|
||||
// You can also change the shadow color and opacity.
|
||||
color "#0007"
|
||||
}
|
||||
|
||||
// Struts shrink the area occupied by windows, similarly to layer-shell panels.
|
||||
// You can think of them as a kind of outer gaps. They are set in logical pixels.
|
||||
// Left and right struts will cause the next window to the side to always be visible.
|
||||
// Top and bottom struts will simply add outer gaps in addition to the area occupied by
|
||||
// layer-shell panels and regular gaps.
|
||||
struts {
|
||||
// left 64
|
||||
// right 64
|
||||
// top 64
|
||||
// bottom 64
|
||||
}
|
||||
}
|
||||
|
||||
hotkey-overlay {
|
||||
// Uncomment this line to disable the "Important Hotkeys" pop-up at startup.
|
||||
skip-at-startup
|
||||
}
|
||||
|
||||
// Uncomment this line to ask the clients to omit their client-side decorations if possible.
|
||||
// If the client will specifically ask for CSD, the request will be honored.
|
||||
// Additionally, clients will be informed that they are tiled, removing some client-side rounded corners.
|
||||
// This option will also fix border/focus ring drawing behind some semitransparent windows.
|
||||
// After enabling or disabling this, you need to restart the apps for this to take effect.
|
||||
prefer-no-csd
|
||||
|
||||
// You can change the path where screenshots are saved.
|
||||
// A ~ at the front will be expanded to the home directory.
|
||||
// The path is formatted with strftime(3) to give you the screenshot date and time.
|
||||
screenshot-path "~/Screenshot from %Y-%m-%d %H-%M-%S.png"
|
||||
|
||||
// You can also set this to null to disable saving screenshots to disk.
|
||||
// screenshot-path null
|
||||
|
||||
// Animation settings.
|
||||
// The wiki explains how to configure individual animations:
|
||||
// https://niri-wm.github.io/niri/Configuration:-Animations
|
||||
animations {
|
||||
// Uncomment to turn off all animations.
|
||||
// off
|
||||
|
||||
// Slow down all animations by this factor. Values below 1 speed them up instead.
|
||||
slowdown 0.5
|
||||
}
|
||||
|
||||
// Window rules let you adjust behavior for individual windows.
|
||||
// Find more information on the wiki:
|
||||
// https://niri-wm.github.io/niri/Configuration:-Window-Rules
|
||||
|
||||
// Work around WezTerm's initial configure bug
|
||||
// by setting an empty default-column-width.
|
||||
window-rule {
|
||||
// This regular expression is intentionally made as specific as possible,
|
||||
// since this is the default config, and we want no false positives.
|
||||
// You can get away with just app-id="wezterm" if you want.
|
||||
match app-id=r#"^org\.wezfurlong\.wezterm$"#
|
||||
default-column-width {}
|
||||
}
|
||||
|
||||
// Open the Firefox picture-in-picture player as floating by default.
|
||||
window-rule {
|
||||
// This app-id regular expression will work for both:
|
||||
// - host Firefox (app-id is "firefox")
|
||||
// - Flatpak Firefox (app-id is "org.mozilla.firefox")
|
||||
match app-id=r#"firefox$"# title="^Picture-in-Picture$"
|
||||
open-floating true
|
||||
}
|
||||
|
||||
// Example: block out two password managers from screen capture.
|
||||
// (This example rule is commented out with a "/-" in front.)
|
||||
/-window-rule {
|
||||
match app-id=r#"^org\.keepassxc\.KeePassXC$"#
|
||||
match app-id=r#"^org\.gnome\.World\.Secrets$"#
|
||||
|
||||
block-out-from "screen-capture"
|
||||
|
||||
// Use this instead if you want them visible on third-party screenshot tools.
|
||||
// block-out-from "screencast"
|
||||
}
|
||||
|
||||
// Example: enable rounded corners for all windows.
|
||||
// (This example rule is commented out with a "/-" in front.)
|
||||
window-rule {
|
||||
geometry-corner-radius 12
|
||||
clip-to-geometry true
|
||||
}
|
||||
|
||||
binds {
|
||||
// Keys consist of modifiers separated by + signs, followed by an XKB key name
|
||||
// in the end. To find an XKB name for a particular key, you may use a program
|
||||
// like wev.
|
||||
//
|
||||
// "Mod" is a special modifier equal to Super when running on a TTY, and to Alt
|
||||
// when running as a winit window.
|
||||
//
|
||||
// Most actions that you can bind here can also be invoked programmatically with
|
||||
// `niri msg action do-something`.
|
||||
|
||||
// Mod-Shift-/, which is usually the same as Mod-?,
|
||||
// shows a list of important hotkeys.
|
||||
Mod+Shift+Slash { show-hotkey-overlay; }
|
||||
|
||||
// Suggested binds for running programs: terminal, app launcher, screen locker.
|
||||
Mod+Return hotkey-overlay-title="Open a Terminal: alacritty" { spawn "alacritty"; }
|
||||
Mod+D { spawn "vicinae" "toggle"; }
|
||||
//Mod+D hotkey-overlay-title="Run an Application: rofi" { spawn "rofi" "-combi-modi" "window,drun" "-show" "combi" "-modi" "combi" "-show-icons"; }
|
||||
Mod+Shift+Home hotkey-overlay-title="Lock the Screen: swaylock" { spawn "swaylock" "--screenshots" "--effect-pixelate" "10" "--clock"; }
|
||||
|
||||
Mod+Shift+Minus { spawn "nirius" "scratchpad-toggle"; }
|
||||
Mod+Minus { spawn "nirius" "scratchpad-show"; }
|
||||
|
||||
// Use spawn-sh to run a shell command. Do this if you need pipes, multiple commands, etc.
|
||||
// Note: the entire command goes as a single argument. It's passed verbatim to `sh -c`.
|
||||
// For example, this is a standard bind to toggle the screen reader (orca).
|
||||
Super+Alt+S allow-when-locked=true hotkey-overlay-title=null { spawn-sh "pkill orca || exec orca"; }
|
||||
|
||||
// Example volume keys mappings for PipeWire & WirePlumber.
|
||||
// The allow-when-locked=true property makes them work even when the session is locked.
|
||||
// Using spawn-sh allows to pass multiple arguments together with the command.
|
||||
// "-l 1.0" limits the volume to 100%.
|
||||
XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05+ -l 1.0"; }
|
||||
XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05-"; }
|
||||
XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; }
|
||||
XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; }
|
||||
|
||||
// Example media keys mapping using playerctl.
|
||||
// This will work with any MPRIS-enabled media player.
|
||||
XF86AudioPlay allow-when-locked=true { spawn-sh "playerctl play-pause"; }
|
||||
XF86AudioPause allow-when-locked=true { spawn-sh "playerctl play-pause"; }
|
||||
XF86AudioStop allow-when-locked=true { spawn-sh "playerctl stop"; }
|
||||
XF86AudioPrev allow-when-locked=true { spawn-sh "playerctl previous"; }
|
||||
XF86AudioNext allow-when-locked=true { spawn-sh "playerctl next"; }
|
||||
|
||||
// Example brightness key mappings for brightnessctl.
|
||||
// You can use regular spawn with multiple arguments too (to avoid going through "sh"),
|
||||
// but you need to manually put each argument in separate "" quotes.
|
||||
XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "+10%"; }
|
||||
XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "10%-"; }
|
||||
|
||||
// Open/close the Overview: a zoomed-out view of workspaces and windows.
|
||||
// You can also move the mouse into the top-left hot corner,
|
||||
// or do a four-finger swipe up on a touchpad.
|
||||
Mod+O repeat=false { toggle-overview; }
|
||||
|
||||
Mod+Shift+Q repeat=false { close-window; }
|
||||
|
||||
Mod+Left { focus-column-left; }
|
||||
Mod+Down { focus-window-down; }
|
||||
Mod+Up { focus-window-up; }
|
||||
Mod+Right { focus-column-right; }
|
||||
Mod+H { focus-column-left; }
|
||||
Mod+J { focus-window-down; }
|
||||
Mod+K { focus-window-up; }
|
||||
Mod+L { focus-column-right; }
|
||||
|
||||
Mod+Ctrl+Left { move-column-left; }
|
||||
Mod+Ctrl+Down { move-window-down; }
|
||||
Mod+Ctrl+Up { move-window-up; }
|
||||
Mod+Ctrl+Right { move-column-right; }
|
||||
Mod+Ctrl+H { move-column-left; }
|
||||
Mod+Ctrl+J { move-window-down; }
|
||||
Mod+Ctrl+K { move-window-up; }
|
||||
Mod+Ctrl+L { move-column-right; }
|
||||
|
||||
Mod+Home { focus-column-first; }
|
||||
Mod+End { focus-column-last; }
|
||||
Mod+Ctrl+Home { move-column-to-first; }
|
||||
Mod+Ctrl+End { move-column-to-last; }
|
||||
|
||||
Mod+Shift+Left { focus-monitor-left; }
|
||||
Mod+Shift+Down { focus-monitor-down; }
|
||||
Mod+Shift+Up { focus-monitor-up; }
|
||||
Mod+Shift+Right { focus-monitor-right; }
|
||||
|
||||
Mod+Shift+Ctrl+Left { move-column-to-monitor-left; }
|
||||
Mod+Shift+Ctrl+Down { move-column-to-monitor-down; }
|
||||
Mod+Shift+Ctrl+Up { move-column-to-monitor-up; }
|
||||
Mod+Shift+Ctrl+Right { move-column-to-monitor-right; }
|
||||
Mod+Shift+Ctrl+H { move-column-to-monitor-left; }
|
||||
Mod+Shift+Ctrl+J { move-column-to-monitor-down; }
|
||||
Mod+Shift+Ctrl+K { move-column-to-monitor-up; }
|
||||
Mod+Shift+Ctrl+L { move-column-to-monitor-right; }
|
||||
|
||||
// Alternatively, there are commands to move just a single window:
|
||||
// Mod+Shift+Ctrl+Left { move-window-to-monitor-left; }
|
||||
// ...
|
||||
|
||||
// And you can also move a whole workspace to another monitor:
|
||||
// Mod+Shift+Ctrl+Left { move-workspace-to-monitor-left; }
|
||||
// ...
|
||||
|
||||
Mod+Page_Down { focus-workspace-down; }
|
||||
Mod+Page_Up { focus-workspace-up; }
|
||||
Mod+U { focus-workspace-down; }
|
||||
Mod+I { focus-workspace-up; }
|
||||
Mod+Ctrl+Page_Down { move-column-to-workspace-down; }
|
||||
Mod+Ctrl+Page_Up { move-column-to-workspace-up; }
|
||||
Mod+Ctrl+U { move-column-to-workspace-down; }
|
||||
Mod+Ctrl+I { move-column-to-workspace-up; }
|
||||
|
||||
// Alternatively, there are commands to move just a single window:
|
||||
// Mod+Ctrl+Page_Down { move-window-to-workspace-down; }
|
||||
// ...
|
||||
|
||||
Mod+Shift+Page_Down { move-workspace-down; }
|
||||
Mod+Shift+Page_Up { move-workspace-up; }
|
||||
Mod+Shift+U { move-workspace-down; }
|
||||
Mod+Shift+I { move-workspace-up; }
|
||||
|
||||
// You can bind mouse wheel scroll ticks using the following syntax.
|
||||
// These binds will change direction based on the natural-scroll setting.
|
||||
//
|
||||
// To avoid scrolling through workspaces really fast, you can use
|
||||
// the cooldown-ms property. The bind will be rate-limited to this value.
|
||||
// You can set a cooldown on any bind, but it's most useful for the wheel.
|
||||
Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
|
||||
Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
|
||||
Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; }
|
||||
Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; }
|
||||
|
||||
Mod+WheelScrollRight { focus-column-right; }
|
||||
Mod+WheelScrollLeft { focus-column-left; }
|
||||
Mod+Ctrl+WheelScrollRight { move-column-right; }
|
||||
Mod+Ctrl+WheelScrollLeft { move-column-left; }
|
||||
|
||||
// Usually scrolling up and down with Shift in applications results in
|
||||
// horizontal scrolling; these binds replicate that.
|
||||
Mod+Shift+WheelScrollDown { focus-column-right; }
|
||||
Mod+Shift+WheelScrollUp { focus-column-left; }
|
||||
Mod+Ctrl+Shift+WheelScrollDown { move-column-right; }
|
||||
Mod+Ctrl+Shift+WheelScrollUp { move-column-left; }
|
||||
|
||||
// Similarly, you can bind touchpad scroll "ticks".
|
||||
// Touchpad scrolling is continuous, so for these binds it is split into
|
||||
// discrete intervals.
|
||||
// These binds are also affected by touchpad's natural-scroll, so these
|
||||
// example binds are "inverted", since we have natural-scroll enabled for
|
||||
// touchpads by default.
|
||||
// Mod+TouchpadScrollDown { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02+"; }
|
||||
// Mod+TouchpadScrollUp { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02-"; }
|
||||
|
||||
// You can refer to workspaces by index. However, keep in mind that
|
||||
// niri is a dynamic workspace system, so these commands are kind of
|
||||
// "best effort". Trying to refer to a workspace index bigger than
|
||||
// the current workspace count will instead refer to the bottommost
|
||||
// (empty) workspace.
|
||||
//
|
||||
// For example, with 2 workspaces + 1 empty, indices 3, 4, 5 and so on
|
||||
// will all refer to the 3rd workspace.
|
||||
Mod+1 { focus-workspace 1; }
|
||||
Mod+2 { focus-workspace 2; }
|
||||
Mod+3 { focus-workspace 3; }
|
||||
Mod+4 { focus-workspace 4; }
|
||||
Mod+5 { focus-workspace 5; }
|
||||
Mod+6 { focus-workspace 6; }
|
||||
Mod+7 { focus-workspace 7; }
|
||||
Mod+8 { focus-workspace 8; }
|
||||
Mod+9 { focus-workspace 9; }
|
||||
Mod+Ctrl+1 { move-column-to-workspace 1; }
|
||||
Mod+Ctrl+2 { move-column-to-workspace 2; }
|
||||
Mod+Ctrl+3 { move-column-to-workspace 3; }
|
||||
Mod+Ctrl+4 { move-column-to-workspace 4; }
|
||||
Mod+Ctrl+5 { move-column-to-workspace 5; }
|
||||
Mod+Ctrl+6 { move-column-to-workspace 6; }
|
||||
Mod+Ctrl+7 { move-column-to-workspace 7; }
|
||||
Mod+Ctrl+8 { move-column-to-workspace 8; }
|
||||
Mod+Ctrl+9 { move-column-to-workspace 9; }
|
||||
|
||||
// Alternatively, there are commands to move just a single window:
|
||||
// Mod+Ctrl+1 { move-window-to-workspace 1; }
|
||||
|
||||
// Switches focus between the current and the previous workspace.
|
||||
// Mod+Tab { focus-workspace-previous; }
|
||||
|
||||
// The following binds move the focused window in and out of a column.
|
||||
// If the window is alone, they will consume it into the nearby column to the side.
|
||||
// If the window is already in a column, they will expel it out.
|
||||
Mod+BracketLeft { consume-or-expel-window-left; }
|
||||
Mod+BracketRight { consume-or-expel-window-right; }
|
||||
|
||||
// Consume one window from the right to the bottom of the focused column.
|
||||
Mod+Comma { consume-window-into-column; }
|
||||
// Expel the bottom window from the focused column to the right.
|
||||
Mod+Period { expel-window-from-column; }
|
||||
|
||||
// Cycle through widths set in preset-column-widths.
|
||||
Mod+R { switch-preset-column-width; }
|
||||
// Cycling through the presets in reverse order is also possible.
|
||||
Mod+Shift+R { switch-preset-column-width-back; }
|
||||
|
||||
Mod+Ctrl+Shift+R { switch-preset-window-height; }
|
||||
Mod+Ctrl+R { reset-window-height; }
|
||||
|
||||
Mod+F { maximize-column; }
|
||||
Mod+Shift+F { fullscreen-window; }
|
||||
|
||||
// While maximize-column leaves gaps and borders around the window,
|
||||
// maximize-window-to-edges doesn't: the window expands to the edges of the screen.
|
||||
// This bind corresponds to normal window maximizing,
|
||||
// e.g. by double-clicking on the titlebar.
|
||||
Mod+M { maximize-window-to-edges; }
|
||||
|
||||
Mod+N { spawn "swaync-client" "-t" "-sw"; }
|
||||
// Expand the focused column to space not taken up by other fully visible columns.
|
||||
// Makes the column "fill the rest of the space".
|
||||
Mod+Ctrl+F { expand-column-to-available-width; }
|
||||
|
||||
Mod+C { center-column; }
|
||||
|
||||
// Center all fully visible columns on screen.
|
||||
Mod+Ctrl+C { center-visible-columns; }
|
||||
|
||||
//Mod+Minus { set-column-width "-10%"; }
|
||||
//Mod+Equal { set-column-width "+10%"; }
|
||||
|
||||
// Finer height adjustments when in column with other windows.
|
||||
//Mod+Shift+Minus { set-window-height "-10%"; }
|
||||
//Mod+Shift+Equal { set-window-height "+10%"; }
|
||||
|
||||
// Move the focused window between the floating and the tiling layout.
|
||||
Mod+Space { toggle-window-floating; }
|
||||
Mod+Shift+Space { switch-focus-between-floating-and-tiling; }
|
||||
|
||||
// Toggle tabbed column display mode.
|
||||
// Windows in this column will appear as vertical tabs,
|
||||
// rather than stacked on top of each other.
|
||||
Mod+W { toggle-column-tabbed-display; }
|
||||
|
||||
// Actions to switch layouts.
|
||||
// Note: if you uncomment these, make sure you do NOT have
|
||||
// a matching layout switch hotkey configured in xkb options above.
|
||||
// Having both at once on the same hotkey will break the switching,
|
||||
// since it will switch twice upon pressing the hotkey (once by xkb, once by niri).
|
||||
// Mod+Space { switch-layout "next"; }
|
||||
// Mod+Shift+Space { switch-layout "prev"; }
|
||||
|
||||
Print { screenshot; }
|
||||
Ctrl+Print { screenshot-screen; }
|
||||
Alt+Print { screenshot-window; }
|
||||
|
||||
// Applications such as remote-desktop clients and software KVM switches may
|
||||
// request that niri stops processing the keyboard shortcuts defined here
|
||||
// so they may, for example, forward the key presses as-is to a remote machine.
|
||||
// It's a good idea to bind an escape hatch to toggle the inhibitor,
|
||||
// so a buggy application can't hold your session hostage.
|
||||
//
|
||||
// The allow-inhibiting=false property can be applied to other binds as well,
|
||||
// which ensures niri always processes them, even when an inhibitor is active.
|
||||
Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
|
||||
|
||||
// The quit action will show a confirmation dialog to avoid accidental exits.
|
||||
Mod+Shift+E { quit; }
|
||||
//Ctrl+Alt+Delete { quit; }
|
||||
|
||||
// Powers off the monitors. To turn them back on, do any input like
|
||||
// moving the mouse or pressing any other key.
|
||||
Mod+Shift+P { power-off-monitors; }
|
||||
}
|
||||
|
||||
spawn-at-startup "waybar"
|
||||
spawn-at-startup "udiskie" "--tray"
|
||||
spawn-at-startup "swaync"
|
||||
spawn-sh-at-startup "wl-paste --watch cliphist store"
|
||||
spawn-sh-at-startup "~/.config/scripts/set_wallpaper.sh"
|
||||
spawn-sh-at-startup "~/.config/scripts/import_gsettings.sh"
|
||||
spawn-sh-at-startup "niriusd"
|
||||
spawn-sh-at-startup "vicinae server"
|
||||
// forces running on nvidia card
|
||||
debug {
|
||||
render-drm-device "/dev/dri/renderD128"
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
## LSP
|
||||
Get type definition | <space>D
|
||||
Rename symbol | <space>rn
|
||||
Code action | <space>ca
|
||||
Find references | gr
|
||||
Format file | <space>f
|
||||
Goto declaration | gD
|
||||
Goto definition | gd
|
||||
Toggle hover over symbol | K
|
||||
Goto implementation | gi
|
||||
Get signature | <C-k>
|
||||
Add folder to workspace | <space>wa
|
||||
Remove folder from workspace | <space>wr
|
||||
List workspace folders | <space>wl
|
||||
|
||||
## Gitsigns
|
||||
Toggle deleted | <leader>td
|
||||
Diff | <leader>hd
|
||||
Preview hunk | <leader>hp
|
||||
Reset hunk | <leader>hr
|
||||
|
||||
## Comment
|
||||
Line (normal & visual mode )| gc
|
||||
Block (normal & visual mode) | gb
|
||||
At the end of a line | gcA
|
||||
|
||||
## Surround
|
||||
With () | ysiw)
|
||||
With "" | ys$"
|
||||
Del [] | ds]
|
||||
Del HTML | dst
|
||||
'' -> "" & "" -> '' | cs'"
|
||||
Change HTML tag to [TAG] | cst[TAG]<CR>
|
||||
Del () in fn call; fn(param) -> param | dsf
|
||||
|
||||
## Dial
|
||||
Increment | <C-a>
|
||||
Decrement | <C-x>
|
||||
|
||||
## Misc
|
||||
Outline | <leader>o
|
||||
Trouble | <leader>xx
|
||||
Find in project | <leader>f
|
||||
Open filetree | <leader>v
|
||||
Edit luaconfig | <leader>ec
|
||||
Source luaconfig | <leader>sc
|
||||
Open diagnostic info in floating window |<leader>dd
|
||||
@@ -0,0 +1,86 @@
|
||||
-- some basic options
|
||||
local vim = vim
|
||||
local fn = vim.fn
|
||||
vim.g.mapleader = "\\"
|
||||
vim.g.maplocalleader = "\\"
|
||||
vim.g.noswapfile = true
|
||||
vim.g.python3_host_prog = fn.exepath("python3")
|
||||
|
||||
vim.opt.tabstop = 4
|
||||
vim.opt.shiftwidth = 4
|
||||
vim.opt.softtabstop = 2
|
||||
vim.opt.expandtab = true
|
||||
vim.opt.termguicolors = true
|
||||
vim.opt.autoindent = true
|
||||
vim.opt.smartindent = true
|
||||
vim.opt.smarttab = true
|
||||
vim.opt.number = true
|
||||
vim.opt.hlsearch = false
|
||||
vim.opt.wrap = true
|
||||
vim.opt.linebreak = true
|
||||
vim.opt.showmatch = true
|
||||
vim.opt.completeopt = { 'menu', 'menuone', 'noselect', 'noinsert' }
|
||||
vim.opt.shortmess = vim.opt.shortmess + "c"
|
||||
vim.opt.autochdir = true
|
||||
vim.opt.spelllang = 'en_us'
|
||||
vim.opt.foldmethod = "expr"
|
||||
vim.opt.foldexpr = "nvim_treesitter#foldexpr()"
|
||||
|
||||
vim.o.foldenable = false
|
||||
vim.o.laststatus = 3
|
||||
vim.o.cmdheight = 0 -- hides commandbar when not in use, looks ok
|
||||
vim.o.hidden = true
|
||||
vim.o.signcolumn = 'auto'
|
||||
-- vim.o.breakindent = false -- I think this looks bad
|
||||
vim.o.errorbells = true
|
||||
vim.o.clipboard = "unnamedplus"
|
||||
vim.o.mouse = 'a'
|
||||
vim.o.mousemoveevent = true
|
||||
vim.wo.cursorline = true
|
||||
|
||||
vim.api.nvim_create_user_command('W', 'write', {})
|
||||
|
||||
function map(mode, shortcut, command)
|
||||
vim.api.nvim_set_keymap(mode, shortcut, command, { noremap = true, silent = true })
|
||||
end
|
||||
|
||||
-- normal mode map
|
||||
function nmap(shortcut, command)
|
||||
map('n', shortcut, command)
|
||||
end
|
||||
|
||||
-- insert mode map
|
||||
function imap(shortcut, command)
|
||||
map('i', shortcut, command)
|
||||
end
|
||||
|
||||
nmap("<leader>ec", ':edit ' .. vim.fn.stdpath('config') .. '/init.lua<CR>')
|
||||
|
||||
-- toggle terminal in both modes
|
||||
nmap("<leader>t", "<cmd>FloatermToggle<cr>")
|
||||
map("t", "<leader>t", "<cmd>FloatermToggle<cr>")
|
||||
nmap("<leader>dd", "<cmd>lua vim.diagnostic.open_float() <CR>")
|
||||
|
||||
-- Bootstrap lazy.nvim
|
||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
|
||||
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
|
||||
if vim.v.shell_error ~= 0 then
|
||||
vim.api.nvim_echo({
|
||||
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
|
||||
{ out, "WarningMsg" },
|
||||
{ "\nPress any key to exit..." },
|
||||
}, true, {})
|
||||
vim.fn.getchar()
|
||||
os.exit(1)
|
||||
end
|
||||
end
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
require("lazy").setup({
|
||||
spec = {
|
||||
{ import = "plugins" }
|
||||
},
|
||||
checker = { enabled = true }
|
||||
})
|
||||
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
|
||||
"LuaSnip": { "branch": "master", "commit": "0abc8f390b278c3b4aabc4c004ac8a088b65cf24" },
|
||||
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
|
||||
"cheatsheet.nvim": { "branch": "master", "commit": "9716f9aaa94dd1fd6ce59b5aae0e5f25e2a463ef" },
|
||||
"clangd_extensions.nvim": { "branch": "main", "commit": "78c2ecd659d54972be17aa6ba2deac3c53223b80" },
|
||||
"cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" },
|
||||
"cmp-calc": { "branch": "main", "commit": "5947b412da67306c5b68698a02a846760059be2e" },
|
||||
"cmp-cmdline": { "branch": "main", "commit": "d126061b624e0af6c3a556428712dd4d4194ec6d" },
|
||||
"cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" },
|
||||
"cmp-nvim-lua": { "branch": "main", "commit": "e3a22cb071eb9d6508a156306b102c45cd2d573d" },
|
||||
"cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" },
|
||||
"cmp-spell": { "branch": "master", "commit": "694a4e50809d6d645c1ea29015dad0c293f019d6" },
|
||||
"dressing.nvim": { "branch": "master", "commit": "2d7c2db2507fa3c4956142ee607431ddb2828639" },
|
||||
"fidget.nvim": { "branch": "main", "commit": "6f793b2bcd2d35e201c09520f698bb763220908a" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" },
|
||||
"gitsigns.nvim": { "branch": "main", "commit": "31d6fb2d618bca1482b9f274751ead5f03461408" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
|
||||
"lualine.nvim": { "branch": "master", "commit": "221ce6b2d999187044529f49da6554a92f740a96" },
|
||||
"mini.icons": { "branch": "main", "commit": "98faae31e9be1cc054ae63485e58ceb185efcad0" },
|
||||
"neogen": { "branch": "main", "commit": "23e7e9f883d01289ebd90e98025acc860ea26366" },
|
||||
"nightfox.nvim": { "branch": "main", "commit": "4dacd3f0185a2227bdf3b6c0975a8f0bf87cac9a" },
|
||||
"none-ls-extras.nvim": { "branch": "main", "commit": "9a8b8a9aeb43382e5aaf49b00b7cfb5d42d32118" },
|
||||
"none-ls.nvim": { "branch": "main", "commit": "c4b82bb63b13856ba4d6b971b7aad3bb38fc6fe2" },
|
||||
"nvim-cmp": { "branch": "main", "commit": "2ffe79f1f021def8dd1fcd81deb16f1bb0d989f3" },
|
||||
"nvim-colorizer.lua": { "branch": "master", "commit": "72a05f62c52241bc7441c820eb53946f92b2e6a4" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "4267d26e60323a45e18f8e7a63a964cc8f53ca4e" },
|
||||
"nvim-surround": { "branch": "main", "commit": "8b47db616ef658b8fc27e61db2896aa2f40134de" },
|
||||
"nvim-tree.lua": { "branch": "master", "commit": "b2aadda94b107480c48e548d6db51c6840b7b33c" },
|
||||
"nvim-treesitter": { "branch": "main", "commit": "c9f9ed6c1892f629ea399f4ee7905f2686fa13f2" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "2ae6958df7ced50baac5035cec0c15799eedfbf7" },
|
||||
"outline.nvim": { "branch": "main", "commit": "2a132953b944561d45b52e4541ebfff71934a742" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "74b06c6c75e4eeb3108ec01852001636d85a932b" },
|
||||
"popup.nvim": { "branch": "master", "commit": "b7404d35d5d3548a82149238289fa71f7f6de4ac" },
|
||||
"roslyn.nvim": { "branch": "main", "commit": "7d8c166a0c70473ffa558d4d2430769d581fa8dd" },
|
||||
"telescope.nvim": { "branch": "master", "commit": "427b576c16792edad01a92b89721d923c19ad60f" },
|
||||
"vim-floaterm": { "branch": "master", "commit": "bb4ba7952e906408e1f83b215f55ffe57efcade6" },
|
||||
"vim-illuminate": { "branch": "master", "commit": "91313e598ca62e110bc71535c49069b66b9883c9" },
|
||||
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
|
||||
}
|
||||
@@ -0,0 +1,111 @@
|
||||
return {
|
||||
'nvim-lua/plenary.nvim',
|
||||
--{
|
||||
-- 'RRethy/vim-illuminate',
|
||||
-- event = 'LspAttach'
|
||||
--},
|
||||
{
|
||||
'voldikss/vim-floaterm',
|
||||
cmd = 'FloatermToggle',
|
||||
},
|
||||
'j-hui/fidget.nvim',
|
||||
'echasnovski/mini.icons',
|
||||
'nvim-tree/nvim-web-devicons',
|
||||
'numToStr/Comment.nvim',
|
||||
'kylechui/nvim-surround',
|
||||
'stevearc/dressing.nvim',
|
||||
{
|
||||
'nvim-treesitter/nvim-treesitter',
|
||||
build = ':TSUpdate',
|
||||
opts = {
|
||||
highlight = {
|
||||
enable = true
|
||||
},
|
||||
}
|
||||
},
|
||||
{
|
||||
'nvim-tree/nvim-tree.lua',
|
||||
dependencies = "nvim-tree/nvim-web-devicons",
|
||||
init = function()
|
||||
-- disables netrw
|
||||
vim.g.loaded_netrw = 1
|
||||
vim.g.loaded_netrwPlugin = 1
|
||||
end,
|
||||
opts = {
|
||||
hijack_cursor = true,
|
||||
disable_netrw = true,
|
||||
select_prompts = true,
|
||||
renderer = {
|
||||
add_trailing = true,
|
||||
hidden_display = "all",
|
||||
highlight_opened_files = "icon"
|
||||
}
|
||||
},
|
||||
keys = {
|
||||
{ "<leader>v", "<cmd>NvimTreeToggle<cr>" }
|
||||
}
|
||||
},
|
||||
{
|
||||
"folke/which-key.nvim",
|
||||
opts = { preset = "modern" }
|
||||
},
|
||||
{
|
||||
"hedyhli/outline.nvim",
|
||||
event = "LspAttach",
|
||||
cmd = { "Outline", "OutlineOpen" },
|
||||
keys = {
|
||||
{ "<leader>o", "<cmd>Outline<CR>", desc = "Show outline" }
|
||||
},
|
||||
config = function()
|
||||
-- https://github.com/hedyhli/outline.nvim
|
||||
-- setup call required for this to work!
|
||||
require("outline").setup {}
|
||||
end
|
||||
},
|
||||
{
|
||||
'nvim-telescope/telescope.nvim',
|
||||
dependencies = { 'nvim-lua/plenary.nvim' },
|
||||
keys = {
|
||||
{ "<leader>ff", "<cmd>Telescope live_grep<cr>", desc = "Fuzzy grep across workspace" },
|
||||
{ "<leader>fb", "<cmd>Telescope buffers<cr>", desc = "Find buffer" },
|
||||
{ "<leader>fp", "<cmd>lua require'telescope.builtin'.git_files{}<cr>", desc = "Find in project" },
|
||||
{ "<leader>p", "<cmd>Telescope diagnostics<cr>", desc = "Show diagnostics for buffer" }
|
||||
}
|
||||
},
|
||||
{
|
||||
'catgoose/nvim-colorizer.lua',
|
||||
opts = {
|
||||
'css',
|
||||
'scss',
|
||||
'javascript',
|
||||
'toml',
|
||||
'python'
|
||||
}
|
||||
},
|
||||
{
|
||||
'lewis6991/gitsigns.nvim',
|
||||
event = { "BufReadPre", "BufNewFile" },
|
||||
keys = {
|
||||
{ '<leader>hd', '<cmd>Gitsigns diffthis<cr>', desc = "Show Git diff" },
|
||||
{ '<leader>hr', '<cmd>Gitsigns reset_hunk<cr>', desc = "Git reset hunk" },
|
||||
{ '<leader>td', '<cmd>Gitsigns toggle_deleted<cr>', desc = 'Git toggle deleted' }
|
||||
}
|
||||
},
|
||||
{
|
||||
'sudormrfbin/cheatsheet.nvim',
|
||||
dependencies = {
|
||||
'nvim-telescope/telescope.nvim',
|
||||
'nvim-lua/popup.nvim',
|
||||
'nvim-lua/plenary.nvim',
|
||||
}
|
||||
},
|
||||
--[[{
|
||||
'pwntester/octo.nvim',
|
||||
event = { "BufReadPre", "BufNewFile" },
|
||||
dependencies = {
|
||||
'nvim-lua/plenary.nvim',
|
||||
'nvim-telescope/telescope.nvim',
|
||||
'nvim-tree/nvim-web-devicons',
|
||||
},
|
||||
}]]
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
return {
|
||||
'akinsho/bufferline.nvim',
|
||||
version = "*",
|
||||
event = { "BufReadPre", "BufNewFile" },
|
||||
dependencies = 'nvim-tree/nvim-web-devicons',
|
||||
config = function()
|
||||
local bufferline = require('bufferline')
|
||||
|
||||
bufferline.setup({
|
||||
options = {
|
||||
style_preset = bufferline.style_preset.no_italic,
|
||||
offsets = {
|
||||
{
|
||||
filetype = "NvimTree",
|
||||
text = "Files",
|
||||
highlight = "Directory",
|
||||
separator = true
|
||||
},
|
||||
},
|
||||
hover = {
|
||||
enabled = true,
|
||||
delay = 0,
|
||||
reveal = { 'close' }
|
||||
},
|
||||
show_close_icon = false,
|
||||
separator_style = "slope",
|
||||
diagnostics = "nvim_lsp",
|
||||
}
|
||||
})
|
||||
end
|
||||
,
|
||||
keys = {
|
||||
{ "<leader>b", "<cmd>BufferLineCyclePrev<cr>", desc = "Go to previous tab" },
|
||||
{ "<leader>n", "<cmd>BufferLineCycleNext<cr>", desc = "Go to next tab" },
|
||||
{ "<leader>gb", "<cmd>BufferLinePick<cr>", desc = "Pick tab" },
|
||||
{ "<leader>w", "<cmd>bdelete!<cr>", desc = "Close tab" }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
return {
|
||||
{
|
||||
"EdenEast/nightfox.nvim",
|
||||
priority = 1000,
|
||||
config = function()
|
||||
require("nightfox").setup({
|
||||
palettes = {
|
||||
carbonfox = {
|
||||
bg1 = "#0C0C0C",
|
||||
}
|
||||
}
|
||||
})
|
||||
vim.cmd.colorscheme("carbonfox")
|
||||
end
|
||||
},
|
||||
}
|
||||
@@ -0,0 +1,301 @@
|
||||
local fmt_group = vim.api.nvim_create_augroup("Lspformatting", { clear = true })
|
||||
|
||||
local on_attach = function(event)
|
||||
local id = vim.tbl_get(event, 'data', 'client_id')
|
||||
local client = id and vim.lsp.get_client_by_id(id)
|
||||
local bufnr = event.buf
|
||||
|
||||
if (not bufnr) then
|
||||
return
|
||||
end
|
||||
|
||||
require 'illuminate'.on_attach(client)
|
||||
|
||||
-- Enable completion triggered by <c-x><c-o>
|
||||
vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
|
||||
-- Mappings.
|
||||
-- See `:help vim.lsp.*` for documentation on any of the below functions
|
||||
local bufopts = { noremap = true, silent = true, buffer = bufnr }
|
||||
vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts)
|
||||
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts)
|
||||
vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts)
|
||||
vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, bufopts)
|
||||
vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, bufopts)
|
||||
vim.keymap.set('n', '<space>wa', vim.lsp.buf.add_workspace_folder, bufopts)
|
||||
vim.keymap.set('n', '<space>wr', vim.lsp.buf.remove_workspace_folder, bufopts)
|
||||
vim.keymap.set('n', '<space>wl', function()
|
||||
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
|
||||
end, bufopts)
|
||||
vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition, bufopts)
|
||||
vim.keymap.set('n', '<space>rn', vim.lsp.buf.rename, bufopts)
|
||||
vim.keymap.set('n', '<space>ca', vim.lsp.buf.code_action, bufopts)
|
||||
vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts)
|
||||
vim.keymap.set('n', '<space>f', '<cmd>lua vim.lsp.buf.format({ async = true })<CR>', bufopts)
|
||||
|
||||
-- format on save does not work for python for some reason
|
||||
if client.supports_method("textDocument/formatting") then
|
||||
vim.api.nvim_clear_autocmds({ group = fmt_group, buffer = bufnr })
|
||||
vim.api.nvim_create_autocmd("BufWritePre", {
|
||||
group = fmt_group,
|
||||
buffer = bufnr,
|
||||
callback = function()
|
||||
vim.lsp.buf.format({
|
||||
async = false,
|
||||
bufnr = bufnr,
|
||||
timeout_ms = 10000,
|
||||
})
|
||||
end
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
vim.api.nvim_create_autocmd('LspAttach', {
|
||||
group = vim.api.nvim_create_augroup('LspAttachGroup', { clear = true }),
|
||||
callback = on_attach,
|
||||
})
|
||||
|
||||
local on_leave_group = vim.api.nvim_create_augroup("OnLeaveGroup", {})
|
||||
vim.api.nvim_create_autocmd("VimLeave", {
|
||||
group = on_leave_group,
|
||||
command = "silent !killall -q eslint_d",
|
||||
})
|
||||
|
||||
vim.diagnostic.config({
|
||||
signs = {
|
||||
text = {
|
||||
[vim.diagnostic.severity.ERROR] = '✘',
|
||||
[vim.diagnostic.severity.WARN] = '▲',
|
||||
[vim.diagnostic.severity.HINT] = '⚑',
|
||||
[vim.diagnostic.severity.INFO] = '»',
|
||||
},
|
||||
},
|
||||
-- virtual_text = true,
|
||||
})
|
||||
|
||||
return {
|
||||
{
|
||||
'neovim/nvim-lspconfig',
|
||||
event = { "BufReadPre", "BufNewFile" },
|
||||
dependencies = {
|
||||
"seblyng/roslyn.nvim",
|
||||
'hrsh7th/nvim-cmp',
|
||||
'RRethy/vim-illuminate',
|
||||
'j-hui/fidget.nvim',
|
||||
},
|
||||
config = function()
|
||||
local lspconfig_defaults = require('lspconfig').util.default_config
|
||||
local capabilities = vim.tbl_deep_extend(
|
||||
'force',
|
||||
lspconfig_defaults.capabilities,
|
||||
require('cmp_nvim_lsp').default_capabilities()
|
||||
)
|
||||
|
||||
vim.lsp.config('*', {
|
||||
capabilities = capabilities
|
||||
})
|
||||
|
||||
vim.lsp.config("lua_ls", {
|
||||
settings = {
|
||||
Lua = {
|
||||
diagnostics = {
|
||||
globals = { 'vim' }
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
vim.lsp.config("svelte", {
|
||||
settings = {
|
||||
svelte = {
|
||||
plugin = {
|
||||
svelte = {
|
||||
diagnostics = { enable = true },
|
||||
format = { enable = true },
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
},
|
||||
on_attach = function(client, bufnr)
|
||||
-- svelte LS needs to be told when .js/.ts files change
|
||||
-- so it can update component prop types
|
||||
vim.api.nvim_create_autocmd("BufWritePost", {
|
||||
pattern = { "*.js", "*.ts" },
|
||||
group = vim.api.nvim_create_augroup("svelte_ondidchangetsorjsfile", { clear = true }),
|
||||
callback = function(ctx)
|
||||
client:notify("$/onDidChangeTsOrJsFile", { uri = ctx.match })
|
||||
end,
|
||||
})
|
||||
end,
|
||||
})
|
||||
|
||||
vim.lsp.config("rust_analyzer", {
|
||||
settings = {
|
||||
["rust-analyzer"] = {
|
||||
checkOnSave = true,
|
||||
check = {
|
||||
enable = true,
|
||||
command = "clippy",
|
||||
features = "all"
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
vim.lsp.config("julials", {
|
||||
on_new_config = function(new_config, _)
|
||||
local julia = vim.fn.expand("~/.julia/environments/nvim-lspconfig/bin/julia")
|
||||
if require('lspconfig').util.path.is_file(julia) then
|
||||
vim.notify("running julials")
|
||||
new_config.cmd[1] = julia
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
vim.lsp.config("pyright", {
|
||||
settings = {
|
||||
pyright = {
|
||||
disableOrganizeImports = true, -- Using Ruff
|
||||
},
|
||||
python = {
|
||||
analysis = {
|
||||
ignore = { '*' }, -- Using Ruff
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
vim.lsp.config("clangd", {
|
||||
cmd = {
|
||||
"clangd",
|
||||
"--background-index",
|
||||
"--clang-tidy",
|
||||
"--header-insertion=iwyu",
|
||||
"--completion-style=detailed",
|
||||
"--function-arg-placeholders",
|
||||
"--fallback-style=llvm",
|
||||
},
|
||||
root_markers = {
|
||||
"compile_commands.json",
|
||||
"compile_flags.txt",
|
||||
"configure.ac", -- AutoTools
|
||||
"Makefile",
|
||||
"configure.ac",
|
||||
"configure.in",
|
||||
"config.h.in",
|
||||
"meson.build",
|
||||
"meson_options.txt",
|
||||
"build.ninja",
|
||||
".git",
|
||||
},
|
||||
init_options = {
|
||||
usePlaceholders = true,
|
||||
completeUnimported = true,
|
||||
clangdFileStatus = true,
|
||||
},
|
||||
})
|
||||
|
||||
vim.lsp.config("bashls", {
|
||||
cmd = { 'bash-language-server', 'start' },
|
||||
filetypes = { 'bash', 'sh' }
|
||||
})
|
||||
|
||||
-- add only to front-facing filetypes
|
||||
vim.lsp.config("cspell_ls", {
|
||||
cmd = { "cspell-lsp", "--stdio" },
|
||||
filetypes = {
|
||||
"markdown",
|
||||
"html",
|
||||
"svelte"
|
||||
},
|
||||
root_markers = { ".git" },
|
||||
})
|
||||
|
||||
require("roslyn").setup()
|
||||
vim.lsp.enable({ "lua_ls",
|
||||
"cspell_ls",
|
||||
"clangd",
|
||||
"bashls",
|
||||
"ts_ls",
|
||||
"hls",
|
||||
"ruff",
|
||||
"svelte",
|
||||
"marksman",
|
||||
"tailwindcss",
|
||||
"rust_analyzer",
|
||||
"wgsl_analyzer",
|
||||
"julials",
|
||||
"pyright",
|
||||
"qmlls"
|
||||
})
|
||||
end,
|
||||
},
|
||||
{
|
||||
'nvimtools/none-ls.nvim',
|
||||
event = { "BufReadPre", "BufNewFile" },
|
||||
config = function()
|
||||
local null_ls = require("null-ls")
|
||||
local capabilities = require('cmp_nvim_lsp').default_capabilities()
|
||||
--capabilities.offsetEncoding = { "utf-16" }
|
||||
|
||||
local eslint_format = require("none-ls.formatting.eslint_d").with({
|
||||
})
|
||||
|
||||
local eslint_diag = require("none-ls.diagnostics.eslint_d").with({
|
||||
})
|
||||
|
||||
local eslint_code_actions = require("none-ls.code_actions.eslint_d").with({
|
||||
})
|
||||
|
||||
null_ls.setup {
|
||||
capabilities = capabilities,
|
||||
sources = {
|
||||
eslint_format,
|
||||
eslint_diag,
|
||||
eslint_code_actions,
|
||||
null_ls.builtins.code_actions.gitsigns,
|
||||
null_ls.builtins.completion.luasnip,
|
||||
null_ls.builtins.completion.tags,
|
||||
}
|
||||
}
|
||||
end,
|
||||
dependencies = { "nvim-lua/plenary.nvim",
|
||||
"nvimtools/none-ls-extras.nvim",
|
||||
'hrsh7th/nvim-cmp',
|
||||
"L3MON4D3/LuaSnip",
|
||||
},
|
||||
},
|
||||
{
|
||||
'p00f/clangd_extensions.nvim',
|
||||
dependencies = { 'nvim-lspconfig' },
|
||||
keys = {
|
||||
{ "<leader>ch", "<cmd>LspClangdSwitchSourceHeader<cr>", desc = "Switch Source/Header (C/C++)" },
|
||||
},
|
||||
ft = { 'c', 'cpp', 'objc', 'objcpp' },
|
||||
opts = {
|
||||
inlay_hints = {
|
||||
inline = false,
|
||||
},
|
||||
ast = {
|
||||
--These require codicons (https://github.com/microsoft/vscode-codicons)
|
||||
role_icons = {
|
||||
type = "",
|
||||
declaration = "",
|
||||
expression = "",
|
||||
specifier = "",
|
||||
statement = "",
|
||||
["template argument"] = "",
|
||||
},
|
||||
kind_icons = {
|
||||
Compound = "",
|
||||
Recovery = "",
|
||||
TranslationUnit = "",
|
||||
PackExpansion = "",
|
||||
TemplateTypeParm = "",
|
||||
TemplateTemplateParm = "",
|
||||
TemplateParamObject = "",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
return {
|
||||
"nvim-lualine/lualine.nvim",
|
||||
event = "VimEnter",
|
||||
dependencies = {
|
||||
'nvim-tree/nvim-web-devicons',
|
||||
},
|
||||
opts = {
|
||||
extensions = { 'nvim-tree', 'fzf', 'symbols-outline' },
|
||||
options = {
|
||||
component_separators = '',
|
||||
section_separators = { left = '', right = '' },
|
||||
theme = 'auto',
|
||||
globalstatus = true,
|
||||
},
|
||||
sections = {
|
||||
-- would be nice to open code actions but w/e
|
||||
lualine_b = {
|
||||
{
|
||||
'branch',
|
||||
'diff',
|
||||
},
|
||||
},
|
||||
lualine_c = {
|
||||
{
|
||||
'diagnostics',
|
||||
sources = { 'nvim_diagnostic', 'nvim_lsp' },
|
||||
sections = { 'hint', 'warn', 'error' },
|
||||
colored = true,
|
||||
update_in_insert = true,
|
||||
always_visible = false,
|
||||
}
|
||||
},
|
||||
lualine_x = { 'filetype' },
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
return {
|
||||
"danymat/neogen",
|
||||
config = function()
|
||||
require("neogen").setup({
|
||||
enabled = true,
|
||||
snippet_engine = "luasnip",
|
||||
placeholders_hl = "None", -- fixes weird bug where the entire page gets colored with this color
|
||||
languages = {
|
||||
python = {
|
||||
template = {
|
||||
annotation_convention = "google_docstrings"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
nmap('<leader>d', ":lua require('neogen').generate()<CR>")
|
||||
end
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
return {
|
||||
{
|
||||
"L3MON4D3/LuaSnip",
|
||||
build = "make install_jsregexp"
|
||||
},
|
||||
{
|
||||
"hrsh7th/nvim-cmp",
|
||||
dependencies = {
|
||||
"hrsh7th/cmp-buffer", "hrsh7th/cmp-nvim-lsp",
|
||||
"L3MON4D3/LuaSnip", "rafamadriz/friendly-snippets",
|
||||
'hrsh7th/cmp-nvim-lua', 'hrsh7th/cmp-path',
|
||||
'hrsh7th/cmp-calc', 'hrsh7th/cmp-cmdline', 'f3fora/cmp-spell',
|
||||
},
|
||||
config = function()
|
||||
local cmp = require("cmp")
|
||||
local luasnip = require('luasnip')
|
||||
|
||||
cmp.setup({
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
luasnip.lsp_expand(args.body)
|
||||
end
|
||||
},
|
||||
sources = {
|
||||
{ name = 'path' },
|
||||
{ name = 'nvim_lsp', keyword_length = 1 },
|
||||
{ name = 'buffer', keyword_length = 3 },
|
||||
{ name = 'luasnip', keyword_length = 2 },
|
||||
},
|
||||
window = {
|
||||
completion = cmp.config.window.bordered(),
|
||||
documentation = cmp.config.window.bordered()
|
||||
},
|
||||
formatting = {
|
||||
fields = { 'menu', 'abbr', 'kind' },
|
||||
format = function(entry, item)
|
||||
local menu_icon = {
|
||||
nvim_lsp = 'λ',
|
||||
luasnip = '⋗',
|
||||
buffer = 'Ω',
|
||||
path = '🖫',
|
||||
}
|
||||
|
||||
item.menu = menu_icon[entry.source.name]
|
||||
return item
|
||||
end,
|
||||
},
|
||||
mapping = {
|
||||
['<Up>'] = cmp.mapping.select_prev_item(select_opts),
|
||||
['<Down>'] = cmp.mapping.select_next_item(select_opts),
|
||||
|
||||
['<C-u>'] = cmp.mapping.scroll_docs(-4),
|
||||
['<C-d>'] = cmp.mapping.scroll_docs(4),
|
||||
|
||||
['<C-e>'] = cmp.mapping.abort(),
|
||||
['<C-y>'] = cmp.mapping.confirm({ select = true }),
|
||||
['<CR>'] = cmp.mapping.confirm({ select = false }),
|
||||
|
||||
['<C-f>'] = cmp.mapping(function(fallback)
|
||||
if luasnip.jumpable(1) then
|
||||
luasnip.jump(1)
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { 'i', 's' }),
|
||||
|
||||
['<C-b>'] = cmp.mapping(function(fallback)
|
||||
if luasnip.jumpable(-1) then
|
||||
luasnip.jump(-1)
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { 'i', 's' }),
|
||||
}
|
||||
})
|
||||
|
||||
cmp.setup.cmdline({ '/', '?' }, {
|
||||
mapping = cmp.mapping.preset.cmdline(),
|
||||
sources = {
|
||||
{ name = 'buffer' }
|
||||
}
|
||||
})
|
||||
|
||||
-- to select something in the cmdline need to use <C-n>
|
||||
cmp.setup.cmdline(':', {
|
||||
mapping = cmp.mapping.preset.cmdline(),
|
||||
sources = cmp.config.sources({
|
||||
{ name = 'path' }
|
||||
}, {
|
||||
{ name = 'cmdline' }
|
||||
}),
|
||||
matching = { disallow_symbol_nonprefix_matching = false }
|
||||
})
|
||||
end,
|
||||
} }
|
||||
@@ -0,0 +1,253 @@
|
||||
;==========================================================
|
||||
;
|
||||
;
|
||||
; ██████╗ ██████╗ ██╗ ██╗ ██╗██████╗ █████╗ ██████╗
|
||||
; ██╔══██╗██╔═══██╗██║ ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗
|
||||
; ██████╔╝██║ ██║██║ ╚████╔╝ ██████╔╝███████║██████╔╝
|
||||
; ██╔═══╝ ██║ ██║██║ ╚██╔╝ ██╔══██╗██╔══██║██╔══██╗
|
||||
; ██║ ╚██████╔╝███████╗██║ ██████╔╝██║ ██║██║ ██║
|
||||
; ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝
|
||||
;
|
||||
;
|
||||
; To learn more about how to configure Polybar
|
||||
; go to https://github.com/polybar/polybar
|
||||
;
|
||||
; The README contains a lot of information
|
||||
;
|
||||
;==========================================================
|
||||
|
||||
|
||||
[colors]
|
||||
background = ${xrdb:color0}
|
||||
background-alt = #444
|
||||
foreground = ${xrdb:color7}
|
||||
foreground-alt = #555
|
||||
primary = #ffb52a
|
||||
secondary = #e60053
|
||||
alert = #bd2c40
|
||||
|
||||
[bar/default]
|
||||
monitor = ${env:MONITOR:}
|
||||
|
||||
width = 100%
|
||||
height = 2.5%
|
||||
bottom = true
|
||||
offset-x = 0
|
||||
offset-y = 0
|
||||
radius = 0.0
|
||||
fixed-center = true
|
||||
|
||||
background = ${colors.background}
|
||||
foreground = ${colors.foreground}
|
||||
|
||||
line-size = 0
|
||||
line-color = #f00
|
||||
|
||||
border-size = 0
|
||||
border-color = #00000000
|
||||
|
||||
padding-left = 0
|
||||
padding-right = 1
|
||||
|
||||
module-margin-left = 0
|
||||
module-margin-right = 1
|
||||
|
||||
font-0 = Hack:style=Regular:size=11;1
|
||||
font-1 = unifont:style=Regular:size=11;0
|
||||
font-2 = siji:style=Regular:size=11;1
|
||||
|
||||
modules-left = i3 title
|
||||
modules-center = date
|
||||
modules-right = cpu memory wlan pulseaudio battery
|
||||
|
||||
tray-position = right
|
||||
tray-padding = 2
|
||||
tray-scale = 1.0
|
||||
;tray-background = #0063ff
|
||||
;tray-reparent = true
|
||||
;wm-restack = bspwm
|
||||
wm-restack = i3
|
||||
|
||||
;override-redirect = true
|
||||
|
||||
;scroll-up = bspwm-desknext
|
||||
;scroll-down = bspwm-deskprev
|
||||
|
||||
;scroll-up = i3wm-wsnext
|
||||
;scroll-down = i3wm-wsprev
|
||||
|
||||
cursor-click = pointer
|
||||
cursor-scroll = ns-resize
|
||||
|
||||
[module/title]
|
||||
type = internal/xwindow
|
||||
label-maxlen = 25
|
||||
|
||||
|
||||
[module/i3]
|
||||
type = internal/i3
|
||||
format = <label-state> <label-mode>
|
||||
index-sort = true
|
||||
wrapping-scroll = false
|
||||
pin-workspaces = true
|
||||
|
||||
; Only show workspaces on the same output as the bar
|
||||
;pin-workspaces = true
|
||||
|
||||
label-mode-padding = 2
|
||||
label-mode-foreground = #000
|
||||
label-mode-background = ${colors.primary}
|
||||
|
||||
; focused = Active workspace on focused monitor
|
||||
label-focused = %index%
|
||||
label-focused-background = ${colors.background-alt}
|
||||
label-focused-underline=
|
||||
label-focused-padding = 2
|
||||
|
||||
; unfocused = Inactive workspace on any monitor
|
||||
label-unfocused = %index%
|
||||
label-unfocused-padding = 2
|
||||
|
||||
; visible = Active workspace on unfocused monitor
|
||||
label-visible = %index%
|
||||
label-visible-background =
|
||||
label-visible-underline =
|
||||
label-visible-padding = ${self.label-focused-padding}
|
||||
|
||||
; urgent = Workspace with urgency hint set
|
||||
label-urgent = %index%
|
||||
label-urgent-background = ${colors.alert}
|
||||
label-urgent-padding = 2
|
||||
|
||||
; Separator in between workspaces
|
||||
;label-separator = |
|
||||
|
||||
[module/cpu]
|
||||
type = internal/cpu
|
||||
interval = 2
|
||||
format-prefix = "CPU:"
|
||||
format-prefix-foreground = ${xrdb:color7}
|
||||
format-underline =
|
||||
label = %percentage:2%%
|
||||
|
||||
[module/memory]
|
||||
type = internal/memory
|
||||
interval = 2
|
||||
format-prefix = ""
|
||||
format-prefix-foreground = ${xrdb:color7}
|
||||
format-underline =
|
||||
label = %gb_used% | %gb_free%
|
||||
|
||||
[module/wlan]
|
||||
type = internal/network
|
||||
interface = wlan0
|
||||
interval = 3.0
|
||||
|
||||
format-connected = <label-connected>
|
||||
format-connected-underline =
|
||||
label-connected = %essid%
|
||||
label-disconnected = "No connection"
|
||||
;format-disconnected = <label-disconnected>
|
||||
;format-disconnected-underline = ${self.format-connected-underline}
|
||||
;label-disconnected = %ifname% disconnected
|
||||
;label-disconnected-foreground = ${colors.foreground-alt}
|
||||
|
||||
ramp-signal-0 =
|
||||
ramp-signal-1 =
|
||||
ramp-signal-2 =
|
||||
ramp-signal-3 =
|
||||
ramp-signal-4 =
|
||||
ramp-signal-foreground = ${colors.foreground-alt}
|
||||
|
||||
[module/date]
|
||||
type = internal/date
|
||||
interval = 1
|
||||
|
||||
date =
|
||||
date-alt = " %D"
|
||||
|
||||
time = %I:%M:%S %p
|
||||
time-alt = %I:%M:%S %p
|
||||
|
||||
format-prefix =
|
||||
format-prefix-foreground = ${colors.foreground-alt}
|
||||
format-underline =
|
||||
|
||||
label = %date% %time%
|
||||
|
||||
[module/pulseaudio]
|
||||
type = internal/pulseaudio
|
||||
|
||||
format-volume = <label-volume> <bar-volume>
|
||||
label-volume = VOL: %percentage%%
|
||||
label-volume-foreground = ${root.foreground}
|
||||
|
||||
label-muted = 🔇 muted
|
||||
label-muted-foreground =
|
||||
|
||||
bar-volume-width = 10
|
||||
bar-volume-foreground-0 = #99cc00
|
||||
bar-volume-foreground-1 = #99cc00
|
||||
bar-volume-foreground-2 = #99cc00
|
||||
bar-volume-foreground-3 = #99cc00
|
||||
bar-volume-foreground-4 = #99cc00
|
||||
bar-volume-foreground-5 = #f5a70a
|
||||
bar-volume-foreground-6 = #ff5555
|
||||
bar-volume-gradient = true
|
||||
bar-volume-indicator = |
|
||||
bar-volume-indicator-font = 2
|
||||
bar-volume-fill = ─
|
||||
bar-volume-fill-font = 2
|
||||
bar-volume-empty = ─
|
||||
bar-volume-empty-font = 2
|
||||
bar-volume-empty-foreground = ${colors.foreground-alt}
|
||||
|
||||
[module/battery]
|
||||
type = internal/battery
|
||||
battery = BAT1
|
||||
adapter = ADP1
|
||||
full-at = 98
|
||||
|
||||
label-full = ""
|
||||
|
||||
format-charging = <animation-charging> <label-charging>
|
||||
format-charging-underline = #ffb52a
|
||||
|
||||
format-discharging = <animation-discharging> <label-discharging>
|
||||
format-discharging-underline =
|
||||
|
||||
format-full-prefix = " "
|
||||
format-full-prefix-foreground = ${colors.foreground-alt}
|
||||
format-full-underline =
|
||||
|
||||
ramp-capacity-0 =
|
||||
ramp-capacity-1 =
|
||||
ramp-capacity-2 =
|
||||
ramp-capacity-foreground = ${colors.foreground-alt}
|
||||
|
||||
animation-charging-0 =
|
||||
animation-charging-1 =
|
||||
animation-charging-2 =
|
||||
animation-charging-foreground = ${colors.foreground-alt}
|
||||
animation-charging-framerate = 750
|
||||
|
||||
animation-discharging-0 =
|
||||
animation-discharging-1 =
|
||||
animation-discharging-2 =
|
||||
animation-discharging-foreground = ${colors.foreground-alt}
|
||||
animation-discharging-framerate = 750
|
||||
|
||||
|
||||
[settings]
|
||||
screenchange-reload = true
|
||||
;compositing-background = xor
|
||||
compositing-background = screen
|
||||
;compositing-foreground = source
|
||||
;compositing-border = over
|
||||
pseudo-transparency = false
|
||||
|
||||
[global/wm]
|
||||
margin-top = 0
|
||||
margin-bottom = 0
|
||||
|
||||
; vim:ft=dosini
|
||||
@@ -0,0 +1,214 @@
|
||||
;==========================================================
|
||||
;
|
||||
;
|
||||
; ██████╗ ██████╗ ██╗ ██╗ ██╗██████╗ █████╗ ██████╗
|
||||
; ██╔══██╗██╔═══██╗██║ ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗
|
||||
; ██████╔╝██║ ██║██║ ╚████╔╝ ██████╔╝███████║██████╔╝
|
||||
; ██╔═══╝ ██║ ██║██║ ╚██╔╝ ██╔══██╗██╔══██║██╔══██╗
|
||||
; ██║ ╚██████╔╝███████╗██║ ██████╔╝██║ ██║██║ ██║
|
||||
; ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝
|
||||
;
|
||||
;
|
||||
; To learn more about how to configure Polybar
|
||||
; go to https://github.com/polybar/polybar
|
||||
;
|
||||
; The README contains a lot of information
|
||||
;
|
||||
;==========================================================
|
||||
|
||||
|
||||
[colors]
|
||||
background = ${xrdb:color0}
|
||||
background-alt = #444
|
||||
foreground = ${xrdb:color7}
|
||||
foreground-alt = #555
|
||||
primary = #ffb52a
|
||||
secondary = #e60053
|
||||
alert = #bd2c40
|
||||
|
||||
[bar/default]
|
||||
monitor = ${env:MONITOR:}
|
||||
|
||||
width = 100%
|
||||
height = 2.5%
|
||||
bottom = true
|
||||
offset-x = 0
|
||||
offset-y = 0
|
||||
radius = 0.0
|
||||
fixed-center = true
|
||||
|
||||
background = ${colors.background}
|
||||
foreground = ${colors.foreground}
|
||||
|
||||
line-size = 0
|
||||
line-color = #f00
|
||||
|
||||
border-size = 0
|
||||
border-color = #00000000
|
||||
|
||||
padding-left = 0
|
||||
padding-right = 1
|
||||
|
||||
module-margin-left = 0
|
||||
module-margin-right = 1
|
||||
|
||||
font-0 = Hack:style=Regular:size=11;1
|
||||
font-1 = unifont:style=Regular:size=11;0
|
||||
font-2 = siji:style=Regular:size=11;1
|
||||
|
||||
modules-left = i3 title
|
||||
modules-center = date
|
||||
modules-right = cpu memory wlan pulseaudio battery
|
||||
|
||||
tray-position = right
|
||||
tray-padding = 2
|
||||
tray-scale = 1.0
|
||||
;tray-background = #0063ff
|
||||
;tray-reparent = true
|
||||
;wm-restack = bspwm
|
||||
wm-restack = i3
|
||||
|
||||
;override-redirect = true
|
||||
|
||||
;scroll-up = bspwm-desknext
|
||||
;scroll-down = bspwm-deskprev
|
||||
|
||||
;scroll-up = i3wm-wsnext
|
||||
;scroll-down = i3wm-wsprev
|
||||
|
||||
cursor-click = pointer
|
||||
cursor-scroll = ns-resize
|
||||
|
||||
#[module/title]
|
||||
#type = internal/xwindow
|
||||
#label-maxlen = 25
|
||||
|
||||
[module/cpu]
|
||||
type = internal/cpu
|
||||
interval = 2
|
||||
format-prefix = "CPU:"
|
||||
format-prefix-foreground = ${xrdb:color7}
|
||||
format-underline =
|
||||
label = %percentage:2%%
|
||||
|
||||
[module/memory]
|
||||
type = internal/memory
|
||||
interval = 2
|
||||
format-prefix = ""
|
||||
format-prefix-foreground = ${xrdb:color7}
|
||||
format-underline =
|
||||
label = %gb_used% | %gb_free%
|
||||
|
||||
[module/wlan]
|
||||
type = internal/network
|
||||
interface = wlan0
|
||||
interval = 3.0
|
||||
|
||||
format-connected = <label-connected>
|
||||
format-connected-underline =
|
||||
label-connected =
|
||||
label-disconnected = "No connection"
|
||||
;format-disconnected = <label-disconnected>
|
||||
;format-disconnected-underline = ${self.format-connected-underline}
|
||||
;label-disconnected = %ifname% disconnected
|
||||
;label-disconnected-foreground = ${colors.foreground-alt}
|
||||
|
||||
ramp-signal-0 =
|
||||
ramp-signal-1 =
|
||||
ramp-signal-2 =
|
||||
ramp-signal-3 =
|
||||
ramp-signal-4 =
|
||||
ramp-signal-foreground = ${colors.foreground-alt}
|
||||
|
||||
[module/date]
|
||||
type = internal/date
|
||||
interval = 1
|
||||
|
||||
date =
|
||||
date-alt = " %D"
|
||||
|
||||
time = %I:%M:%S %p
|
||||
time-alt = %I:%M:%S %p
|
||||
|
||||
format-prefix =
|
||||
format-prefix-foreground = ${colors.foreground-alt}
|
||||
format-underline =
|
||||
|
||||
label = %date% %time%
|
||||
|
||||
[module/pulseaudio]
|
||||
type = internal/pulseaudio
|
||||
|
||||
format-volume = <label-volume> <bar-volume>
|
||||
label-volume = VOL: %percentage%%
|
||||
label-volume-foreground = ${root.foreground}
|
||||
|
||||
label-muted = 🔇 muted
|
||||
label-muted-foreground =
|
||||
|
||||
bar-volume-width = 10
|
||||
bar-volume-foreground-0 = #99cc00
|
||||
bar-volume-foreground-1 = #99cc00
|
||||
bar-volume-foreground-2 = #99cc00
|
||||
bar-volume-foreground-3 = #99cc00
|
||||
bar-volume-foreground-4 = #99cc00
|
||||
bar-volume-foreground-5 = #f5a70a
|
||||
bar-volume-foreground-6 = #ff5555
|
||||
bar-volume-gradient = true
|
||||
bar-volume-indicator = |
|
||||
bar-volume-indicator-font = 2
|
||||
bar-volume-fill = ─
|
||||
bar-volume-fill-font = 2
|
||||
bar-volume-empty = ─
|
||||
bar-volume-empty-font = 2
|
||||
bar-volume-empty-foreground = ${colors.foreground-alt}
|
||||
|
||||
[module/battery]
|
||||
type = internal/battery
|
||||
battery = BAT1
|
||||
adapter = ADP1
|
||||
full-at = 98
|
||||
|
||||
label-full = ""
|
||||
|
||||
format-charging = <animation-charging> <label-charging>
|
||||
format-charging-underline = #ffb52a
|
||||
|
||||
format-discharging = <animation-discharging> <label-discharging>
|
||||
format-discharging-underline =
|
||||
|
||||
format-full-prefix = " "
|
||||
format-full-prefix-foreground = ${colors.foreground-alt}
|
||||
format-full-underline =
|
||||
|
||||
ramp-capacity-0 =
|
||||
ramp-capacity-1 =
|
||||
ramp-capacity-2 =
|
||||
ramp-capacity-foreground = ${colors.foreground-alt}
|
||||
|
||||
animation-charging-0 =
|
||||
animation-charging-1 =
|
||||
animation-charging-2 =
|
||||
animation-charging-foreground = ${colors.foreground-alt}
|
||||
animation-charging-framerate = 750
|
||||
|
||||
animation-discharging-0 =
|
||||
animation-discharging-1 =
|
||||
animation-discharging-2 =
|
||||
animation-discharging-foreground = ${colors.foreground-alt}
|
||||
animation-discharging-framerate = 750
|
||||
|
||||
|
||||
[settings]
|
||||
screenchange-reload = true
|
||||
;compositing-background = xor
|
||||
compositing-background = screen
|
||||
;compositing-foreground = source
|
||||
;compositing-border = over
|
||||
pseudo-transparency = false
|
||||
|
||||
[global/wm]
|
||||
margin-top = 0
|
||||
margin-bottom = 0
|
||||
|
||||
; vim:ft=dosini
|
||||
Executable
+10
@@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
killall -q polybar
|
||||
|
||||
#while pgrep -u $UID -x polybar >/dev/null; do
|
||||
# sleep 0.5; done
|
||||
|
||||
for m in $(polybar --list-monitors | cut -d":" -f1); do
|
||||
MONITOR=$m polybar -c ~/.config/polybar/fluxbox-config.ini --reload &
|
||||
done
|
||||
Executable
+10
@@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
killall -q polybar
|
||||
|
||||
#while pgrep -u $UID -x polybar >/dev/null; do
|
||||
# sleep 0.5; done
|
||||
|
||||
for m in $(polybar --list-monitors | cut -d":" -f1); do
|
||||
MONITOR=$m polybar --reload &
|
||||
done
|
||||
@@ -0,0 +1,354 @@
|
||||
import Quickshell
|
||||
import Quickshell.Wayland
|
||||
import Quickshell.Io
|
||||
import Quickshell.Hyprland
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
|
||||
import Quickshell.Services.SystemTray
|
||||
import Quickshell.DBusMenu
|
||||
import Quickshell.Widgets
|
||||
|
||||
Scope {
|
||||
id: root
|
||||
property string time
|
||||
property int cpuUsage: 0
|
||||
property string memUsage: "0"
|
||||
property var lastCpuIdle: 0
|
||||
property var lastCpuTotal: 0
|
||||
|
||||
SystemClock {
|
||||
id: sysClock
|
||||
precision: SystemClock.Seconds
|
||||
}
|
||||
|
||||
Process {
|
||||
id: cpuProc
|
||||
command: ["sh", "-c", "head -1 /proc/stat"]
|
||||
stdout: SplitParser {
|
||||
onRead: data => {
|
||||
if (!data)
|
||||
return;
|
||||
var p = data.trim().split(/\s+/);
|
||||
var idle = parseInt(p[4]) + parseInt(p[5]);
|
||||
var total = p.slice(1, 8).reduce((a, b) => a + parseInt(b), 0);
|
||||
if (lastCpuTotal > 0) {
|
||||
cpuUsage = Math.round(100 * (1 - (idle - lastCpuIdle) / (total - lastCpuTotal)));
|
||||
}
|
||||
lastCpuTotal = total;
|
||||
lastCpuIdle = idle;
|
||||
}
|
||||
}
|
||||
Component.onCompleted: running = true
|
||||
}
|
||||
|
||||
// Read raw millidegrees value from sysfs (adjust hwmon index if needed)
|
||||
// command: ["cat", "/sys/class/hwmon/hwmon0/temp1_input"]
|
||||
|
||||
Process {
|
||||
id: memProc
|
||||
command: ["sh", "-c", "free -m | grep Mem"]
|
||||
stdout: SplitParser {
|
||||
onRead: data => {
|
||||
if (!data)
|
||||
return;
|
||||
var parts = data.trim().split(/\s+/);
|
||||
var total = (parts[1] / 1000).toFixed(2) || 1;
|
||||
var used = (parts[2] / 1000).toFixed(2) || 0;
|
||||
memUsage = `${used} / ${total}`;
|
||||
}
|
||||
}
|
||||
Component.onCompleted: running = true
|
||||
}
|
||||
|
||||
Timer {
|
||||
interval: 1000
|
||||
running: true
|
||||
repeat: true
|
||||
onTriggered: {
|
||||
cpuProc.running = true;
|
||||
memProc.running = true;
|
||||
}
|
||||
}
|
||||
|
||||
Variants {
|
||||
model: Quickshell.screens
|
||||
|
||||
PanelWindow {
|
||||
id: barRoot
|
||||
required property var modelData
|
||||
screen: modelData
|
||||
readonly property HyprlandMonitor monitor: Hyprland.monitorFor(screen)
|
||||
|
||||
// Theme
|
||||
property color colBg: Qt.rgba(0.0, 0.0, 0.0, 0.35)// "#150d16"
|
||||
property color colFg: "#f5dbc4"
|
||||
property color colMuted: "#444b6a"
|
||||
property color colCyan: "#0db9d7"
|
||||
property color colBlue: "#7aa2f7"
|
||||
property color colYellow: "#e0af68"
|
||||
property color colWhite: "#FFFFFF"
|
||||
property color colRed: "#FF2400"
|
||||
property string fontFamily: "Inter"
|
||||
property int fontSize: 16
|
||||
|
||||
anchors.bottom: true
|
||||
anchors.left: true
|
||||
anchors.right: true
|
||||
implicitHeight: 35
|
||||
color: Qt.rgba(0.0, 0.0, 0.0, 0.35)
|
||||
|
||||
RowLayout {
|
||||
anchors.fill: parent
|
||||
anchors.margins: 8
|
||||
spacing: 8
|
||||
|
||||
// Workspaces
|
||||
Repeater {
|
||||
model: Hyprland.workspaces
|
||||
|
||||
delegate: Loader {
|
||||
active: modelData.monitor && modelData.monitor.name === monitor.name && modelData.id != -98
|
||||
|
||||
sourceComponent: Text {
|
||||
property bool isActive: Hyprland.focusedWorkspace?.id === modelData.id
|
||||
text: modelData.id
|
||||
|
||||
color: isActive ? barRoot.colRed : barRoot.colFg
|
||||
font {
|
||||
family: barRoot.fontFamily
|
||||
pixelSize: barRoot.fontSize
|
||||
bold: true
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: ws.activate()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Row {
|
||||
id: appIconRow
|
||||
spacing: 4
|
||||
|
||||
property var sortedTopLevels: {
|
||||
const tl = barRoot.monitor?.activeWorkspace?.toplevels;
|
||||
if (!tl)
|
||||
return [];
|
||||
return tl.values.slice().sort((a, b) => {
|
||||
const ax = a.lastIpcObject?.at?.[0] ?? 0;
|
||||
const bx = b.lastIpcObject?.at?.[0] ?? 0;
|
||||
return ax - bx;
|
||||
});
|
||||
}
|
||||
|
||||
Repeater {
|
||||
model: appIconRow.sortedTopLevels //barRoot.monitor?.activeWorkspace?.toplevels ?? null
|
||||
|
||||
delegate: Item {
|
||||
id: appIconRoot
|
||||
width: 18
|
||||
height: 18
|
||||
|
||||
property var desktopEntry: DesktopEntries.byId(modelData.wayland.appId)
|
||||
|
||||
IconImage {
|
||||
anchors.fill: parent
|
||||
source: Quickshell.iconPath(desktopEntry.icon ?? modelData.appId, "image-missing")
|
||||
opacity: modelData.activated ? 1.0 : 0.35
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
acceptedButtons: Qt.LeftButton | Qt.RightButton | Qt.MiddleButton
|
||||
|
||||
onClicked: mouse => {
|
||||
if (mouse.button === Qt.LeftButton) {
|
||||
modelData.wayland.activate();
|
||||
} else if (mouse.button === Qt.RightButton) {
|
||||
modelData.wayland.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: barRoot.monitor?.activeWorkspace?.toplevels ?? null
|
||||
function onObjectInsertedPost() {
|
||||
Hyprland.refreshToplevels();
|
||||
}
|
||||
function onObjectRemovedPost() {
|
||||
Hyprland.refreshToplevels();
|
||||
}
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: Hyprland
|
||||
function onRawEvent(event) {
|
||||
positionRefreshDebounce.restart();
|
||||
}
|
||||
}
|
||||
|
||||
Timer {
|
||||
id: positionRefreshDebounce
|
||||
interval: 100
|
||||
onTriggered: Hyprland.refreshToplevels()
|
||||
}
|
||||
}
|
||||
|
||||
Text {
|
||||
id: clock
|
||||
anchors.centerIn: parent
|
||||
property var timeFmt: "h:mm:ss AP"
|
||||
property var timeStr: Qt.formatDateTime(sysClock.date, timeFmt)
|
||||
|
||||
color: barRoot.colFg
|
||||
font {
|
||||
family: barRoot.fontFamily
|
||||
pixelSize: barRoot.fontSize
|
||||
bold: true
|
||||
}
|
||||
text: timeStr
|
||||
|
||||
Calendar {
|
||||
visible: clockArea.containsMouse
|
||||
anchorItem: clock
|
||||
today: sysClock.date
|
||||
bgColor: barRoot.colBg
|
||||
fgColor: barRoot.colFg
|
||||
mutedColor: barRoot.colMuted
|
||||
accentColor: barRoot.colRed
|
||||
fontFamily: barRoot.fontFamily
|
||||
fontSize: barRoot.fontSize
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
id: clockArea
|
||||
hoverEnabled: true
|
||||
anchors.fill: parent
|
||||
onClicked: {
|
||||
clock.timeFmt = (clock.timeFmt === "h:mm:ss AP") ? "dddd M/d/yyyy - h:mm:ss AP" : "h:mm:ss AP";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
IconImage {
|
||||
implicitSize: 20
|
||||
source: Quickshell.iconPath("device_cpu")
|
||||
}
|
||||
|
||||
// CPU
|
||||
Text {
|
||||
text: `${cpuUsage}%`
|
||||
color: barRoot.colFg
|
||||
font {
|
||||
family: barRoot.fontFamily
|
||||
pixelSize: barRoot.fontSize
|
||||
bold: true
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
width: 1
|
||||
height: 16
|
||||
color: barRoot.colMuted
|
||||
}
|
||||
|
||||
IconImage {
|
||||
implicitSize: 20
|
||||
source: Quickshell.iconPath("memory")
|
||||
}
|
||||
|
||||
// Memory
|
||||
Text {
|
||||
text: `${memUsage} GB`
|
||||
color: barRoot.colFg
|
||||
font {
|
||||
family: barRoot.fontFamily
|
||||
pixelSize: barRoot.fontSize
|
||||
bold: true
|
||||
}
|
||||
}
|
||||
|
||||
Row {
|
||||
spacing: 5
|
||||
Repeater {
|
||||
model: SystemTray.items
|
||||
delegate: Image {
|
||||
id: trayIcon
|
||||
source: modelData.icon
|
||||
|
||||
width: 16
|
||||
height: 16
|
||||
|
||||
QsMenuOpener {
|
||||
id: menuOpener
|
||||
menu: modelData.menu
|
||||
}
|
||||
|
||||
PopupWindow {
|
||||
id: tooltip
|
||||
visible: trayDelegate.containsMouse
|
||||
color: "transparent"
|
||||
implicitWidth: tooltipText.implicitWidth + 16
|
||||
implicitHeight: tooltipText.implicitHeight + 10
|
||||
|
||||
anchor.item: trayIcon
|
||||
anchor.edges: Edges.Top | Edges.Left
|
||||
anchor.gravity: Edges.Top | Edges.Right
|
||||
anchor.adjustment: PopupAdjustment.SlideX | PopupAdjustment.FlipY
|
||||
anchor.margins.bottom: 6
|
||||
|
||||
Rectangle {
|
||||
anchors.fill: parent
|
||||
color: barRoot.colBg
|
||||
radius: 4
|
||||
border.color: barRoot.colMuted
|
||||
border.width: 1
|
||||
|
||||
Text {
|
||||
id: tooltipText
|
||||
anchors.centerIn: parent
|
||||
text: modelData.tooltipTitle || modelData.id
|
||||
color: barRoot.colFg
|
||||
font {
|
||||
family: barRoot.fontFamily
|
||||
pixelSize: barRoot.fontSize - 2
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
id: trayDelegate
|
||||
hoverEnabled: true
|
||||
|
||||
anchors.fill: parent
|
||||
acceptedButtons: Qt.LeftButton | Qt.RightButton | Qt.MiddleButton
|
||||
onClicked: mouse => {
|
||||
if (mouse.button === Qt.LeftButton) {
|
||||
modelData.activate();
|
||||
} else if (mouse.button === Qt.RightButton && modelData.hasMenu) {
|
||||
let pos = trayIcon.mapToItem(null, 0, trayIcon.height);
|
||||
modelData.display(barRoot, pos.x, pos.y);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BackgroundEffect.blurRegion: Region {
|
||||
item: barRoot.contentItem
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,123 @@
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
import Quickshell
|
||||
import Quickshell.Wayland
|
||||
|
||||
PopupWindow {
|
||||
id: calendarPopup
|
||||
|
||||
required property Item anchorItem
|
||||
required property date today
|
||||
|
||||
property color bgColor: "#150d16"
|
||||
property color fgColor: "#f5dbc4"
|
||||
property color mutedColor: "#444b6a"
|
||||
property color accentColor: "#FF2400"
|
||||
property string fontFamily: "Inter"
|
||||
property int fontSize: 16
|
||||
|
||||
property int calYear: today.getFullYear()
|
||||
property int calMonth: today.getMonth()
|
||||
|
||||
function daysInMonth(year, month) {
|
||||
return new Date(year, month + 1, 0).getDate();
|
||||
}
|
||||
|
||||
function firstWeekday(year, month) {
|
||||
return new Date(year, month, 1).getDay();
|
||||
}
|
||||
|
||||
color: "transparent"
|
||||
implicitWidth: calContent.implicitWidth + 20
|
||||
implicitHeight: calContent.implicitHeight + 20
|
||||
|
||||
anchor.item: anchorItem
|
||||
anchor.edges: Edges.Top
|
||||
anchor.gravity: Edges.Top
|
||||
anchor.adjustment: PopupAdjustment.SlideX | PopupAdjustment.FlipY
|
||||
anchor.margins.bottom: 8
|
||||
|
||||
BackgroundEffect.blurRegion: Region {
|
||||
item: calendarPopup.contentItem
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
anchors.fill: parent
|
||||
color: calendarPopup.bgColor
|
||||
radius: 6
|
||||
border.color: calendarPopup.mutedColor
|
||||
border.width: 1
|
||||
|
||||
ColumnLayout {
|
||||
id: calContent
|
||||
anchors.centerIn: parent
|
||||
spacing: 6
|
||||
|
||||
Text {
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
text: Qt.formatDate(new Date(calendarPopup.calYear, calendarPopup.calMonth, 1), "MMMM yyyy")
|
||||
color: calendarPopup.fgColor
|
||||
font {
|
||||
family: calendarPopup.fontFamily
|
||||
pixelSize: calendarPopup.fontSize
|
||||
bold: true
|
||||
}
|
||||
}
|
||||
|
||||
GridLayout {
|
||||
columns: 7
|
||||
rowSpacing: 4
|
||||
columnSpacing: 6
|
||||
|
||||
Repeater {
|
||||
model: ["S", "M", "T", "W", "T", "F", "S"]
|
||||
delegate: Text {
|
||||
Layout.preferredWidth: 22
|
||||
Layout.preferredHeight: 20
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
text: modelData
|
||||
color: calendarPopup.mutedColor
|
||||
font {
|
||||
family: calendarPopup.fontFamily
|
||||
pixelSize: calendarPopup.fontSize - 3
|
||||
bold: true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Repeater {
|
||||
model: calendarPopup.firstWeekday(calendarPopup.calYear, calendarPopup.calMonth)
|
||||
delegate: Item {
|
||||
Layout.preferredWidth: 22
|
||||
Layout.preferredHeight: 22
|
||||
}
|
||||
}
|
||||
|
||||
Repeater {
|
||||
model: calendarPopup.daysInMonth(calendarPopup.calYear, calendarPopup.calMonth)
|
||||
delegate: Rectangle {
|
||||
id: dayCell
|
||||
Layout.preferredWidth: 22
|
||||
Layout.preferredHeight: 22
|
||||
radius: 4
|
||||
|
||||
property int dayNum: index + 1
|
||||
property bool isToday: dayNum === calendarPopup.today.getDate() && calendarPopup.calMonth === calendarPopup.today.getMonth() && calendarPopup.calYear === calendarPopup.today.getFullYear()
|
||||
|
||||
color: isToday ? calendarPopup.accentColor : "transparent"
|
||||
|
||||
Text {
|
||||
anchors.centerIn: parent
|
||||
text: dayCell.dayNum
|
||||
color: calendarPopup.fgColor
|
||||
font {
|
||||
family: calendarPopup.fontFamily
|
||||
pixelSize: calendarPopup.fontSize
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
import Quickshell
|
||||
import Quickshell.Services.Pipewire
|
||||
import Quickshell.Widgets
|
||||
|
||||
Scope {
|
||||
id: volumeOSD
|
||||
|
||||
// Bind the pipewire node so its volume will be tracked
|
||||
PwObjectTracker {
|
||||
objects: [Pipewire.defaultAudioSink]
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: Pipewire.defaultAudioSink?.audio
|
||||
|
||||
function onVolumeChanged() {
|
||||
volumeOSD.shouldShowOsd = true;
|
||||
hideTimer.restart();
|
||||
}
|
||||
}
|
||||
|
||||
property bool shouldShowOsd: false
|
||||
|
||||
Timer {
|
||||
id: hideTimer
|
||||
interval: 1000
|
||||
onTriggered: volumeOSD.shouldShowOsd = false
|
||||
}
|
||||
|
||||
// The OSD window will be created and destroyed based on shouldShowOsd.
|
||||
// PanelWindow.visible could be set instead of using a loader, but using
|
||||
// a loader will reduce the memory overhead when the window isn't open.
|
||||
LazyLoader {
|
||||
active: volumeOSD.shouldShowOsd
|
||||
|
||||
PanelWindow {
|
||||
anchors.bottom: true
|
||||
margins.bottom: screen.height / 5
|
||||
exclusiveZone: 0
|
||||
|
||||
implicitWidth: 400
|
||||
implicitHeight: 50
|
||||
color: "transparent"
|
||||
|
||||
// An empty click mask prevents the window from blocking mouse events.
|
||||
mask: Region {}
|
||||
|
||||
Rectangle {
|
||||
anchors.fill: parent
|
||||
radius: height / 2
|
||||
color: "#80000000"
|
||||
|
||||
RowLayout {
|
||||
anchors {
|
||||
fill: parent
|
||||
leftMargin: 10
|
||||
rightMargin: 15
|
||||
}
|
||||
|
||||
IconImage {
|
||||
implicitSize: 30
|
||||
source: Quickshell.iconPath("audio-volume-high-symbolic")
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
// Stretches to fill all left-over space
|
||||
Layout.fillWidth: true
|
||||
|
||||
implicitHeight: 10
|
||||
radius: 20
|
||||
color: "#50ffffff"
|
||||
Rectangle {
|
||||
anchors {
|
||||
left: parent.left
|
||||
top: parent.top
|
||||
bottom: parent.bottom
|
||||
}
|
||||
|
||||
implicitWidth: parent.width * (Pipewire.defaultAudioSink?.audio.volume ?? 0)
|
||||
radius: parent.radius
|
||||
}
|
||||
}
|
||||
|
||||
Text {
|
||||
text: `${Math.round((Pipewire.defaultAudioSink?.audio.volume ?? 0) * 100)}%`
|
||||
color: "white"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
//@ pragma UseQApplication
|
||||
import Quickshell
|
||||
|
||||
Scope {
|
||||
Bar {}
|
||||
VolumeOSD {}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
set preview_images true
|
||||
set vcs_backend_git enabled
|
||||
set vcs_aware true
|
||||
set draw_borders separators
|
||||
set line_numbers true
|
||||
set hostname_in_titlebar false
|
||||
set update_title true
|
||||
set unicode_ellipsis true
|
||||
set preview_images_method ueberzug
|
||||
set preview_max_size 1048576000
|
||||
@@ -0,0 +1,66 @@
|
||||
# vim: ft=cfg
|
||||
#
|
||||
# This is the configuration file of "rifle", ranger's file executor/opener.
|
||||
# Each line consists of conditions and a command. For each line the conditions
|
||||
# are checked and if they are met, the respective command is run.
|
||||
#
|
||||
# Syntax:
|
||||
# <condition1> , <condition2> , ... = command
|
||||
#
|
||||
# The command can contain these environment variables:
|
||||
# $1-$9 | The n-th selected file
|
||||
# $@ | All selected files
|
||||
#
|
||||
# If you use the special command "ask", rifle will ask you what program to run.
|
||||
#
|
||||
# Prefixing a condition with "!" will negate its result.
|
||||
# These conditions are currently supported:
|
||||
# match <regexp> | The regexp matches $1
|
||||
# ext <regexp> | The regexp matches the extension of $1
|
||||
# mime <regexp> | The regexp matches the mime type of $1
|
||||
# name <regexp> | The regexp matches the basename of $1
|
||||
# path <regexp> | The regexp matches the absolute path of $1
|
||||
# has <program> | The program is installed (i.e. located in $PATH)
|
||||
# env <variable> | The environment variable "variable" is non-empty
|
||||
# file | $1 is a file
|
||||
# directory | $1 is a directory
|
||||
# number <n> | change the number of this command to n
|
||||
# terminal | stdin, stderr and stdout are connected to a terminal
|
||||
# X | A graphical environment is available (darwin, Xorg, or Wayland)
|
||||
#
|
||||
# There are also pseudo-conditions which have a "side effect":
|
||||
# flag <flags> | Change how the program is run. See below.
|
||||
# label <label> | Assign a label or name to the command so it can
|
||||
# | be started with :open_with <label> in ranger
|
||||
# | or `rifle -p <label>` in the standalone executable.
|
||||
# else | Always true.
|
||||
#
|
||||
# Flags are single characters which slightly transform the command:
|
||||
# f | Fork the program, make it run in the background.
|
||||
# | New command = setsid $command >& /dev/null &
|
||||
# r | Execute the command with root permissions
|
||||
# | New command = sudo $command
|
||||
# t | Run the program in a new terminal. If $TERMCMD is not defined,
|
||||
# | rifle will attempt to extract it from $TERM.
|
||||
# | New command = $TERMCMD -e $command
|
||||
# Note: The "New command" serves only as an illustration, the exact
|
||||
# implementation may differ.
|
||||
# Note: When using rifle in ranger, there is an additional flag "c" for
|
||||
# only running the current file even if you have marked multiple files.
|
||||
|
||||
label open, has xdg-open = xdg-open -- "$@"
|
||||
label open, has open = open -- "$@"
|
||||
|
||||
# Define the editor for non-text files + pager as last action
|
||||
!mime ^text, !ext xml|json|csv|tex|py|pl|rb|js|sh|php = ask
|
||||
label editor, !mime ^text, !ext xml|json|csv|tex|py|pl|rb|js|sh|php = ${VISUAL:-$EDITOR} -- "$@"
|
||||
label pager, !mime ^text, !ext xml|json|csv|tex|py|pl|rb|js|sh|php = "$PAGER" -- "$@"
|
||||
|
||||
|
||||
######################################################################
|
||||
# The actions below are left so low down in this file on purpose, so #
|
||||
# they are never triggered accidentally. #
|
||||
######################################################################
|
||||
|
||||
# Execute a file as program/script.
|
||||
mime application/x-executable = "$1"
|
||||
Executable
+94
@@ -0,0 +1,94 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Author : Aditya Shakya
|
||||
## Mail : adi1090x@gmail.com
|
||||
## Github : @adi1090x
|
||||
## Twitter : @adi1090x
|
||||
|
||||
dir="$HOME/.config/rofi/applets/android"
|
||||
rofi_command="rofi -theme $dir/six.rasi"
|
||||
|
||||
# Links
|
||||
terminal=""
|
||||
files=""
|
||||
editor=""
|
||||
browser=""
|
||||
music=""
|
||||
settings=""
|
||||
|
||||
# Error msg
|
||||
msg() {
|
||||
rofi -theme "$dir/message.rasi" -e "$1"
|
||||
}
|
||||
|
||||
# Variable passed to rofi
|
||||
options="$terminal\n$files\n$editor\n$browser\n$music\n$settings"
|
||||
|
||||
chosen="$(echo -e "$options" | $rofi_command -p "Most Used" -dmenu -selected-row 0)"
|
||||
case $chosen in
|
||||
$terminal)
|
||||
if [[ -f /usr/bin/termite ]]; then
|
||||
termite &
|
||||
elif [[ -f /usr/bin/urxvt ]]; then
|
||||
urxvt &
|
||||
elif [[ -f /usr/bin/kitty ]]; then
|
||||
kitty &
|
||||
elif [[ -f /usr/bin/xterm ]]; then
|
||||
xterm &
|
||||
elif [[ -f /usr/bin/xfce4-terminal ]]; then
|
||||
xfce4-terminal &
|
||||
elif [[ -f /usr/bin/gnome-terminal ]]; then
|
||||
gnome-terminal &
|
||||
else
|
||||
msg "No suitable terminal found!"
|
||||
fi
|
||||
;;
|
||||
$files)
|
||||
if [[ -f /usr/bin/thunar ]]; then
|
||||
thunar &
|
||||
elif [[ -f /usr/bin/pcmanfm ]]; then
|
||||
pcmanfm &
|
||||
else
|
||||
msg "No suitable file manager found!"
|
||||
fi
|
||||
;;
|
||||
$editor)
|
||||
if [[ -f /usr/bin/geany ]]; then
|
||||
geany &
|
||||
elif [[ -f /usr/bin/leafpad ]]; then
|
||||
leafpad &
|
||||
elif [[ -f /usr/bin/mousepad ]]; then
|
||||
mousepad &
|
||||
elif [[ -f /usr/bin/code ]]; then
|
||||
code &
|
||||
else
|
||||
msg "No suitable text editor found!"
|
||||
fi
|
||||
;;
|
||||
$browser)
|
||||
if [[ -f /usr/bin/firefox ]]; then
|
||||
firefox &
|
||||
elif [[ -f /usr/bin/chromium ]]; then
|
||||
chromium &
|
||||
elif [[ -f /usr/bin/midori ]]; then
|
||||
midori &
|
||||
else
|
||||
msg "No suitable web browser found!"
|
||||
fi
|
||||
;;
|
||||
$music)
|
||||
if [[ -f /usr/bin/lxmusic ]]; then
|
||||
lxmusic &
|
||||
else
|
||||
msg "No suitable music player found!"
|
||||
fi
|
||||
;;
|
||||
$settings)
|
||||
if [[ -f /usr/bin/xfce4-settings-manager ]]; then
|
||||
xfce4-settings-manager &
|
||||
else
|
||||
msg "No suitable settings manager found!"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
Executable
+84
@@ -0,0 +1,84 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Author : Aditya Shakya
|
||||
## Mail : adi1090x@gmail.com
|
||||
## Github : @adi1090x
|
||||
## Twitter : @adi1090x
|
||||
|
||||
dir="$HOME/.config/rofi/applets/android"
|
||||
rofi_command="rofi -theme $dir/three.rasi"
|
||||
|
||||
# Error msg
|
||||
msg() {
|
||||
rofi -theme "$dir/message.rasi" -e "$1"
|
||||
}
|
||||
|
||||
## Get Brightness
|
||||
if [[ -f /bin/brightnessctl ]]; then
|
||||
BNESS="$(brightnessctl get)"
|
||||
MAX="$(brightnessctl max)"
|
||||
PERC="$((BNESS*100/MAX))"
|
||||
BLIGHT=${PERC%.*}
|
||||
elif [[ -f /usr/bin/blight ]]; then
|
||||
DEVICE=$(ls /sys/class/backlight | head -n 1)
|
||||
BNESS="$(blight -d $DEVICE get brightness)"
|
||||
PERC="$(($BNESS*100/255))"
|
||||
BLIGHT=${PERC%.*}
|
||||
elif [[ -f /usr/bin/xbacklight ]]; then
|
||||
VAR="$(xbacklight -get)"
|
||||
BLIGHT="$(printf "%.0f\n" "$VAR")"
|
||||
else
|
||||
msg "No suitable backlight utility found!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ $BLIGHT -ge 1 ]] && [[ $BLIGHT -le 29 ]]; then
|
||||
MSG="Low"
|
||||
elif [[ $BLIGHT -ge 30 ]] && [[ $BLIGHT -le 49 ]]; then
|
||||
MSG="Optimal"
|
||||
elif [[ $BLIGHT -ge 50 ]] && [[ $BLIGHT -le 69 ]]; then
|
||||
MSG="High"
|
||||
elif [[ $BLIGHT -ge 70 ]] && [[ $BLIGHT -le 99 ]]; then
|
||||
MSG="Too Much"
|
||||
fi
|
||||
|
||||
## Icons
|
||||
ICON_UP=""
|
||||
ICON_DOWN=""
|
||||
ICON_OPT=""
|
||||
|
||||
notify="notify-send -u low -t 1500"
|
||||
options="$ICON_UP\n$ICON_OPT\n$ICON_DOWN"
|
||||
|
||||
## Main
|
||||
chosen="$(echo -e "$options" | $rofi_command -p "$BLIGHT%" -dmenu -selected-row 1)"
|
||||
case $chosen in
|
||||
"$ICON_UP")
|
||||
if [[ -f /bin/brightnessctl ]]; then
|
||||
brightnessctl -q set +10% && $notify "Brightness Up $ICON_UP"
|
||||
elif [[ -f /usr/bin/blight ]]; then
|
||||
blight -d "$DEVICE" set +10% && $notify "Brightness Up $ICON_UP"
|
||||
elif [[ -f /usr/bin/xbacklight ]]; then
|
||||
xbacklight -inc 10 && $notify "Brightness Up $ICON_UP"
|
||||
fi
|
||||
;;
|
||||
"$ICON_DOWN")
|
||||
if [[ -f /bin/brightnessctl ]]; then
|
||||
brightnessctl -q set 10%- && $notify "Brightness Down $ICON_DOWN"
|
||||
elif [[ -f /usr/bin/blight ]]; then
|
||||
blight -d "$DEVICE" set -10% && $notify "Brightness Down $ICON_DOWN"
|
||||
elif [[ -f /usr/bin/xbacklight ]]; then
|
||||
xbacklight -dec 10 && $notify "Brightness Down $ICON_DOWN"
|
||||
fi
|
||||
;;
|
||||
"$ICON_OPT")
|
||||
if [[ -f /bin/brightnessctl ]]; then
|
||||
brightnessctl -q set 25% && $notify "Optimal Brightness $ICON_OPT"
|
||||
elif [[ -f /usr/bin/blight ]]; then
|
||||
blight -d "$DEVICE" set 25% && $notify "Optimal Brightness $ICON_OPT"
|
||||
elif [[ -f /usr/bin/xbacklight ]]; then
|
||||
xbacklight -set 30 && $notify "Optimal Brightness $ICON_OPT"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
/*
|
||||
* Change the colorscheme for every menu simply by editing this file...
|
||||
*
|
||||
* Available Color Schemes
|
||||
* // Dark
|
||||
* material-dark/amber material-dark/blue material-dark/blue_grey material-dark/brown material-dark/cyan material-dark/deep_orange
|
||||
* material-dark/deep_purple material-dark/green material-dark/grey material-dark/indigo material-dark/light_blue material-dark/light_green
|
||||
* material-dark/lime material-dark/orange material-dark/pink material-dark/purple material-dark/red material-dark/teal
|
||||
* material-dark/yellow
|
||||
* // Light
|
||||
* material-light/amber material-light/blue material-light/blue_grey material-light/brown material-light/cyan material-light/deep_orange
|
||||
* material-light/deep_purple material-light/green material-light/grey material-light/indigo material-light/light_blue material-light/light_green
|
||||
* material-light/lime material-light/orange material-light/pink material-light/purple material-light/red material-light/teal
|
||||
* material-light/yellow
|
||||
*
|
||||
* // Other
|
||||
* adapta, adapta-nokto, arc, arc-dark, adwaita, gruvbox, dark
|
||||
* armchair, darkpink, fresh, inside, party, sirin
|
||||
*
|
||||
*/
|
||||
|
||||
@import "../styles/arc.rasi"
|
||||
@@ -0,0 +1,24 @@
|
||||
/* Confirm Dialog */
|
||||
|
||||
@import "colors.rasi"
|
||||
|
||||
* {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
font: "Iosevka Nerd Font 12";
|
||||
}
|
||||
|
||||
window {
|
||||
width: 225px;
|
||||
padding: 25px;
|
||||
border: 0px;
|
||||
border-radius: 12px;
|
||||
border-color: @accent;
|
||||
location: center;
|
||||
y-offset: -20px;
|
||||
}
|
||||
|
||||
entry {
|
||||
expand: true;
|
||||
text-color: @accent;
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
/*
|
||||
*
|
||||
* Author : Aditya Shakya
|
||||
* Mail : adi1090x@gmail.com
|
||||
* Github : @adi1090x
|
||||
* Twitter : @adi1090x
|
||||
*
|
||||
*/
|
||||
|
||||
configuration {
|
||||
show-icons: false;
|
||||
disable-history: false;
|
||||
sidebar-mode: false;
|
||||
}
|
||||
|
||||
@import "colors.rasi"
|
||||
|
||||
* {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
window {
|
||||
transparency: "real";
|
||||
border-radius: 12px;
|
||||
width: 100px;
|
||||
location: east;
|
||||
x-offset: -15px;
|
||||
y-offset: 0px;
|
||||
}
|
||||
|
||||
listview {
|
||||
lines: 5;
|
||||
margin: 8px;
|
||||
spacing: 8px;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
layout: vertical;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @background;
|
||||
children: [ listview ];
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: @background-light;
|
||||
text-color: @foreground;
|
||||
orientation: vertical;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
font: "feather 20";
|
||||
expand: true;
|
||||
horizontal-align: 0.5;
|
||||
vertical-align: 0.5;
|
||||
margin: 26px 26px 26px 26px;
|
||||
}
|
||||
|
||||
element normal.urgent,
|
||||
element alternate.urgent {
|
||||
background-color: @urgent;
|
||||
text-color: @foreground;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
element normal.active,
|
||||
element alternate.active {
|
||||
background-color: @background-alt;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
border: 0px;
|
||||
border-radius: 10px;
|
||||
border-color: @border;
|
||||
}
|
||||
|
||||
element selected.urgent {
|
||||
background-color: @urgent;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
element selected.active {
|
||||
background-color: @background-alt;
|
||||
color: @foreground;
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
/* Confirm Dialog */
|
||||
|
||||
@import "colors.rasi"
|
||||
|
||||
* {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
font: "Iosevka Nerd Font 12";
|
||||
}
|
||||
|
||||
window {
|
||||
width: 360px;
|
||||
padding: 25px;
|
||||
border: 0px;
|
||||
border-radius: 12px;
|
||||
border-color: @accent;
|
||||
location: center;
|
||||
y-offset: -20px;
|
||||
}
|
||||
|
||||
entry {
|
||||
expand: true;
|
||||
text-color: @accent;
|
||||
}
|
||||
Executable
+76
@@ -0,0 +1,76 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Author : Aditya Shakya
|
||||
## Mail : adi1090x@gmail.com
|
||||
## Github : @adi1090x
|
||||
## Twitter : @adi1090x
|
||||
|
||||
dir="$HOME/.config/rofi/applets/android"
|
||||
rofi_command="rofi -theme $dir/six.rasi"
|
||||
|
||||
# Gets the current status of mpd (for us to parse it later on)
|
||||
status="$(mpc status)"
|
||||
# Defines the Play / Pause option content
|
||||
if [[ $status == *"[playing]"* ]]; then
|
||||
play_pause=""
|
||||
else
|
||||
play_pause=""
|
||||
fi
|
||||
active=""
|
||||
urgent=""
|
||||
|
||||
# Display if repeat mode is on / off
|
||||
tog_repeat=""
|
||||
if [[ $status == *"repeat: on"* ]]; then
|
||||
active="-a 4"
|
||||
elif [[ $status == *"repeat: off"* ]]; then
|
||||
urgent="-u 4"
|
||||
else
|
||||
tog_repeat=" Parsing error"
|
||||
fi
|
||||
|
||||
# Display if random mode is on / off
|
||||
tog_random=""
|
||||
if [[ $status == *"random: on"* ]]; then
|
||||
[ -n "$active" ] && active+=",5" || active="-a 5"
|
||||
elif [[ $status == *"random: off"* ]]; then
|
||||
[ -n "$urgent" ] && urgent+=",5" || urgent="-u 5"
|
||||
else
|
||||
tog_random=" Parsing error"
|
||||
fi
|
||||
stop=""
|
||||
next=""
|
||||
previous=""
|
||||
|
||||
# Variable passed to rofi
|
||||
options="$previous\n$play_pause\n$stop\n$next\n$tog_repeat\n$tog_random"
|
||||
|
||||
# Get the current playing song
|
||||
current=$(mpc -f %title% current)
|
||||
# If mpd isn't running it will return an empty string, we don't want to display that
|
||||
if [[ -z "$current" ]]; then
|
||||
current="-"
|
||||
fi
|
||||
|
||||
# Spawn the mpd menu with the "Play / Pause" entry selected by default
|
||||
chosen="$(echo -e "$options" | $rofi_command -p " $current" -dmenu $active $urgent -selected-row 1)"
|
||||
case $chosen in
|
||||
$previous)
|
||||
mpc -q prev && notify-send -u low -t 1800 " $(mpc current)"
|
||||
;;
|
||||
$play_pause)
|
||||
mpc -q toggle && notify-send -u low -t 1800 " $(mpc current)"
|
||||
;;
|
||||
$stop)
|
||||
mpc -q stop
|
||||
;;
|
||||
$next)
|
||||
mpc -q next && notify-send -u low -t 1800 " $(mpc current)"
|
||||
;;
|
||||
$tog_repeat)
|
||||
mpc -q repeat
|
||||
;;
|
||||
$tog_random)
|
||||
mpc -q random
|
||||
;;
|
||||
esac
|
||||
Executable
+94
@@ -0,0 +1,94 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Author : Aditya Shakya
|
||||
## Mail : adi1090x@gmail.com
|
||||
## Github : @adi1090x
|
||||
## Twitter : @adi1090x
|
||||
|
||||
dir="$HOME/.config/rofi/applets/android"
|
||||
rofi_command="rofi -theme $dir/five.rasi"
|
||||
|
||||
uptime=$(uptime -p | sed -e 's/up //g')
|
||||
|
||||
# Options
|
||||
shutdown=""
|
||||
reboot=""
|
||||
lock=""
|
||||
suspend=""
|
||||
logout=""
|
||||
|
||||
# Confirmation
|
||||
confirm_exit() {
|
||||
rofi -dmenu\
|
||||
-i\
|
||||
-no-fixed-num-lines\
|
||||
-p "Are You Sure? : "\
|
||||
-theme $dir/confirm.rasi
|
||||
}
|
||||
|
||||
# Message
|
||||
msg() {
|
||||
rofi -theme "$dir/message.rasi" -e "Available Options - yes / y / no / n"
|
||||
}
|
||||
|
||||
# Variable passed to rofi
|
||||
options="$shutdown\n$reboot\n$lock\n$suspend\n$logout"
|
||||
|
||||
chosen="$(echo -e "$options" | $rofi_command -p "Uptime: $uptime" -dmenu -selected-row 2)"
|
||||
case $chosen in
|
||||
$shutdown)
|
||||
ans=$(confirm_exit &)
|
||||
if [[ $ans == "yes" || $ans == "YES" || $ans == "y" || $ans == "Y" ]]; then
|
||||
systemctl poweroff
|
||||
elif [[ $ans == "no" || $ans == "NO" || $ans == "n" || $ans == "N" ]]; then
|
||||
exit 0
|
||||
else
|
||||
msg
|
||||
fi
|
||||
;;
|
||||
$reboot)
|
||||
ans=$(confirm_exit &)
|
||||
if [[ $ans == "yes" || $ans == "YES" || $ans == "y" || $ans == "Y" ]]; then
|
||||
systemctl reboot
|
||||
elif [[ $ans == "no" || $ans == "NO" || $ans == "n" || $ans == "N" ]]; then
|
||||
exit 0
|
||||
else
|
||||
msg
|
||||
fi
|
||||
;;
|
||||
$lock)
|
||||
if [[ -f /usr/bin/i3lock ]]; then
|
||||
i3lock
|
||||
elif [[ -f /usr/bin/betterlockscreen ]]; then
|
||||
betterlockscreen -l
|
||||
fi
|
||||
;;
|
||||
$suspend)
|
||||
ans=$(confirm_exit &)
|
||||
if [[ $ans == "yes" || $ans == "YES" || $ans == "y" || $ans == "Y" ]]; then
|
||||
mpc -q pause
|
||||
amixer set Master mute
|
||||
systemctl suspend
|
||||
elif [[ $ans == "no" || $ans == "NO" || $ans == "n" || $ans == "N" ]]; then
|
||||
exit 0
|
||||
else
|
||||
msg
|
||||
fi
|
||||
;;
|
||||
$logout)
|
||||
ans=$(confirm_exit &)
|
||||
if [[ $ans == "yes" || $ans == "YES" || $ans == "y" || $ans == "Y" ]]; then
|
||||
if [[ "$DESKTOP_SESSION" == "Openbox" ]]; then
|
||||
openbox --exit
|
||||
elif [[ "$DESKTOP_SESSION" == "bspwm" ]]; then
|
||||
bspc quit
|
||||
elif [[ "$DESKTOP_SESSION" == "i3" ]]; then
|
||||
i3-msg exit
|
||||
fi
|
||||
elif [[ $ans == "no" || $ans == "NO" || $ans == "n" || $ans == "N" ]]; then
|
||||
exit 0
|
||||
else
|
||||
msg
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
Executable
+60
@@ -0,0 +1,60 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Author : Aditya Shakya
|
||||
## Mail : adi1090x@gmail.com
|
||||
## Github : @adi1090x
|
||||
## Twitter : @adi1090x
|
||||
|
||||
dir="$HOME/.config/rofi/applets/android"
|
||||
rofi_command="rofi -theme $dir/six.rasi"
|
||||
|
||||
# Error msg
|
||||
msg() {
|
||||
rofi -theme "$dir/message.rasi" -e "$1"
|
||||
}
|
||||
|
||||
# Browser
|
||||
if [[ -f /usr/bin/firefox ]]; then
|
||||
app="firefox"
|
||||
elif [[ -f /usr/bin/chromium ]]; then
|
||||
app="chromium"
|
||||
elif [[ -f /usr/bin/midori ]]; then
|
||||
app="midori"
|
||||
else
|
||||
msg "No suitable web browser found!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Links
|
||||
google=""
|
||||
facebook=""
|
||||
twitter=""
|
||||
github=""
|
||||
mail=""
|
||||
youtube=""
|
||||
|
||||
# Variable passed to rofi
|
||||
options="$google\n$facebook\n$twitter\n$github\n$mail\n$youtube"
|
||||
|
||||
chosen="$(echo -e "$options" | $rofi_command -p "Open In : Firefox" -dmenu -selected-row 0)"
|
||||
case $chosen in
|
||||
$google)
|
||||
$app https://www.google.com &
|
||||
;;
|
||||
$facebook)
|
||||
$app https://www.facebook.com &
|
||||
;;
|
||||
$twitter)
|
||||
$app https://www.twitter.com &
|
||||
;;
|
||||
$github)
|
||||
$app https://www.github.com &
|
||||
;;
|
||||
$mail)
|
||||
$app https://www.gmail.com &
|
||||
;;
|
||||
$youtube)
|
||||
$app https://www.youtube.com &
|
||||
;;
|
||||
esac
|
||||
|
||||
Executable
+48
@@ -0,0 +1,48 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Author : Aditya Shakya
|
||||
## Mail : adi1090x@gmail.com
|
||||
## Github : @adi1090x
|
||||
## Twitter : @adi1090x
|
||||
|
||||
dir="$HOME/.config/rofi/applets/android"
|
||||
rofi_command="rofi -theme $dir/three.rasi"
|
||||
|
||||
# Error msg
|
||||
msg() {
|
||||
rofi -theme "$dir/message.rasi" -e "Please install 'scrot' first."
|
||||
}
|
||||
|
||||
# Options
|
||||
screen=""
|
||||
area=""
|
||||
window=""
|
||||
|
||||
# Variable passed to rofi
|
||||
options="$screen\n$area\n$window"
|
||||
|
||||
chosen="$(echo -e "$options" | $rofi_command -p '' -dmenu -selected-row 1)"
|
||||
case $chosen in
|
||||
$screen)
|
||||
if [[ -f /usr/bin/scrot ]]; then
|
||||
sleep 1; scrot 'Screenshot_%Y-%m-%d-%S_$wx$h.png' -e 'mv $f $$(xdg-user-dir PICTURES) ; viewnior $$(xdg-user-dir PICTURES)/$f'
|
||||
else
|
||||
msg
|
||||
fi
|
||||
;;
|
||||
$area)
|
||||
if [[ -f /usr/bin/scrot ]]; then
|
||||
scrot -s 'Screenshot_%Y-%m-%d-%S_$wx$h.png' -e 'mv $f $$(xdg-user-dir PICTURES) ; viewnior $$(xdg-user-dir PICTURES)/$f'
|
||||
else
|
||||
msg
|
||||
fi
|
||||
;;
|
||||
$window)
|
||||
if [[ -f /usr/bin/scrot ]]; then
|
||||
sleep 1; scrot -u 'Screenshot_%Y-%m-%d-%S_$wx$h.png' -e 'mv $f $$(xdg-user-dir PICTURES) ; viewnior $$(xdg-user-dir PICTURES)/$f'
|
||||
else
|
||||
msg
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
/*
|
||||
*
|
||||
* Author : Aditya Shakya
|
||||
* Mail : adi1090x@gmail.com
|
||||
* Github : @adi1090x
|
||||
* Twitter : @adi1090x
|
||||
*
|
||||
*/
|
||||
|
||||
configuration {
|
||||
show-icons: false;
|
||||
disable-history: false;
|
||||
sidebar-mode: false;
|
||||
}
|
||||
|
||||
@import "colors.rasi"
|
||||
|
||||
* {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
window {
|
||||
transparency: "real";
|
||||
border-radius: 12px;
|
||||
width: 100px;
|
||||
location: east;
|
||||
x-offset: -15px;
|
||||
y-offset: 0px;
|
||||
}
|
||||
|
||||
listview {
|
||||
lines: 6;
|
||||
margin: 8px;
|
||||
spacing: 8px;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
layout: vertical;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @background;
|
||||
children: [ listview ];
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: @background-light;
|
||||
text-color: @foreground;
|
||||
orientation: vertical;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
font: "feather 20";
|
||||
expand: true;
|
||||
horizontal-align: 0.5;
|
||||
vertical-align: 0.5;
|
||||
margin: 26px 26px 26px 26px;
|
||||
}
|
||||
|
||||
element normal.urgent,
|
||||
element alternate.urgent {
|
||||
background-color: @off;
|
||||
text-color: @background;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
element normal.active,
|
||||
element alternate.active {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
border: 0px;
|
||||
border-radius: 10px;
|
||||
border-color: @border;
|
||||
}
|
||||
|
||||
element selected.urgent {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected.active {
|
||||
background-color: @off;
|
||||
color: @background;
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
/*
|
||||
*
|
||||
* Author : Aditya Shakya
|
||||
* Mail : adi1090x@gmail.com
|
||||
* Github : @adi1090x
|
||||
* Twitter : @adi1090x
|
||||
*
|
||||
*/
|
||||
|
||||
configuration {
|
||||
show-icons: false;
|
||||
disable-history: false;
|
||||
sidebar-mode: false;
|
||||
}
|
||||
|
||||
@import "colors.rasi"
|
||||
|
||||
* {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
window {
|
||||
transparency: "real";
|
||||
border-radius: 12px;
|
||||
width: 100px;
|
||||
location: east;
|
||||
x-offset: -15px;
|
||||
y-offset: 0px;
|
||||
}
|
||||
|
||||
listview {
|
||||
lines: 3;
|
||||
margin: 8px;
|
||||
spacing: 8px;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
layout: vertical;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @background;
|
||||
children: [ listview ];
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: @background-light;
|
||||
text-color: @foreground;
|
||||
orientation: vertical;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
font: "feather 20";
|
||||
expand: true;
|
||||
horizontal-align: 0.5;
|
||||
vertical-align: 0.5;
|
||||
margin: 26px 26px 26px 26px;
|
||||
}
|
||||
|
||||
element normal.urgent,
|
||||
element alternate.urgent {
|
||||
background-color: @off;
|
||||
text-color: @background;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
element normal.active,
|
||||
element alternate.active {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
border: 0px;
|
||||
border-radius: 10px;
|
||||
border-color: @border;
|
||||
}
|
||||
|
||||
element selected.urgent {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected.active {
|
||||
background-color: @off;
|
||||
color: @background;
|
||||
}
|
||||
Executable
+56
@@ -0,0 +1,56 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Author : Aditya Shakya
|
||||
## Mail : adi1090x@gmail.com
|
||||
## Github : @adi1090x
|
||||
## Twitter : @adi1090x
|
||||
|
||||
dir="$HOME/.config/rofi/applets/android"
|
||||
rofi_command="rofi -theme $dir/three.rasi"
|
||||
|
||||
## Get Volume
|
||||
#VOLUME=$(amixer get Master | tail -n 1 | awk -F ' ' '{print $5}' | tr -d '[]%')
|
||||
MUTE=$(amixer get Master | tail -n 1 | awk -F ' ' '{print $6}' | tr -d '[]%')
|
||||
|
||||
active=""
|
||||
urgent=""
|
||||
|
||||
if [[ $MUTE == *"off"* ]]; then
|
||||
active="-a 1"
|
||||
else
|
||||
urgent="-u 1"
|
||||
fi
|
||||
|
||||
if [[ $MUTE == *"off"* ]]; then
|
||||
active="-a 1"
|
||||
else
|
||||
urgent="-u 1"
|
||||
fi
|
||||
|
||||
if [[ $MUTE == *"on"* ]]; then
|
||||
VOLUME="$(amixer get Master | tail -n 1 | awk -F ' ' '{print $5}' | tr -d '[]%')%"
|
||||
else
|
||||
VOLUME="Mu..."
|
||||
fi
|
||||
|
||||
## Icons
|
||||
ICON_UP=""
|
||||
ICON_DOWN=""
|
||||
ICON_MUTED=""
|
||||
|
||||
options="$ICON_UP\n$ICON_MUTED\n$ICON_DOWN"
|
||||
|
||||
## Main
|
||||
chosen="$(echo -e "$options" | $rofi_command -p "$VOLUME" -dmenu $active $urgent -selected-row 0)"
|
||||
case $chosen in
|
||||
$ICON_UP)
|
||||
amixer -Mq set Master,0 5%+ unmute && notify-send -u low -t 1500 "Volume Up $ICON_UP"
|
||||
;;
|
||||
$ICON_DOWN)
|
||||
amixer -Mq set Master,0 5%- unmute && notify-send -u low -t 1500 "Volume Down $ICON_DOWN"
|
||||
;;
|
||||
$ICON_MUTED)
|
||||
amixer -q set Master toggle
|
||||
;;
|
||||
esac
|
||||
|
||||
Executable
+95
@@ -0,0 +1,95 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Author : Aditya Shakya
|
||||
## Mail : adi1090x@gmail.com
|
||||
## Github : @adi1090x
|
||||
## Twitter : @adi1090x
|
||||
|
||||
style="$($HOME/.config/rofi/applets/applets/style.sh)"
|
||||
|
||||
dir="$HOME/.config/rofi/applets/applets/configs/$style"
|
||||
rofi_command="rofi -theme $dir/apps.rasi"
|
||||
|
||||
# Links
|
||||
terminal=""
|
||||
files=""
|
||||
editor=""
|
||||
browser=""
|
||||
music=""
|
||||
settings=""
|
||||
|
||||
# Error msg
|
||||
msg() {
|
||||
rofi -theme "$HOME/.config/rofi/applets/styles/message.rasi" -e "$1"
|
||||
}
|
||||
|
||||
# Variable passed to rofi
|
||||
options="$terminal\n$files\n$editor\n$browser\n$music\n$settings"
|
||||
|
||||
chosen="$(echo -e "$options" | $rofi_command -p "Most Used" -dmenu -selected-row 0)"
|
||||
case $chosen in
|
||||
$terminal)
|
||||
if [[ -f /usr/bin/termite ]]; then
|
||||
termite &
|
||||
elif [[ -f /usr/bin/urxvt ]]; then
|
||||
urxvt &
|
||||
elif [[ -f /usr/bin/kitty ]]; then
|
||||
kitty &
|
||||
elif [[ -f /usr/bin/xterm ]]; then
|
||||
xterm &
|
||||
elif [[ -f /usr/bin/xfce4-terminal ]]; then
|
||||
xfce4-terminal &
|
||||
elif [[ -f /usr/bin/gnome-terminal ]]; then
|
||||
gnome-terminal &
|
||||
else
|
||||
msg "No suitable terminal found!"
|
||||
fi
|
||||
;;
|
||||
$files)
|
||||
if [[ -f /usr/bin/thunar ]]; then
|
||||
thunar &
|
||||
elif [[ -f /usr/bin/pcmanfm ]]; then
|
||||
pcmanfm &
|
||||
else
|
||||
msg "No suitable file manager found!"
|
||||
fi
|
||||
;;
|
||||
$editor)
|
||||
if [[ -f /usr/bin/geany ]]; then
|
||||
geany &
|
||||
elif [[ -f /usr/bin/leafpad ]]; then
|
||||
leafpad &
|
||||
elif [[ -f /usr/bin/mousepad ]]; then
|
||||
mousepad &
|
||||
elif [[ -f /usr/bin/code ]]; then
|
||||
code &
|
||||
else
|
||||
msg "No suitable text editor found!"
|
||||
fi
|
||||
;;
|
||||
$browser)
|
||||
if [[ -f /usr/bin/firefox ]]; then
|
||||
firefox &
|
||||
elif [[ -f /usr/bin/chromium ]]; then
|
||||
chromium &
|
||||
elif [[ -f /usr/bin/midori ]]; then
|
||||
midori &
|
||||
else
|
||||
msg "No suitable web browser found!"
|
||||
fi
|
||||
;;
|
||||
$music)
|
||||
if [[ -f /usr/bin/lxmusic ]]; then
|
||||
lxmusic &
|
||||
else
|
||||
msg "No suitable music player found!"
|
||||
fi
|
||||
;;
|
||||
$settings)
|
||||
if [[ -f /usr/bin/xfce4-settings-manager ]]; then
|
||||
xfce4-settings-manager &
|
||||
else
|
||||
msg "No suitable settings manager found!"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
Executable
+86
@@ -0,0 +1,86 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Author : Aditya Shakya
|
||||
## Mail : adi1090x@gmail.com
|
||||
## Github : @adi1090x
|
||||
## Twitter : @adi1090x
|
||||
|
||||
style="$($HOME/.config/rofi/applets/applets/style.sh)"
|
||||
|
||||
dir="$HOME/.config/rofi/applets/applets/configs/$style"
|
||||
rofi_command="rofi -theme $dir/backlight.rasi"
|
||||
|
||||
# Error msg
|
||||
msg() {
|
||||
rofi -theme "$HOME/.config/rofi/applets/styles/message.rasi" -e "$1"
|
||||
}
|
||||
|
||||
## Get Brightness
|
||||
if [[ -f /bin/brightnessctl ]]; then
|
||||
BNESS="$(brightnessctl get)"
|
||||
MAX="$(brightnessctl max)"
|
||||
PERC="$((BNESS*100/MAX))"
|
||||
BLIGHT=${PERC%.*}
|
||||
elif [[ -f /usr/bin/blight ]]; then
|
||||
DEVICE=$(ls /sys/class/backlight | head -n 1)
|
||||
BNESS="$(blight -d $DEVICE get brightness)"
|
||||
PERC="$(($BNESS*100/255))"
|
||||
BLIGHT=${PERC%.*}
|
||||
elif [[ -f /usr/bin/xbacklight ]]; then
|
||||
VAR="$(xbacklight -get)"
|
||||
BLIGHT="$(printf "%.0f\n" "$VAR")"
|
||||
else
|
||||
msg "No suitable backlight utility found!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ $BLIGHT -ge 1 ]] && [[ $BLIGHT -le 29 ]]; then
|
||||
MSG="Low"
|
||||
elif [[ $BLIGHT -ge 30 ]] && [[ $BLIGHT -le 49 ]]; then
|
||||
MSG="Optimal"
|
||||
elif [[ $BLIGHT -ge 50 ]] && [[ $BLIGHT -le 69 ]]; then
|
||||
MSG="High"
|
||||
elif [[ $BLIGHT -ge 70 ]] && [[ $BLIGHT -le 99 ]]; then
|
||||
MSG="Too Much"
|
||||
fi
|
||||
|
||||
## Icons
|
||||
ICON_UP=""
|
||||
ICON_DOWN=""
|
||||
ICON_OPT=""
|
||||
|
||||
notify="notify-send -u low -t 1500"
|
||||
options="$ICON_UP\n$ICON_OPT\n$ICON_DOWN"
|
||||
|
||||
## Main
|
||||
chosen="$(echo -e "$options" | $rofi_command -p "$BLIGHT%" -dmenu -selected-row 1)"
|
||||
case $chosen in
|
||||
"$ICON_UP")
|
||||
if [[ -f /bin/brightnessctl ]]; then
|
||||
brightnessctl -q set +10% && $notify "Brightness Up $ICON_UP"
|
||||
elif [[ -f /usr/bin/blight ]]; then
|
||||
blight -d "$DEVICE" set +10% && $notify "Brightness Up $ICON_UP"
|
||||
elif [[ -f /usr/bin/xbacklight ]]; then
|
||||
xbacklight -inc 10 && $notify "Brightness Up $ICON_UP"
|
||||
fi
|
||||
;;
|
||||
"$ICON_DOWN")
|
||||
if [[ -f /bin/brightnessctl ]]; then
|
||||
brightnessctl -q set 10%- && $notify "Brightness Down $ICON_DOWN"
|
||||
elif [[ -f /usr/bin/blight ]]; then
|
||||
blight -d "$DEVICE" set -10% && $notify "Brightness Down $ICON_DOWN"
|
||||
elif [[ -f /usr/bin/xbacklight ]]; then
|
||||
xbacklight -dec 10 && $notify "Brightness Down $ICON_DOWN"
|
||||
fi
|
||||
;;
|
||||
"$ICON_OPT")
|
||||
if [[ -f /bin/brightnessctl ]]; then
|
||||
brightnessctl -q set 25% && $notify "Optimal Brightness $ICON_OPT"
|
||||
elif [[ -f /usr/bin/blight ]]; then
|
||||
blight -d "$DEVICE" set 25% && $notify "Optimal Brightness $ICON_OPT"
|
||||
elif [[ -f /usr/bin/xbacklight ]]; then
|
||||
xbacklight -set 30 && $notify "Optimal Brightness $ICON_OPT"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
Executable
+65
@@ -0,0 +1,65 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Author : Aditya Shakya
|
||||
## Mail : adi1090x@gmail.com
|
||||
## Github : @adi1090x
|
||||
## Twitter : @adi1090x
|
||||
|
||||
style="$($HOME/.config/rofi/applets/applets/style.sh)"
|
||||
|
||||
dir="$HOME/.config/rofi/applets/applets/configs/$style"
|
||||
rofi_command="rofi -theme $dir/battery.rasi"
|
||||
|
||||
## Get data
|
||||
BATTERY="$(acpi | awk -F ' ' '{print $4}' | tr -d \%,)"
|
||||
CHARGE="$(acpi | awk -F ' ' '{print $3}' | tr -d \,)"
|
||||
|
||||
active=""
|
||||
urgent=""
|
||||
|
||||
if [[ $CHARGE = *"Charging"* ]]; then
|
||||
active="-a 1"
|
||||
ICON_CHRG=""
|
||||
MSG=$CHARGE
|
||||
elif [[ $CHARGE = *"Full"* ]]; then
|
||||
active="-u 1"
|
||||
ICON_CHRG=""
|
||||
MSG=$CHARGE
|
||||
else
|
||||
urgent="-u 1"
|
||||
ICON_CHRG=""
|
||||
MSG=$CHARGE
|
||||
fi
|
||||
|
||||
# Discharging
|
||||
#if [[ $CHARGE -eq 1 ]] && [[ $BATTERY -eq 100 ]]; then
|
||||
# ICON_DISCHRG=""
|
||||
if [[ $BATTERY -ge 5 ]] && [[ $BATTERY -le 19 ]]; then
|
||||
ICON_DISCHRG=""
|
||||
elif [[ $BATTERY -ge 20 ]] && [[ $BATTERY -le 39 ]]; then
|
||||
ICON_DISCHRG=""
|
||||
elif [[ $BATTERY -ge 40 ]] && [[ $BATTERY -le 59 ]]; then
|
||||
ICON_DISCHRG=""
|
||||
elif [[ $BATTERY -ge 60 ]] && [[ $BATTERY -le 79 ]]; then
|
||||
ICON_DISCHRG=""
|
||||
elif [[ $BATTERY -ge 80 ]] && [[ $BATTERY -le 100 ]]; then
|
||||
ICON_DISCHRG=""
|
||||
fi
|
||||
|
||||
## Icons
|
||||
ICON_PMGR=""
|
||||
|
||||
options="$ICON_DISCHRG\n$ICON_CHRG\n$ICON_PMGR"
|
||||
|
||||
## Main
|
||||
chosen="$(echo -e "$options" | $rofi_command -p "$BATTERY%" -dmenu $active $urgent -selected-row 0)"
|
||||
case $chosen in
|
||||
$ICON_CHRG)
|
||||
;;
|
||||
$ICON_DISCHRG)
|
||||
;;
|
||||
$ICON_PMGR)
|
||||
xfce4-power-manager-settings
|
||||
;;
|
||||
esac
|
||||
|
||||
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
*
|
||||
* Author : Aditya Shakya
|
||||
* Mail : adi1090x@gmail.com
|
||||
* Github : @adi1090x
|
||||
* Twitter : @adi1090x
|
||||
*
|
||||
*/
|
||||
|
||||
configuration {
|
||||
show-icons: false;
|
||||
font: "Comfortaa 12";
|
||||
disable-history: false;
|
||||
sidebar-mode: false;
|
||||
}
|
||||
|
||||
@import "../../../styles/colors.rasi"
|
||||
|
||||
* {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
window {
|
||||
transparency: "real";
|
||||
border-radius: 40px;
|
||||
location: southeast;
|
||||
width: 500px;
|
||||
x-offset: -15px;
|
||||
y-offset: -45px;
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 0px 2px 0px;
|
||||
border-radius: 25px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: " Apps ";
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
padding: 12px 10px 0px 10px;
|
||||
border-radius: 25px;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
children: [ textbox-prompt-colon, prompt ];
|
||||
spacing: 12px;
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
expand: false;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
margin: 0px 0px 0px 0px;
|
||||
padding: 0px;
|
||||
position: center;
|
||||
}
|
||||
|
||||
listview {
|
||||
columns: 6;
|
||||
lines: 1;
|
||||
spacing: 12px;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
layout: vertical;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @background;
|
||||
children: [ inputbar, listview ];
|
||||
spacing: 12px;
|
||||
margin: 12px;
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: @background-light;
|
||||
text-color: @foreground;
|
||||
orientation: vertical;
|
||||
border-radius: 100%;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
font: "feather 20";
|
||||
expand: true;
|
||||
horizontal-align: 0.5;
|
||||
vertical-align: 0.5;
|
||||
margin: 19px 10px 19px 10px;
|
||||
}
|
||||
|
||||
element normal.urgent,
|
||||
element alternate.urgent {
|
||||
background-color: @off;
|
||||
text-color: @background;
|
||||
border-radius: 100%;
|
||||
}
|
||||
|
||||
element normal.active,
|
||||
element alternate.active {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 0px 2px 0px;
|
||||
border-radius: 100%;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
element selected.urgent {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected.active {
|
||||
background-color: @off;
|
||||
color: @background;
|
||||
}
|
||||
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
*
|
||||
* Author : Aditya Shakya
|
||||
* Mail : adi1090x@gmail.com
|
||||
* Github : @adi1090x
|
||||
* Twitter : @adi1090x
|
||||
*
|
||||
*/
|
||||
|
||||
configuration {
|
||||
show-icons: false;
|
||||
font: "Comfortaa 12";
|
||||
disable-history: false;
|
||||
sidebar-mode: false;
|
||||
}
|
||||
|
||||
@import "../../../styles/colors.rasi"
|
||||
|
||||
* {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
window {
|
||||
transparency: "real";
|
||||
border-radius: 40px;
|
||||
location: southeast;
|
||||
width: 250px;
|
||||
x-offset: -15px;
|
||||
y-offset: -45px;
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 0px 2px 0px;
|
||||
border-radius: 25px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: " Brightness ";
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
padding: 12px 10px 0px 10px;
|
||||
border-radius: 25px;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
children: [ textbox-prompt-colon, prompt ];
|
||||
spacing: 12px;
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
expand: false;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
margin: 0px 0px 0px 0px;
|
||||
padding: 0px;
|
||||
position: center;
|
||||
}
|
||||
|
||||
listview {
|
||||
columns: 3;
|
||||
lines: 1;
|
||||
spacing: 12px;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
layout: vertical;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @background;
|
||||
children: [ inputbar, listview ];
|
||||
spacing: 12px;
|
||||
margin: 12px;
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: @background-light;
|
||||
text-color: @foreground;
|
||||
orientation: vertical;
|
||||
border-radius: 100%;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
font: "feather 20";
|
||||
expand: true;
|
||||
horizontal-align: 0.5;
|
||||
vertical-align: 0.5;
|
||||
margin: 19px 10px 19px 10px;
|
||||
}
|
||||
|
||||
element normal.urgent,
|
||||
element alternate.urgent {
|
||||
background-color: @off;
|
||||
text-color: @background;
|
||||
border-radius: 100%;
|
||||
}
|
||||
|
||||
element normal.active,
|
||||
element alternate.active {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 0px 2px 0px;
|
||||
border-radius: 100%;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
element selected.urgent {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected.active {
|
||||
background-color: @off;
|
||||
color: @background;
|
||||
}
|
||||
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
*
|
||||
* Author : Aditya Shakya
|
||||
* Mail : adi1090x@gmail.com
|
||||
* Github : @adi1090x
|
||||
* Twitter : @adi1090x
|
||||
*
|
||||
*/
|
||||
|
||||
configuration {
|
||||
show-icons: false;
|
||||
font: "Comfortaa 12";
|
||||
disable-history: false;
|
||||
sidebar-mode: false;
|
||||
}
|
||||
|
||||
@import "../../../styles/colors.rasi"
|
||||
|
||||
* {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
window {
|
||||
transparency: "real";
|
||||
border-radius: 40px;
|
||||
location: southeast;
|
||||
width: 260px;
|
||||
x-offset: -15px;
|
||||
y-offset: -45px;
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 0px 2px 0px;
|
||||
border-radius: 25px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: " Battery ";
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
padding: 12px 10px 0px 10px;
|
||||
border-radius: 25px;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
children: [ textbox-prompt-colon, prompt ];
|
||||
spacing: 12px;
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
expand: false;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
margin: 0px 0px 0px 0px;
|
||||
padding: 0px;
|
||||
position: center;
|
||||
}
|
||||
|
||||
listview {
|
||||
columns: 3;
|
||||
lines: 1;
|
||||
spacing: 12px;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
layout: vertical;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @background;
|
||||
children: [ inputbar, listview ];
|
||||
spacing: 12px;
|
||||
margin: 12px;
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: @background-light;
|
||||
text-color: @foreground;
|
||||
orientation: vertical;
|
||||
border-radius: 100%;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
font: "Iosevka Nerd Font 20";
|
||||
expand: true;
|
||||
horizontal-align: 0.5;
|
||||
vertical-align: 0.5;
|
||||
margin: 19px 10px 19px 10px;
|
||||
}
|
||||
|
||||
element normal.urgent,
|
||||
element alternate.urgent {
|
||||
background-color: @off;
|
||||
text-color: @background;
|
||||
border-radius: 100%;
|
||||
}
|
||||
|
||||
element normal.active,
|
||||
element alternate.active {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 0px 2px 0px;
|
||||
border-radius: 100%;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
element selected.urgent {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected.active {
|
||||
background-color: @off;
|
||||
color: @background;
|
||||
}
|
||||
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
*
|
||||
* Author : Aditya Shakya
|
||||
* Mail : adi1090x@gmail.com
|
||||
* Github : @adi1090x
|
||||
* Twitter : @adi1090x
|
||||
*
|
||||
*/
|
||||
|
||||
configuration {
|
||||
show-icons: false;
|
||||
font: "Comfortaa 12";
|
||||
disable-history: false;
|
||||
sidebar-mode: false;
|
||||
}
|
||||
|
||||
@import "../../../styles/colors.rasi"
|
||||
|
||||
* {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
window {
|
||||
transparency: "real";
|
||||
border-radius: 40px;
|
||||
location: southeast;
|
||||
width: 500px;
|
||||
x-offset: -15px;
|
||||
y-offset: -45px;
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 0px 2px 0px;
|
||||
border-radius: 25px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: " MPD ";
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
padding: 12px 10px 0px 10px;
|
||||
border-radius: 25px;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
children: [ textbox-prompt-colon, prompt ];
|
||||
spacing: 12px;
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
expand: false;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
margin: 0px 0px 0px 0px;
|
||||
padding: 0px;
|
||||
position: center;
|
||||
}
|
||||
|
||||
listview {
|
||||
columns: 6;
|
||||
lines: 1;
|
||||
spacing: 12px;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
layout: vertical;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @background;
|
||||
children: [ inputbar, listview ];
|
||||
spacing: 12px;
|
||||
margin: 12px;
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: @background-light;
|
||||
text-color: @foreground;
|
||||
orientation: vertical;
|
||||
border-radius: 100%;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
font: "feather 20";
|
||||
expand: true;
|
||||
horizontal-align: 0.5;
|
||||
vertical-align: 0.5;
|
||||
margin: 19px 10px 19px 10px;
|
||||
}
|
||||
|
||||
element normal.urgent,
|
||||
element alternate.urgent {
|
||||
background-color: @off;
|
||||
text-color: @background;
|
||||
border-radius: 100%;
|
||||
}
|
||||
|
||||
element normal.active,
|
||||
element alternate.active {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 0px 2px 0px;
|
||||
border-radius: 100%;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
element selected.urgent {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected.active {
|
||||
background-color: @off;
|
||||
color: @background;
|
||||
}
|
||||
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
*
|
||||
* Author : Aditya Shakya
|
||||
* Mail : adi1090x@gmail.com
|
||||
* Github : @adi1090x
|
||||
* Twitter : @adi1090x
|
||||
*
|
||||
*/
|
||||
|
||||
configuration {
|
||||
show-icons: false;
|
||||
font: "Comfortaa 12";
|
||||
disable-history: false;
|
||||
sidebar-mode: false;
|
||||
}
|
||||
|
||||
@import "../../../styles/colors.rasi"
|
||||
|
||||
* {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
window {
|
||||
transparency: "real";
|
||||
border-radius: 40px;
|
||||
location: southeast;
|
||||
width: 335px;
|
||||
x-offset: -15px;
|
||||
y-offset: -45px;
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 0px 2px 0px;
|
||||
border-radius: 25px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: " Network ";
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
padding: 12px 10px 0px 10px;
|
||||
border-radius: 25px;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
children: [ textbox-prompt-colon, prompt ];
|
||||
spacing: 12px;
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
expand: false;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
margin: 0px 0px 0px 0px;
|
||||
padding: 0px;
|
||||
position: center;
|
||||
}
|
||||
|
||||
listview {
|
||||
columns: 4;
|
||||
lines: 1;
|
||||
spacing: 12px;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
layout: vertical;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @background;
|
||||
children: [ inputbar, listview ];
|
||||
spacing: 12px;
|
||||
margin: 12px;
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: @background-light;
|
||||
text-color: @foreground;
|
||||
orientation: vertical;
|
||||
border-radius: 100%;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
font: "feather 20";
|
||||
expand: true;
|
||||
horizontal-align: 0.5;
|
||||
vertical-align: 0.5;
|
||||
margin: 19px 10px 19px 10px;
|
||||
}
|
||||
|
||||
element normal.urgent,
|
||||
element alternate.urgent {
|
||||
background-color: @off;
|
||||
text-color: @background;
|
||||
border-radius: 100%;
|
||||
}
|
||||
|
||||
element normal.active,
|
||||
element alternate.active {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 0px 2px 0px;
|
||||
border-radius: 100%;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
element selected.urgent {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected.active {
|
||||
background-color: @off;
|
||||
color: @background;
|
||||
}
|
||||
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
*
|
||||
* Author : Aditya Shakya
|
||||
* Mail : adi1090x@gmail.com
|
||||
* Github : @adi1090x
|
||||
* Twitter : @adi1090x
|
||||
*
|
||||
*/
|
||||
|
||||
configuration {
|
||||
show-icons: false;
|
||||
font: "Comfortaa 12";
|
||||
disable-history: false;
|
||||
sidebar-mode: false;
|
||||
}
|
||||
|
||||
@import "../../../styles/colors.rasi"
|
||||
|
||||
* {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
window {
|
||||
transparency: "real";
|
||||
border-radius: 40px;
|
||||
location: southeast;
|
||||
width: 420px;
|
||||
x-offset: -15px;
|
||||
y-offset: -45px;
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 0px 2px 0px;
|
||||
border-radius: 25px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: " System ";
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
padding: 12px 10px 0px 10px;
|
||||
border-radius: 25px;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
children: [ textbox-prompt-colon, prompt ];
|
||||
spacing: 12px;
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
expand: false;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
margin: 0px 0px 0px 0px;
|
||||
padding: 0px;
|
||||
position: center;
|
||||
}
|
||||
|
||||
listview {
|
||||
columns: 5;
|
||||
lines: 1;
|
||||
spacing: 12px;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
layout: vertical;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @background;
|
||||
children: [ inputbar, listview ];
|
||||
spacing: 12px;
|
||||
margin: 12px;
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: @background-light;
|
||||
text-color: @foreground;
|
||||
orientation: vertical;
|
||||
border-radius: 100%;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
font: "feather 20";
|
||||
expand: true;
|
||||
horizontal-align: 0.5;
|
||||
vertical-align: 0.5;
|
||||
margin: 19px 10px 19px 10px;
|
||||
}
|
||||
|
||||
element normal.urgent,
|
||||
element alternate.urgent {
|
||||
background-color: @off;
|
||||
text-color: @background;
|
||||
border-radius: 100%;
|
||||
}
|
||||
|
||||
element normal.active,
|
||||
element alternate.active {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 0px 2px 0px;
|
||||
border-radius: 100%;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
element selected.urgent {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected.active {
|
||||
background-color: @off;
|
||||
color: @background;
|
||||
}
|
||||
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
*
|
||||
* Author : Aditya Shakya
|
||||
* Mail : adi1090x@gmail.com
|
||||
* Github : @adi1090x
|
||||
* Twitter : @adi1090x
|
||||
*
|
||||
*/
|
||||
|
||||
configuration {
|
||||
show-icons: false;
|
||||
font: "Comfortaa 12";
|
||||
disable-history: false;
|
||||
sidebar-mode: false;
|
||||
}
|
||||
|
||||
@import "../../../styles/colors.rasi"
|
||||
|
||||
* {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
window {
|
||||
transparency: "real";
|
||||
border-radius: 40px;
|
||||
location: southeast;
|
||||
width: 500px;
|
||||
x-offset: -15px;
|
||||
y-offset: -45px;
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 0px 2px 0px;
|
||||
border-radius: 25px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: " Quick Links ";
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
padding: 12px 10px 0px 10px;
|
||||
border-radius: 25px;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
children: [ textbox-prompt-colon, prompt ];
|
||||
spacing: 12px;
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
expand: false;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
margin: 0px 0px 0px 0px;
|
||||
padding: 0px;
|
||||
position: center;
|
||||
}
|
||||
|
||||
listview {
|
||||
columns: 6;
|
||||
lines: 1;
|
||||
spacing: 12px;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
layout: vertical;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @background;
|
||||
children: [ inputbar, listview ];
|
||||
spacing: 12px;
|
||||
margin: 12px;
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: @background-light;
|
||||
text-color: @foreground;
|
||||
orientation: vertical;
|
||||
border-radius: 100%;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
font: "feather 20";
|
||||
expand: true;
|
||||
horizontal-align: 0.5;
|
||||
vertical-align: 0.5;
|
||||
margin: 19px 10px 19px 10px;
|
||||
}
|
||||
|
||||
element normal.urgent,
|
||||
element alternate.urgent {
|
||||
background-color: @off;
|
||||
text-color: @background;
|
||||
border-radius: 100%;
|
||||
}
|
||||
|
||||
element normal.active,
|
||||
element alternate.active {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 0px 2px 0px;
|
||||
border-radius: 100%;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
element selected.urgent {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected.active {
|
||||
background-color: @off;
|
||||
color: @background;
|
||||
}
|
||||
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
*
|
||||
* Author : Aditya Shakya
|
||||
* Mail : adi1090x@gmail.com
|
||||
* Github : @adi1090x
|
||||
* Twitter : @adi1090x
|
||||
*
|
||||
*/
|
||||
|
||||
configuration {
|
||||
show-icons: false;
|
||||
font: "Comfortaa 12";
|
||||
disable-history: false;
|
||||
sidebar-mode: false;
|
||||
}
|
||||
|
||||
@import "../../../styles/colors.rasi"
|
||||
|
||||
* {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
window {
|
||||
transparency: "real";
|
||||
border-radius: 40px;
|
||||
location: southeast;
|
||||
width: 250px;
|
||||
x-offset: -15px;
|
||||
y-offset: -45px;
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 0px 2px 0px;
|
||||
border-radius: 25px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: " Screenshot ";
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
padding: 12px 10px 0px 10px;
|
||||
border-radius: 25px;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
children: [ textbox-prompt-colon, prompt ];
|
||||
spacing: 12px;
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
expand: false;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
margin: 0px 0px 0px 0px;
|
||||
padding: 0px;
|
||||
position: center;
|
||||
}
|
||||
|
||||
listview {
|
||||
columns: 3;
|
||||
lines: 1;
|
||||
spacing: 12px;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
layout: vertical;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @background;
|
||||
children: [ inputbar, listview ];
|
||||
spacing: 12px;
|
||||
margin: 12px;
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: @background-light;
|
||||
text-color: @foreground;
|
||||
orientation: vertical;
|
||||
border-radius: 100%;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
font: "feather 20";
|
||||
expand: true;
|
||||
horizontal-align: 0.5;
|
||||
vertical-align: 0.5;
|
||||
margin: 19px 10px 19px 10px;
|
||||
}
|
||||
|
||||
element normal.urgent,
|
||||
element alternate.urgent {
|
||||
background-color: @off;
|
||||
text-color: @background;
|
||||
border-radius: 100%;
|
||||
}
|
||||
|
||||
element normal.active,
|
||||
element alternate.active {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 0px 2px 0px;
|
||||
border-radius: 100%;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
element selected.urgent {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected.active {
|
||||
background-color: @off;
|
||||
color: @background;
|
||||
}
|
||||
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
*
|
||||
* Author : Aditya Shakya
|
||||
* Mail : adi1090x@gmail.com
|
||||
* Github : @adi1090x
|
||||
* Twitter : @adi1090x
|
||||
*
|
||||
*/
|
||||
|
||||
configuration {
|
||||
show-icons: false;
|
||||
font: "Comfortaa 12";
|
||||
disable-history: false;
|
||||
sidebar-mode: false;
|
||||
}
|
||||
|
||||
@import "../../../styles/colors.rasi"
|
||||
|
||||
* {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
window {
|
||||
transparency: "real";
|
||||
border-radius: 40px;
|
||||
location: southeast;
|
||||
width: 450px;
|
||||
x-offset: -15px;
|
||||
y-offset: -45px;
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 0px 2px 0px;
|
||||
border-radius: 25px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: " Time ";
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
padding: 12px 10px 0px 10px;
|
||||
border-radius: 25px;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
children: [ textbox-prompt-colon, prompt ];
|
||||
spacing: 12px;
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
expand: false;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
margin: 0px 0px 0px 0px;
|
||||
padding: 0px;
|
||||
position: center;
|
||||
}
|
||||
|
||||
listview {
|
||||
columns: 3;
|
||||
lines: 1;
|
||||
spacing: 12px;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
layout: vertical;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @background;
|
||||
children: [ inputbar, listview ];
|
||||
spacing: 12px;
|
||||
margin: 12px;
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: @background-light;
|
||||
text-color: @foreground;
|
||||
orientation: vertical;
|
||||
border-radius: 100%;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
font: "Hurmit Nerd Font Mono 32";
|
||||
expand: true;
|
||||
horizontal-align: 0.5;
|
||||
vertical-align: 0.5;
|
||||
margin: 40px 10px 40px 10px;
|
||||
}
|
||||
|
||||
element normal.urgent,
|
||||
element alternate.urgent {
|
||||
background-color: @off;
|
||||
text-color: @background;
|
||||
border-radius: 100%;
|
||||
}
|
||||
|
||||
element normal.active,
|
||||
element alternate.active {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 0px 2px 0px;
|
||||
border-radius: 100%;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
element selected.urgent {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected.active {
|
||||
background-color: @off;
|
||||
color: @background;
|
||||
}
|
||||
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
*
|
||||
* Author : Aditya Shakya
|
||||
* Mail : adi1090x@gmail.com
|
||||
* Github : @adi1090x
|
||||
* Twitter : @adi1090x
|
||||
*
|
||||
*/
|
||||
|
||||
configuration {
|
||||
show-icons: false;
|
||||
font: "Comfortaa 12";
|
||||
disable-history: false;
|
||||
sidebar-mode: false;
|
||||
}
|
||||
|
||||
@import "../../../styles/colors.rasi"
|
||||
|
||||
* {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
window {
|
||||
transparency: "real";
|
||||
border-radius: 40px;
|
||||
location: southeast;
|
||||
width: 250px;
|
||||
x-offset: -15px;
|
||||
y-offset: -45px;
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 0px 2px 0px;
|
||||
border-radius: 25px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: " Volume ";
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
padding: 12px 10px 0px 10px;
|
||||
border-radius: 25px;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
children: [ textbox-prompt-colon, prompt ];
|
||||
spacing: 12px;
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
expand: false;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
margin: 0px 0px 0px 0px;
|
||||
padding: 0px;
|
||||
position: center;
|
||||
}
|
||||
|
||||
listview {
|
||||
columns: 3;
|
||||
lines: 1;
|
||||
spacing: 12px;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
layout: vertical;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @background;
|
||||
children: [ inputbar, listview ];
|
||||
spacing: 12px;
|
||||
margin: 12px;
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: @background-light;
|
||||
text-color: @foreground;
|
||||
orientation: vertical;
|
||||
border-radius: 100%;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
font: "feather 20";
|
||||
expand: true;
|
||||
horizontal-align: 0.5;
|
||||
vertical-align: 0.5;
|
||||
margin: 19px 10px 19px 10px;
|
||||
}
|
||||
|
||||
element normal.urgent,
|
||||
element alternate.urgent {
|
||||
background-color: @off;
|
||||
text-color: @background;
|
||||
border-radius: 100%;
|
||||
}
|
||||
|
||||
element normal.active,
|
||||
element alternate.active {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 0px 2px 0px;
|
||||
border-radius: 100%;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
element selected.urgent {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected.active {
|
||||
background-color: @off;
|
||||
color: @background;
|
||||
}
|
||||
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
*
|
||||
* Author : Aditya Shakya
|
||||
* Mail : adi1090x@gmail.com
|
||||
* Github : @adi1090x
|
||||
* Twitter : @adi1090x
|
||||
*
|
||||
*/
|
||||
|
||||
configuration {
|
||||
show-icons: false;
|
||||
font: "Comfortaa 12";
|
||||
disable-history: false;
|
||||
sidebar-mode: false;
|
||||
}
|
||||
|
||||
@import "../../../styles/colors.rasi"
|
||||
|
||||
* {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
window {
|
||||
transparency: "real";
|
||||
border-radius: 12px;
|
||||
location: southeast;
|
||||
width: 500px;
|
||||
x-offset: -15px;
|
||||
y-offset: -45px;
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 2px 0px 2px;
|
||||
border-radius: 10px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: " Apps ";
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
padding: 10px 10px 0px 10px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
children: [ textbox-prompt-colon, prompt ];
|
||||
spacing: 12px;
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
expand: false;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
margin: 0px 0px 0px 0px;
|
||||
padding: 0px;
|
||||
position: center;
|
||||
}
|
||||
|
||||
listview {
|
||||
columns: 6;
|
||||
lines: 1;
|
||||
spacing: 12px;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
layout: vertical;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @background;
|
||||
children: [ inputbar, listview ];
|
||||
spacing: 12px;
|
||||
margin: 12px;
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: @background-light;
|
||||
text-color: @foreground;
|
||||
orientation: vertical;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
font: "feather 20";
|
||||
expand: true;
|
||||
horizontal-align: 0.5;
|
||||
vertical-align: 0.5;
|
||||
margin: 19px 10px 19px 10px;
|
||||
}
|
||||
|
||||
element normal.urgent,
|
||||
element alternate.urgent {
|
||||
background-color: @off;
|
||||
text-color: @background;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
element normal.active,
|
||||
element alternate.active {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 2px 0px 2px;
|
||||
border-radius: 12px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
element selected.urgent {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected.active {
|
||||
background-color: @off;
|
||||
color: @background;
|
||||
}
|
||||
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
*
|
||||
* Author : Aditya Shakya
|
||||
* Mail : adi1090x@gmail.com
|
||||
* Github : @adi1090x
|
||||
* Twitter : @adi1090x
|
||||
*
|
||||
*/
|
||||
|
||||
configuration {
|
||||
show-icons: false;
|
||||
font: "Comfortaa 12";
|
||||
disable-history: false;
|
||||
sidebar-mode: false;
|
||||
}
|
||||
|
||||
@import "../../../styles/colors.rasi"
|
||||
|
||||
* {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
window {
|
||||
transparency: "real";
|
||||
border-radius: 12px;
|
||||
location: southeast;
|
||||
width: 250px;
|
||||
x-offset: -15px;
|
||||
y-offset: -45px;
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 2px 0px 2px;
|
||||
border-radius: 10px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: " Brightness ";
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
padding: 10px 10px 0px 10px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
children: [ textbox-prompt-colon, prompt ];
|
||||
spacing: 12px;
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
expand: false;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
margin: 0px 0px 0px 0px;
|
||||
padding: 0px;
|
||||
position: center;
|
||||
}
|
||||
|
||||
listview {
|
||||
columns: 3;
|
||||
lines: 1;
|
||||
spacing: 12px;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
layout: vertical;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @background;
|
||||
children: [ inputbar, listview ];
|
||||
spacing: 12px;
|
||||
margin: 12px;
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: @background-light;
|
||||
text-color: @foreground;
|
||||
orientation: vertical;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
font: "feather 20";
|
||||
expand: true;
|
||||
horizontal-align: 0.5;
|
||||
vertical-align: 0.5;
|
||||
margin: 19px 10px 19px 10px;
|
||||
}
|
||||
|
||||
element normal.urgent,
|
||||
element alternate.urgent {
|
||||
background-color: @off;
|
||||
text-color: @background;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
element normal.active,
|
||||
element alternate.active {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 2px 0px 2px;
|
||||
border-radius: 12px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
element selected.urgent {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected.active {
|
||||
background-color: @off;
|
||||
color: @background;
|
||||
}
|
||||
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
*
|
||||
* Author : Aditya Shakya
|
||||
* Mail : adi1090x@gmail.com
|
||||
* Github : @adi1090x
|
||||
* Twitter : @adi1090x
|
||||
*
|
||||
*/
|
||||
|
||||
configuration {
|
||||
show-icons: false;
|
||||
font: "Comfortaa 12";
|
||||
disable-history: false;
|
||||
sidebar-mode: false;
|
||||
}
|
||||
|
||||
@import "../../../styles/colors.rasi"
|
||||
|
||||
* {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
window {
|
||||
transparency: "real";
|
||||
border-radius: 12px;
|
||||
location: southeast;
|
||||
width: 250px;
|
||||
x-offset: -15px;
|
||||
y-offset: -45px;
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 2px 0px 2px;
|
||||
border-radius: 10px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: " Battery ";
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
padding: 10px 10px 0px 10px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
children: [ textbox-prompt-colon, prompt ];
|
||||
spacing: 12px;
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
expand: false;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
margin: 0px 0px 0px 0px;
|
||||
padding: 0px;
|
||||
position: center;
|
||||
}
|
||||
|
||||
listview {
|
||||
columns: 3;
|
||||
lines: 1;
|
||||
spacing: 12px;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
layout: vertical;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @background;
|
||||
children: [ inputbar, listview ];
|
||||
spacing: 12px;
|
||||
margin: 12px;
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: @background-light;
|
||||
text-color: @foreground;
|
||||
orientation: vertical;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
font: "Iosevka Nerd Font 20";
|
||||
expand: true;
|
||||
horizontal-align: 0.5;
|
||||
vertical-align: 0.5;
|
||||
margin: 19px 10px 19px 10px;
|
||||
}
|
||||
|
||||
element normal.urgent,
|
||||
element alternate.urgent {
|
||||
background-color: @off;
|
||||
text-color: @background;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
element normal.active,
|
||||
element alternate.active {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 2px 0px 2px;
|
||||
border-radius: 12px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
element selected.urgent {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected.active {
|
||||
background-color: @off;
|
||||
color: @background;
|
||||
}
|
||||
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
*
|
||||
* Author : Aditya Shakya
|
||||
* Mail : adi1090x@gmail.com
|
||||
* Github : @adi1090x
|
||||
* Twitter : @adi1090x
|
||||
*
|
||||
*/
|
||||
|
||||
configuration {
|
||||
show-icons: false;
|
||||
font: "Comfortaa 12";
|
||||
disable-history: false;
|
||||
sidebar-mode: false;
|
||||
}
|
||||
|
||||
@import "../../../styles/colors.rasi"
|
||||
|
||||
* {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
window {
|
||||
transparency: "real";
|
||||
border-radius: 12px;
|
||||
location: southeast;
|
||||
width: 500px;
|
||||
x-offset: -15px;
|
||||
y-offset: -45px;
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 2px 0px 2px;
|
||||
border-radius: 10px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: " MPD ";
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
padding: 10px 10px 0px 10px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
children: [ textbox-prompt-colon, prompt ];
|
||||
spacing: 12px;
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
expand: false;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
margin: 0px 0px 0px 0px;
|
||||
padding: 0px;
|
||||
position: center;
|
||||
}
|
||||
|
||||
listview {
|
||||
columns: 6;
|
||||
lines: 1;
|
||||
spacing: 12px;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
layout: vertical;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @background;
|
||||
children: [ inputbar, listview ];
|
||||
spacing: 12px;
|
||||
margin: 12px;
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: @background-light;
|
||||
text-color: @foreground;
|
||||
orientation: vertical;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
font: "feather 20";
|
||||
expand: true;
|
||||
horizontal-align: 0.5;
|
||||
vertical-align: 0.5;
|
||||
margin: 19px 10px 19px 10px;
|
||||
}
|
||||
|
||||
element normal.urgent,
|
||||
element alternate.urgent {
|
||||
background-color: @off;
|
||||
text-color: @background;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
element normal.active,
|
||||
element alternate.active {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 2px 0px 2px;
|
||||
border-radius: 12px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
element selected.urgent {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected.active {
|
||||
background-color: @off;
|
||||
color: @background;
|
||||
}
|
||||
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
*
|
||||
* Author : Aditya Shakya
|
||||
* Mail : adi1090x@gmail.com
|
||||
* Github : @adi1090x
|
||||
* Twitter : @adi1090x
|
||||
*
|
||||
*/
|
||||
|
||||
configuration {
|
||||
show-icons: false;
|
||||
font: "Comfortaa 12";
|
||||
disable-history: false;
|
||||
sidebar-mode: false;
|
||||
}
|
||||
|
||||
@import "../../../styles/colors.rasi"
|
||||
|
||||
* {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
window {
|
||||
transparency: "real";
|
||||
border-radius: 12px;
|
||||
location: southeast;
|
||||
width: 335px;
|
||||
x-offset: -15px;
|
||||
y-offset: -45px;
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 2px 0px 2px;
|
||||
border-radius: 10px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: " Network ";
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
padding: 10px 10px 0px 10px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
children: [ textbox-prompt-colon, prompt ];
|
||||
spacing: 12px;
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
expand: false;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
margin: 0px 0px 0px 0px;
|
||||
padding: 0px;
|
||||
position: center;
|
||||
}
|
||||
|
||||
listview {
|
||||
columns: 4;
|
||||
lines: 1;
|
||||
spacing: 12px;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
layout: vertical;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @background;
|
||||
children: [ inputbar, listview ];
|
||||
spacing: 12px;
|
||||
margin: 12px;
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: @background-light;
|
||||
text-color: @foreground;
|
||||
orientation: vertical;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
font: "feather 20";
|
||||
expand: true;
|
||||
horizontal-align: 0.5;
|
||||
vertical-align: 0.5;
|
||||
margin: 19px 10px 19px 10px;
|
||||
}
|
||||
|
||||
element normal.urgent,
|
||||
element alternate.urgent {
|
||||
background-color: @off;
|
||||
text-color: @background;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
element normal.active,
|
||||
element alternate.active {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 2px 0px 2px;
|
||||
border-radius: 12px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
element selected.urgent {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected.active {
|
||||
background-color: @off;
|
||||
color: @background;
|
||||
}
|
||||
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
*
|
||||
* Author : Aditya Shakya
|
||||
* Mail : adi1090x@gmail.com
|
||||
* Github : @adi1090x
|
||||
* Twitter : @adi1090x
|
||||
*
|
||||
*/
|
||||
|
||||
configuration {
|
||||
show-icons: false;
|
||||
font: "Comfortaa 12";
|
||||
disable-history: false;
|
||||
sidebar-mode: false;
|
||||
}
|
||||
|
||||
@import "../../../styles/colors.rasi"
|
||||
|
||||
* {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
window {
|
||||
transparency: "real";
|
||||
border-radius: 12px;
|
||||
location: southeast;
|
||||
width: 420px;
|
||||
x-offset: -15px;
|
||||
y-offset: -45px;
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 2px 0px 2px;
|
||||
border-radius: 10px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: " System ";
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
padding: 10px 10px 0px 10px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
children: [ textbox-prompt-colon, prompt ];
|
||||
spacing: 12px;
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
expand: false;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
margin: 0px 0px 0px 0px;
|
||||
padding: 0px;
|
||||
position: center;
|
||||
}
|
||||
|
||||
listview {
|
||||
columns: 5;
|
||||
lines: 1;
|
||||
spacing: 12px;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
layout: vertical;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @background;
|
||||
children: [ inputbar, listview ];
|
||||
spacing: 12px;
|
||||
margin: 12px;
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: @background-light;
|
||||
text-color: @foreground;
|
||||
orientation: vertical;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
font: "feather 20";
|
||||
expand: true;
|
||||
horizontal-align: 0.5;
|
||||
vertical-align: 0.5;
|
||||
margin: 19px 10px 19px 10px;
|
||||
}
|
||||
|
||||
element normal.urgent,
|
||||
element alternate.urgent {
|
||||
background-color: @off;
|
||||
text-color: @background;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
element normal.active,
|
||||
element alternate.active {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 2px 0px 2px;
|
||||
border-radius: 12px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
element selected.urgent {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected.active {
|
||||
background-color: @off;
|
||||
color: @background;
|
||||
}
|
||||
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
*
|
||||
* Author : Aditya Shakya
|
||||
* Mail : adi1090x@gmail.com
|
||||
* Github : @adi1090x
|
||||
* Twitter : @adi1090x
|
||||
*
|
||||
*/
|
||||
|
||||
configuration {
|
||||
show-icons: false;
|
||||
font: "Comfortaa 12";
|
||||
disable-history: false;
|
||||
sidebar-mode: false;
|
||||
}
|
||||
|
||||
@import "../../../styles/colors.rasi"
|
||||
|
||||
* {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
window {
|
||||
transparency: "real";
|
||||
border-radius: 12px;
|
||||
location: southeast;
|
||||
width: 500px;
|
||||
x-offset: -15px;
|
||||
y-offset: -45px;
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 2px 0px 2px;
|
||||
border-radius: 10px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: " Quick Links ";
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
padding: 10px 10px 0px 10px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
children: [ textbox-prompt-colon, prompt ];
|
||||
spacing: 12px;
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
expand: false;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
margin: 0px 0px 0px 0px;
|
||||
padding: 0px;
|
||||
position: center;
|
||||
}
|
||||
|
||||
listview {
|
||||
columns: 6;
|
||||
lines: 1;
|
||||
spacing: 12px;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
layout: vertical;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @background;
|
||||
children: [ inputbar, listview ];
|
||||
spacing: 12px;
|
||||
margin: 12px;
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: @background-light;
|
||||
text-color: @foreground;
|
||||
orientation: vertical;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
font: "feather 20";
|
||||
expand: true;
|
||||
horizontal-align: 0.5;
|
||||
vertical-align: 0.5;
|
||||
margin: 19px 10px 19px 10px;
|
||||
}
|
||||
|
||||
element normal.urgent,
|
||||
element alternate.urgent {
|
||||
background-color: @off;
|
||||
text-color: @background;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
element normal.active,
|
||||
element alternate.active {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 2px 0px 2px;
|
||||
border-radius: 12px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
element selected.urgent {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected.active {
|
||||
background-color: @off;
|
||||
color: @background;
|
||||
}
|
||||
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
*
|
||||
* Author : Aditya Shakya
|
||||
* Mail : adi1090x@gmail.com
|
||||
* Github : @adi1090x
|
||||
* Twitter : @adi1090x
|
||||
*
|
||||
*/
|
||||
|
||||
configuration {
|
||||
show-icons: false;
|
||||
font: "Comfortaa 12";
|
||||
disable-history: false;
|
||||
sidebar-mode: false;
|
||||
}
|
||||
|
||||
@import "../../../styles/colors.rasi"
|
||||
|
||||
* {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
window {
|
||||
transparency: "real";
|
||||
border-radius: 12px;
|
||||
location: southeast;
|
||||
width: 250px;
|
||||
x-offset: -15px;
|
||||
y-offset: -45px;
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 2px 0px 2px;
|
||||
border-radius: 10px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: " Screenshot ";
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
padding: 10px 10px 0px 10px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
children: [ textbox-prompt-colon, prompt ];
|
||||
spacing: 12px;
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
expand: false;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
margin: 0px 0px 0px 0px;
|
||||
padding: 0px;
|
||||
position: center;
|
||||
}
|
||||
|
||||
listview {
|
||||
columns: 3;
|
||||
lines: 1;
|
||||
spacing: 12px;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
layout: vertical;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @background;
|
||||
children: [ inputbar, listview ];
|
||||
spacing: 12px;
|
||||
margin: 12px;
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: @background-light;
|
||||
text-color: @foreground;
|
||||
orientation: vertical;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
font: "feather 20";
|
||||
expand: true;
|
||||
horizontal-align: 0.5;
|
||||
vertical-align: 0.5;
|
||||
margin: 19px 10px 19px 10px;
|
||||
}
|
||||
|
||||
element normal.urgent,
|
||||
element alternate.urgent {
|
||||
background-color: @off;
|
||||
text-color: @background;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
element normal.active,
|
||||
element alternate.active {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 2px 0px 2px;
|
||||
border-radius: 12px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
element selected.urgent {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected.active {
|
||||
background-color: @off;
|
||||
color: @background;
|
||||
}
|
||||
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
*
|
||||
* Author : Aditya Shakya
|
||||
* Mail : adi1090x@gmail.com
|
||||
* Github : @adi1090x
|
||||
* Twitter : @adi1090x
|
||||
*
|
||||
*/
|
||||
|
||||
configuration {
|
||||
show-icons: false;
|
||||
font: "Comfortaa 12";
|
||||
disable-history: false;
|
||||
sidebar-mode: false;
|
||||
}
|
||||
|
||||
@import "../../../styles/colors.rasi"
|
||||
|
||||
* {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
window {
|
||||
transparency: "real";
|
||||
border-radius: 12px;
|
||||
location: southeast;
|
||||
width: 450px;
|
||||
x-offset: -15px;
|
||||
y-offset: -45px;
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 2px 0px 2px;
|
||||
border-radius: 10px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: " Time ";
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
padding: 10px 10px 0px 10px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
children: [ textbox-prompt-colon, prompt ];
|
||||
spacing: 12px;
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
expand: false;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
margin: 0px 0px 0px 0px;
|
||||
padding: 0px;
|
||||
position: center;
|
||||
}
|
||||
|
||||
listview {
|
||||
columns: 3;
|
||||
lines: 1;
|
||||
spacing: 12px;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
layout: vertical;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @background;
|
||||
children: [ inputbar, listview ];
|
||||
spacing: 12px;
|
||||
margin: 12px;
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: @background-light;
|
||||
text-color: @foreground;
|
||||
orientation: vertical;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
font: "Hurmit Nerd Font Mono 32";
|
||||
expand: true;
|
||||
horizontal-align: 0.5;
|
||||
vertical-align: 0.5;
|
||||
margin: 30px 10px 30px 10px;
|
||||
}
|
||||
|
||||
element normal.urgent,
|
||||
element alternate.urgent {
|
||||
background-color: @off;
|
||||
text-color: @background;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
element normal.active,
|
||||
element alternate.active {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 2px 0px 2px;
|
||||
border-radius: 12px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
element selected.urgent {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected.active {
|
||||
background-color: @off;
|
||||
color: @background;
|
||||
}
|
||||
@@ -0,0 +1,128 @@
|
||||
/*
|
||||
*
|
||||
* Author : Aditya Shakya
|
||||
* Mail : adi1090x@gmail.com
|
||||
* Github : @adi1090x
|
||||
* Twitter : @adi1090x
|
||||
*
|
||||
*/
|
||||
|
||||
configuration {
|
||||
show-icons: false;
|
||||
font: "Comfortaa 12";
|
||||
disable-history: false;
|
||||
sidebar-mode: false;
|
||||
}
|
||||
|
||||
@import "../../../styles/colors.rasi"
|
||||
|
||||
* {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
window {
|
||||
transparency: "real";
|
||||
border-radius: 12px;
|
||||
location: southeast;
|
||||
width: 250px;
|
||||
x-offset: -15px;
|
||||
y-offset: -45px;
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 2px 0px 2px;
|
||||
border-radius: 10px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: " Volume ";
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
padding: 10px 10px 0px 10px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
children: [ textbox-prompt-colon, prompt ];
|
||||
spacing: 12px;
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
expand: false;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
margin: 0px 0px 0px 0px;
|
||||
padding: 0px;
|
||||
position: center;
|
||||
}
|
||||
|
||||
listview {
|
||||
columns: 3;
|
||||
lines: 1;
|
||||
spacing: 12px;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
layout: vertical;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @background;
|
||||
children: [ inputbar, listview ];
|
||||
spacing: 12px;
|
||||
margin: 12px;
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: @background-light;
|
||||
text-color: @foreground;
|
||||
orientation: vertical;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
font: "feather 20";
|
||||
expand: true;
|
||||
horizontal-align: 0.5;
|
||||
vertical-align: 0.5;
|
||||
margin: 19px 10px 19px 10px;
|
||||
}
|
||||
|
||||
element normal.urgent,
|
||||
element alternate.urgent {
|
||||
background-color: @off;
|
||||
text-color: @background;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
element normal.active,
|
||||
element alternate.active {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 0px 2px 0px 2px;
|
||||
border-radius: 12px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
element selected.urgent {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected.active {
|
||||
background-color: @off;
|
||||
color: @background;
|
||||
}
|
||||
@@ -0,0 +1,127 @@
|
||||
/*
|
||||
*
|
||||
* Author : Aditya Shakya
|
||||
* Mail : adi1090x@gmail.com
|
||||
* Github : @adi1090x
|
||||
* Twitter : @adi1090x
|
||||
*
|
||||
*/
|
||||
|
||||
configuration {
|
||||
show-icons: false;
|
||||
font: "Comfortaa 12";
|
||||
disable-history: false;
|
||||
sidebar-mode: false;
|
||||
}
|
||||
|
||||
@import "../../../styles/colors.rasi"
|
||||
|
||||
* {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
window {
|
||||
transparency: "real";
|
||||
border-radius: 0px;
|
||||
location: southeast;
|
||||
width: 500px;
|
||||
x-offset: -15px;
|
||||
y-offset: -45px;
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 2px 2px 2px 2px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: " Apps ";
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
padding: 12px 10px 0px 10px;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
children: [ textbox-prompt-colon, prompt ];
|
||||
spacing: 0px;
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
expand: false;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
margin: 0px 0px 0px 0px;
|
||||
padding: 0px;
|
||||
position: center;
|
||||
}
|
||||
|
||||
listview {
|
||||
columns: 6;
|
||||
lines: 1;
|
||||
spacing: 12px;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
layout: vertical;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @background;
|
||||
children: [ inputbar, listview ];
|
||||
spacing: 12px;
|
||||
margin: 12px;
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: @background-light;
|
||||
text-color: @foreground;
|
||||
orientation: vertical;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
font: "feather 20";
|
||||
expand: true;
|
||||
horizontal-align: 0.5;
|
||||
vertical-align: 0.5;
|
||||
margin: 19px 10px 19px 10px;
|
||||
}
|
||||
|
||||
element normal.urgent,
|
||||
element alternate.urgent {
|
||||
background-color: @off;
|
||||
text-color: @background;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
element normal.active,
|
||||
element alternate.active {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @border;
|
||||
}
|
||||
|
||||
element selected.urgent {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected.active {
|
||||
background-color: @off;
|
||||
color: @background;
|
||||
}
|
||||
@@ -0,0 +1,127 @@
|
||||
/*
|
||||
*
|
||||
* Author : Aditya Shakya
|
||||
* Mail : adi1090x@gmail.com
|
||||
* Github : @adi1090x
|
||||
* Twitter : @adi1090x
|
||||
*
|
||||
*/
|
||||
|
||||
configuration {
|
||||
show-icons: false;
|
||||
font: "Comfortaa 12";
|
||||
disable-history: false;
|
||||
sidebar-mode: false;
|
||||
}
|
||||
|
||||
@import "../../../styles/colors.rasi"
|
||||
|
||||
* {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
window {
|
||||
transparency: "real";
|
||||
border-radius: 0px;
|
||||
location: southeast;
|
||||
width: 250px;
|
||||
x-offset: -15px;
|
||||
y-offset: -45px;
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 2px 2px 2px 2px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: " Brightness ";
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
padding: 12px 10px 0px 10px;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
children: [ textbox-prompt-colon, prompt ];
|
||||
spacing: 0px;
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
expand: false;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
margin: 0px 0px 0px 0px;
|
||||
padding: 0px;
|
||||
position: center;
|
||||
}
|
||||
|
||||
listview {
|
||||
columns: 3;
|
||||
lines: 1;
|
||||
spacing: 12px;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
layout: vertical;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @background;
|
||||
children: [ inputbar, listview ];
|
||||
spacing: 12px;
|
||||
margin: 12px;
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: @background-light;
|
||||
text-color: @foreground;
|
||||
orientation: vertical;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
font: "feather 20";
|
||||
expand: true;
|
||||
horizontal-align: 0.5;
|
||||
vertical-align: 0.5;
|
||||
margin: 19px 10px 19px 10px;
|
||||
}
|
||||
|
||||
element normal.urgent,
|
||||
element alternate.urgent {
|
||||
background-color: @off;
|
||||
text-color: @background;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
element normal.active,
|
||||
element alternate.active {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @border;
|
||||
}
|
||||
|
||||
element selected.urgent {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected.active {
|
||||
background-color: @off;
|
||||
color: @background;
|
||||
}
|
||||
@@ -0,0 +1,127 @@
|
||||
/*
|
||||
*
|
||||
* Author : Aditya Shakya
|
||||
* Mail : adi1090x@gmail.com
|
||||
* Github : @adi1090x
|
||||
* Twitter : @adi1090x
|
||||
*
|
||||
*/
|
||||
|
||||
configuration {
|
||||
show-icons: false;
|
||||
font: "Comfortaa 12";
|
||||
disable-history: false;
|
||||
sidebar-mode: false;
|
||||
}
|
||||
|
||||
@import "../../../styles/colors.rasi"
|
||||
|
||||
* {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
window {
|
||||
transparency: "real";
|
||||
border-radius: 0px;
|
||||
location: southeast;
|
||||
width: 250px;
|
||||
x-offset: -15px;
|
||||
y-offset: -45px;
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 2px 2px 2px 2px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: " Battery ";
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
padding: 12px 10px 0px 10px;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
children: [ textbox-prompt-colon, prompt ];
|
||||
spacing: 0px;
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
expand: false;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
margin: 0px 0px 0px 0px;
|
||||
padding: 0px;
|
||||
position: center;
|
||||
}
|
||||
|
||||
listview {
|
||||
columns: 3;
|
||||
lines: 1;
|
||||
spacing: 12px;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
layout: vertical;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @background;
|
||||
children: [ inputbar, listview ];
|
||||
spacing: 12px;
|
||||
margin: 12px;
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: @background-light;
|
||||
text-color: @foreground;
|
||||
orientation: vertical;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
font: "Iosevka Nerd Font 20";
|
||||
expand: true;
|
||||
horizontal-align: 0.5;
|
||||
vertical-align: 0.5;
|
||||
margin: 19px 10px 19px 10px;
|
||||
}
|
||||
|
||||
element normal.urgent,
|
||||
element alternate.urgent {
|
||||
background-color: @off;
|
||||
text-color: @background;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
element normal.active,
|
||||
element alternate.active {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @border;
|
||||
}
|
||||
|
||||
element selected.urgent {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected.active {
|
||||
background-color: @off;
|
||||
color: @background;
|
||||
}
|
||||
@@ -0,0 +1,127 @@
|
||||
/*
|
||||
*
|
||||
* Author : Aditya Shakya
|
||||
* Mail : adi1090x@gmail.com
|
||||
* Github : @adi1090x
|
||||
* Twitter : @adi1090x
|
||||
*
|
||||
*/
|
||||
|
||||
configuration {
|
||||
show-icons: false;
|
||||
font: "Comfortaa 12";
|
||||
disable-history: false;
|
||||
sidebar-mode: false;
|
||||
}
|
||||
|
||||
@import "../../../styles/colors.rasi"
|
||||
|
||||
* {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
window {
|
||||
transparency: "real";
|
||||
border-radius: 0px;
|
||||
location: southeast;
|
||||
width: 500px;
|
||||
x-offset: -15px;
|
||||
y-offset: -45px;
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 2px 2px 2px 2px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: " MPD ";
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
padding: 12px 10px 0px 10px;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
children: [ textbox-prompt-colon, prompt ];
|
||||
spacing: 0px;
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
expand: false;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
margin: 0px 0px 0px 0px;
|
||||
padding: 0px;
|
||||
position: center;
|
||||
}
|
||||
|
||||
listview {
|
||||
columns: 6;
|
||||
lines: 1;
|
||||
spacing: 12px;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
layout: vertical;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @background;
|
||||
children: [ inputbar, listview ];
|
||||
spacing: 12px;
|
||||
margin: 12px;
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: @background-light;
|
||||
text-color: @foreground;
|
||||
orientation: vertical;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
font: "feather 20";
|
||||
expand: true;
|
||||
horizontal-align: 0.5;
|
||||
vertical-align: 0.5;
|
||||
margin: 19px 10px 19px 10px;
|
||||
}
|
||||
|
||||
element normal.urgent,
|
||||
element alternate.urgent {
|
||||
background-color: @off;
|
||||
text-color: @background;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
element normal.active,
|
||||
element alternate.active {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @border;
|
||||
}
|
||||
|
||||
element selected.urgent {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected.active {
|
||||
background-color: @off;
|
||||
color: @background;
|
||||
}
|
||||
@@ -0,0 +1,127 @@
|
||||
/*
|
||||
*
|
||||
* Author : Aditya Shakya
|
||||
* Mail : adi1090x@gmail.com
|
||||
* Github : @adi1090x
|
||||
* Twitter : @adi1090x
|
||||
*
|
||||
*/
|
||||
|
||||
configuration {
|
||||
show-icons: false;
|
||||
font: "Comfortaa 12";
|
||||
disable-history: false;
|
||||
sidebar-mode: false;
|
||||
}
|
||||
|
||||
@import "../../../styles/colors.rasi"
|
||||
|
||||
* {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
window {
|
||||
transparency: "real";
|
||||
border-radius: 0px;
|
||||
location: southeast;
|
||||
width: 350px;
|
||||
x-offset: -15px;
|
||||
y-offset: -45px;
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 2px 2px 3px 2px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: " Network ";
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
padding: 12px 10px 0px 10px;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
children: [ textbox-prompt-colon, prompt ];
|
||||
spacing: 0px;
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
expand: false;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
margin: 0px 0px 0px 0px;
|
||||
padding: 0px;
|
||||
position: center;
|
||||
}
|
||||
|
||||
listview {
|
||||
columns: 4;
|
||||
lines: 1;
|
||||
spacing: 12px;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
layout: vertical;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @background;
|
||||
children: [ inputbar, listview ];
|
||||
spacing: 12px;
|
||||
margin: 12px;
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: @background-light;
|
||||
text-color: @foreground;
|
||||
orientation: vertical;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
font: "feather 20";
|
||||
expand: true;
|
||||
horizontal-align: 0.5;
|
||||
vertical-align: 0.5;
|
||||
margin: 19px 10px 19px 10px;
|
||||
}
|
||||
|
||||
element normal.urgent,
|
||||
element alternate.urgent {
|
||||
background-color: @off;
|
||||
text-color: @background;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
element normal.active,
|
||||
element alternate.active {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @border;
|
||||
}
|
||||
|
||||
element selected.urgent {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected.active {
|
||||
background-color: @off;
|
||||
color: @background;
|
||||
}
|
||||
@@ -0,0 +1,127 @@
|
||||
/*
|
||||
*
|
||||
* Author : Aditya Shakya
|
||||
* Mail : adi1090x@gmail.com
|
||||
* Github : @adi1090x
|
||||
* Twitter : @adi1090x
|
||||
*
|
||||
*/
|
||||
|
||||
configuration {
|
||||
show-icons: false;
|
||||
font: "Comfortaa 12";
|
||||
disable-history: false;
|
||||
sidebar-mode: false;
|
||||
}
|
||||
|
||||
@import "../../../styles/colors.rasi"
|
||||
|
||||
* {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
window {
|
||||
transparency: "real";
|
||||
border-radius: 0px;
|
||||
location: southeast;
|
||||
width: 420px;
|
||||
x-offset: -15px;
|
||||
y-offset: -45px;
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 2px 2px 2px 2px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: " System ";
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
padding: 12px 10px 0px 10px;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
children: [ textbox-prompt-colon, prompt ];
|
||||
spacing: 0px;
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
expand: false;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
margin: 0px 0px 0px 0px;
|
||||
padding: 0px;
|
||||
position: center;
|
||||
}
|
||||
|
||||
listview {
|
||||
columns: 5;
|
||||
lines: 1;
|
||||
spacing: 12px;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
layout: vertical;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @background;
|
||||
children: [ inputbar, listview ];
|
||||
spacing: 12px;
|
||||
margin: 12px;
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: @background-light;
|
||||
text-color: @foreground;
|
||||
orientation: vertical;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
font: "feather 20";
|
||||
expand: true;
|
||||
horizontal-align: 0.5;
|
||||
vertical-align: 0.5;
|
||||
margin: 19px 10px 19px 10px;
|
||||
}
|
||||
|
||||
element normal.urgent,
|
||||
element alternate.urgent {
|
||||
background-color: @off;
|
||||
text-color: @background;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
element normal.active,
|
||||
element alternate.active {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @border;
|
||||
}
|
||||
|
||||
element selected.urgent {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected.active {
|
||||
background-color: @off;
|
||||
color: @background;
|
||||
}
|
||||
@@ -0,0 +1,127 @@
|
||||
/*
|
||||
*
|
||||
* Author : Aditya Shakya
|
||||
* Mail : adi1090x@gmail.com
|
||||
* Github : @adi1090x
|
||||
* Twitter : @adi1090x
|
||||
*
|
||||
*/
|
||||
|
||||
configuration {
|
||||
show-icons: false;
|
||||
font: "Comfortaa 12";
|
||||
disable-history: false;
|
||||
sidebar-mode: false;
|
||||
}
|
||||
|
||||
@import "../../../styles/colors.rasi"
|
||||
|
||||
* {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
window {
|
||||
transparency: "real";
|
||||
border-radius: 0px;
|
||||
location: southeast;
|
||||
width: 500px;
|
||||
x-offset: -15px;
|
||||
y-offset: -45px;
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 2px 2px 2px 2px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: " Quick Links ";
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
padding: 12px 10px 0px 10px;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
children: [ textbox-prompt-colon, prompt ];
|
||||
spacing: 0px;
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
expand: false;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
margin: 0px 0px 0px 0px;
|
||||
padding: 0px;
|
||||
position: center;
|
||||
}
|
||||
|
||||
listview {
|
||||
columns: 6;
|
||||
lines: 1;
|
||||
spacing: 12px;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
layout: vertical;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @background;
|
||||
children: [ inputbar, listview ];
|
||||
spacing: 12px;
|
||||
margin: 12px;
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: @background-light;
|
||||
text-color: @foreground;
|
||||
orientation: vertical;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
font: "feather 20";
|
||||
expand: true;
|
||||
horizontal-align: 0.5;
|
||||
vertical-align: 0.5;
|
||||
margin: 19px 10px 19px 10px;
|
||||
}
|
||||
|
||||
element normal.urgent,
|
||||
element alternate.urgent {
|
||||
background-color: @off;
|
||||
text-color: @background;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
element normal.active,
|
||||
element alternate.active {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @border;
|
||||
}
|
||||
|
||||
element selected.urgent {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected.active {
|
||||
background-color: @off;
|
||||
color: @background;
|
||||
}
|
||||
@@ -0,0 +1,127 @@
|
||||
/*
|
||||
*
|
||||
* Author : Aditya Shakya
|
||||
* Mail : adi1090x@gmail.com
|
||||
* Github : @adi1090x
|
||||
* Twitter : @adi1090x
|
||||
*
|
||||
*/
|
||||
|
||||
configuration {
|
||||
show-icons: false;
|
||||
font: "Comfortaa 12";
|
||||
disable-history: false;
|
||||
sidebar-mode: false;
|
||||
}
|
||||
|
||||
@import "../../../styles/colors.rasi"
|
||||
|
||||
* {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
window {
|
||||
transparency: "real";
|
||||
border-radius: 0px;
|
||||
location: southeast;
|
||||
width: 250px;
|
||||
x-offset: -15px;
|
||||
y-offset: -45px;
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 2px 2px 2px 2px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: " Screenshot ";
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
padding: 12px 10px 0px 10px;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
children: [ textbox-prompt-colon, prompt ];
|
||||
spacing: 0px;
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
expand: false;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
margin: 0px 0px 0px 0px;
|
||||
padding: 0px;
|
||||
position: center;
|
||||
}
|
||||
|
||||
listview {
|
||||
columns: 3;
|
||||
lines: 1;
|
||||
spacing: 12px;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
layout: vertical;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @background;
|
||||
children: [ inputbar, listview ];
|
||||
spacing: 12px;
|
||||
margin: 12px;
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: @background-light;
|
||||
text-color: @foreground;
|
||||
orientation: vertical;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
font: "feather 20";
|
||||
expand: true;
|
||||
horizontal-align: 0.5;
|
||||
vertical-align: 0.5;
|
||||
margin: 19px 10px 19px 10px;
|
||||
}
|
||||
|
||||
element normal.urgent,
|
||||
element alternate.urgent {
|
||||
background-color: @off;
|
||||
text-color: @background;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
element normal.active,
|
||||
element alternate.active {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @border;
|
||||
}
|
||||
|
||||
element selected.urgent {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected.active {
|
||||
background-color: @off;
|
||||
color: @background;
|
||||
}
|
||||
@@ -0,0 +1,127 @@
|
||||
/*
|
||||
*
|
||||
* Author : Aditya Shakya
|
||||
* Mail : adi1090x@gmail.com
|
||||
* Github : @adi1090x
|
||||
* Twitter : @adi1090x
|
||||
*
|
||||
*/
|
||||
|
||||
configuration {
|
||||
show-icons: false;
|
||||
font: "Comfortaa 12";
|
||||
disable-history: false;
|
||||
sidebar-mode: false;
|
||||
}
|
||||
|
||||
@import "../../../styles/colors.rasi"
|
||||
|
||||
* {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
window {
|
||||
transparency: "real";
|
||||
border-radius: 0px;
|
||||
location: southeast;
|
||||
width: 450px;
|
||||
x-offset: -15px;
|
||||
y-offset: -45px;
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 2px 2px 3px 2px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: " Time ";
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
padding: 12px 10px 0px 10px;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
children: [ textbox-prompt-colon, prompt ];
|
||||
spacing: 0px;
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
expand: false;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
margin: 0px 0px 0px 0px;
|
||||
padding: 0px;
|
||||
position: center;
|
||||
}
|
||||
|
||||
listview {
|
||||
columns: 3;
|
||||
lines: 1;
|
||||
spacing: 12px;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
layout: vertical;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @background;
|
||||
children: [ inputbar, listview ];
|
||||
spacing: 12px;
|
||||
margin: 12px;
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: @background-light;
|
||||
text-color: @foreground;
|
||||
orientation: vertical;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
font: "Hurmit Nerd Font Mono 32";
|
||||
expand: true;
|
||||
horizontal-align: 0.5;
|
||||
vertical-align: 0.5;
|
||||
margin: 30px 10px 30px 10px;
|
||||
}
|
||||
|
||||
element normal.urgent,
|
||||
element alternate.urgent {
|
||||
background-color: @off;
|
||||
text-color: @background;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
element normal.active,
|
||||
element alternate.active {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @border;
|
||||
}
|
||||
|
||||
element selected.urgent {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected.active {
|
||||
background-color: @off;
|
||||
color: @background;
|
||||
}
|
||||
@@ -0,0 +1,127 @@
|
||||
/*
|
||||
*
|
||||
* Author : Aditya Shakya
|
||||
* Mail : adi1090x@gmail.com
|
||||
* Github : @adi1090x
|
||||
* Twitter : @adi1090x
|
||||
*
|
||||
*/
|
||||
|
||||
configuration {
|
||||
show-icons: false;
|
||||
font: "Comfortaa 12";
|
||||
disable-history: false;
|
||||
sidebar-mode: false;
|
||||
}
|
||||
|
||||
@import "../../../styles/colors.rasi"
|
||||
|
||||
* {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
window {
|
||||
transparency: "real";
|
||||
border-radius: 0px;
|
||||
location: southeast;
|
||||
width: 250px;
|
||||
x-offset: -15px;
|
||||
y-offset: -45px;
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 10px;
|
||||
background-color: @background-light;
|
||||
text-color: @accent;
|
||||
border: 2px 2px 2px 2px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: " Volume ";
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
padding: 12px 10px 0px 10px;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
children: [ textbox-prompt-colon, prompt ];
|
||||
spacing: 0px;
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
expand: false;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @accent;
|
||||
margin: 0px 0px 0px 0px;
|
||||
padding: 0px;
|
||||
position: center;
|
||||
}
|
||||
|
||||
listview {
|
||||
columns: 3;
|
||||
lines: 1;
|
||||
spacing: 12px;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
layout: vertical;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
background-color: @background;
|
||||
children: [ inputbar, listview ];
|
||||
spacing: 12px;
|
||||
margin: 12px;
|
||||
}
|
||||
|
||||
element {
|
||||
background-color: @background-light;
|
||||
text-color: @foreground;
|
||||
orientation: vertical;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
element-text {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
font: "feather 20";
|
||||
expand: true;
|
||||
horizontal-align: 0.5;
|
||||
vertical-align: 0.5;
|
||||
margin: 19px 10px 19px 10px;
|
||||
}
|
||||
|
||||
element normal.urgent,
|
||||
element alternate.urgent {
|
||||
background-color: @off;
|
||||
text-color: @background;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
element normal.active,
|
||||
element alternate.active {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: @accent;
|
||||
text-color: @background;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @border;
|
||||
}
|
||||
|
||||
element selected.urgent {
|
||||
background-color: @on;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
element selected.active {
|
||||
background-color: @off;
|
||||
color: @background;
|
||||
}
|
||||
Executable
+78
@@ -0,0 +1,78 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Author : Aditya Shakya
|
||||
## Mail : adi1090x@gmail.com
|
||||
## Github : @adi1090x
|
||||
## Twitter : @adi1090x
|
||||
|
||||
style="$($HOME/.config/rofi/applets/applets/style.sh)"
|
||||
|
||||
dir="$HOME/.config/rofi/applets/applets/configs/$style"
|
||||
rofi_command="rofi -theme $dir/mpd.rasi"
|
||||
|
||||
# Gets the current status of mpd (for us to parse it later on)
|
||||
status="$(mpc status)"
|
||||
# Defines the Play / Pause option content
|
||||
if [[ $status == *"[playing]"* ]]; then
|
||||
play_pause=""
|
||||
else
|
||||
play_pause=""
|
||||
fi
|
||||
active=""
|
||||
urgent=""
|
||||
|
||||
# Display if repeat mode is on / off
|
||||
tog_repeat=""
|
||||
if [[ $status == *"repeat: on"* ]]; then
|
||||
active="-a 4"
|
||||
elif [[ $status == *"repeat: off"* ]]; then
|
||||
urgent="-u 4"
|
||||
else
|
||||
tog_repeat=" Parsing error"
|
||||
fi
|
||||
|
||||
# Display if random mode is on / off
|
||||
tog_random=""
|
||||
if [[ $status == *"random: on"* ]]; then
|
||||
[ -n "$active" ] && active+=",5" || active="-a 5"
|
||||
elif [[ $status == *"random: off"* ]]; then
|
||||
[ -n "$urgent" ] && urgent+=",5" || urgent="-u 5"
|
||||
else
|
||||
tog_random=" Parsing error"
|
||||
fi
|
||||
stop=""
|
||||
next=""
|
||||
previous=""
|
||||
|
||||
# Variable passed to rofi
|
||||
options="$previous\n$play_pause\n$stop\n$next\n$tog_repeat\n$tog_random"
|
||||
|
||||
# Get the current playing song
|
||||
current=$(mpc -f "%title%" current)
|
||||
# If mpd isn't running it will return an empty string, we don't want to display that
|
||||
if [[ -z "$current" ]]; then
|
||||
current="-"
|
||||
fi
|
||||
|
||||
# Spawn the mpd menu with the "Play / Pause" entry selected by default
|
||||
chosen="$(echo -e "$options" | $rofi_command -p " $current" -dmenu $active $urgent -selected-row 1)"
|
||||
case $chosen in
|
||||
$previous)
|
||||
mpc -q prev && notify-send -u low -t 1800 " $(mpc current)"
|
||||
;;
|
||||
$play_pause)
|
||||
mpc -q toggle && notify-send -u low -t 1800 " $(mpc current)"
|
||||
;;
|
||||
$stop)
|
||||
mpc -q stop
|
||||
;;
|
||||
$next)
|
||||
mpc -q next && notify-send -u low -t 1800 " $(mpc current)"
|
||||
;;
|
||||
$tog_repeat)
|
||||
mpc -q repeat
|
||||
;;
|
||||
$tog_random)
|
||||
mpc -q random
|
||||
;;
|
||||
esac
|
||||
Executable
+68
@@ -0,0 +1,68 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Author : Aditya Shakya
|
||||
## Mail : adi1090x@gmail.com
|
||||
## Github : @adi1090x
|
||||
## Twitter : @adi1090x
|
||||
|
||||
style="$($HOME/.config/rofi/applets/applets/style.sh)"
|
||||
|
||||
dir="$HOME/.config/rofi/applets/applets/configs/$style"
|
||||
rofi_command="rofi -theme $dir/network.rasi"
|
||||
|
||||
## Get info
|
||||
IFACE="$(nmcli | grep -i interface | awk '/interface/ {print $2}')"
|
||||
#SSID="$(iwgetid -r)"
|
||||
#LIP="$(nmcli | grep -i server | awk '/server/ {print $2}')"
|
||||
#PIP="$(dig +short myip.opendns.com @resolver1.opendns.com )"
|
||||
STATUS="$(nmcli radio wifi)"
|
||||
|
||||
active=""
|
||||
urgent=""
|
||||
|
||||
if (ping -c 1 archlinux.org || ping -c 1 google.com || ping -c 1 bitbucket.org || ping -c 1 github.com || ping -c 1 sourceforge.net) &>/dev/null; then
|
||||
if [[ $STATUS == *"enable"* ]]; then
|
||||
if [[ $IFACE == e* ]]; then
|
||||
connected=""
|
||||
else
|
||||
connected=""
|
||||
fi
|
||||
active="-a 0"
|
||||
SSID=" $(iwgetid -r)"
|
||||
PIP="$(wget --timeout=30 http://ipinfo.io/ip -qO -)"
|
||||
fi
|
||||
else
|
||||
urgent="-u 0"
|
||||
SSID="Disconnected"
|
||||
PIP="Not Available"
|
||||
connected=""
|
||||
fi
|
||||
|
||||
## Icons
|
||||
bmon=""
|
||||
launch_cli=""
|
||||
launch=""
|
||||
|
||||
options="$connected\n$bmon\n$launch_cli\n$launch"
|
||||
|
||||
## Main
|
||||
chosen="$(echo -e "$options" | $rofi_command -p "$SSID" -dmenu $active $urgent -selected-row 1)"
|
||||
case $chosen in
|
||||
$connected)
|
||||
if [[ $STATUS == *"enable"* ]]; then
|
||||
nmcli radio wifi off
|
||||
else
|
||||
nmcli radio wifi on
|
||||
fi
|
||||
;;
|
||||
$bmon)
|
||||
termite -e bmon
|
||||
;;
|
||||
$launch_cli)
|
||||
termite -e nmtui
|
||||
;;
|
||||
$launch)
|
||||
nm-connection-editor
|
||||
;;
|
||||
esac
|
||||
|
||||
Executable
+98
@@ -0,0 +1,98 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Author : Aditya Shakya
|
||||
## Mail : adi1090x@gmail.com
|
||||
## Github : @adi1090x
|
||||
## Twitter : @adi1090x
|
||||
|
||||
style="$($HOME/.config/rofi/applets/applets/style.sh)"
|
||||
|
||||
dir="$HOME/.config/rofi/applets/applets/configs/$style"
|
||||
rofi_command="rofi -theme $dir/powermenu.rasi"
|
||||
|
||||
uptime=$(uptime -p | sed -e 's/up //g')
|
||||
cpu=$($HOME/.config/rofi/bin/usedcpu)
|
||||
memory=$($HOME/.config/rofi/bin/usedram)
|
||||
|
||||
# Options
|
||||
shutdown=""
|
||||
reboot=""
|
||||
lock=""
|
||||
suspend=""
|
||||
logout=""
|
||||
|
||||
# Confirmation
|
||||
confirm_exit() {
|
||||
rofi -dmenu\
|
||||
-i\
|
||||
-no-fixed-num-lines\
|
||||
-p "Are You Sure? : "\
|
||||
-theme $HOME/.config/rofi/applets/styles/confirm.rasi
|
||||
}
|
||||
|
||||
# Message
|
||||
msg() {
|
||||
rofi -theme "$HOME/.config/rofi/applets/styles/message.rasi" -e "Available Options - yes / y / no / n"
|
||||
}
|
||||
|
||||
# Variable passed to rofi
|
||||
options="$shutdown\n$reboot\n$lock\n$suspend\n$logout"
|
||||
|
||||
chosen="$(echo -e "$options" | $rofi_command -p "UP - $uptime" -dmenu -selected-row 2)"
|
||||
case $chosen in
|
||||
$shutdown)
|
||||
ans=$(confirm_exit &)
|
||||
if [[ $ans == "yes" || $ans == "YES" || $ans == "y" || $ans == "Y" ]]; then
|
||||
systemctl poweroff
|
||||
elif [[ $ans == "no" || $ans == "NO" || $ans == "n" || $ans == "N" ]]; then
|
||||
exit 0
|
||||
else
|
||||
msg
|
||||
fi
|
||||
;;
|
||||
$reboot)
|
||||
ans=$(confirm_exit &)
|
||||
if [[ $ans == "yes" || $ans == "YES" || $ans == "y" || $ans == "Y" ]]; then
|
||||
systemctl reboot
|
||||
elif [[ $ans == "no" || $ans == "NO" || $ans == "n" || $ans == "N" ]]; then
|
||||
exit 0
|
||||
else
|
||||
msg
|
||||
fi
|
||||
;;
|
||||
$lock)
|
||||
if [[ -f /usr/bin/i3lock ]]; then
|
||||
i3lock
|
||||
elif [[ -f /usr/bin/betterlockscreen ]]; then
|
||||
betterlockscreen -l
|
||||
fi
|
||||
;;
|
||||
$suspend)
|
||||
ans=$(confirm_exit &)
|
||||
if [[ $ans == "yes" || $ans == "YES" || $ans == "y" || $ans == "Y" ]]; then
|
||||
mpc -q pause
|
||||
amixer set Master mute
|
||||
systemctl suspend
|
||||
elif [[ $ans == "no" || $ans == "NO" || $ans == "n" || $ans == "N" ]]; then
|
||||
exit 0
|
||||
else
|
||||
msg
|
||||
fi
|
||||
;;
|
||||
$logout)
|
||||
ans=$(confirm_exit &)
|
||||
if [[ $ans == "yes" || $ans == "YES" || $ans == "y" || $ans == "Y" ]]; then
|
||||
if [[ "$DESKTOP_SESSION" == "Openbox" ]]; then
|
||||
openbox --exit
|
||||
elif [[ "$DESKTOP_SESSION" == "bspwm" ]]; then
|
||||
bspc quit
|
||||
elif [[ "$DESKTOP_SESSION" == "i3" ]]; then
|
||||
i3-msg exit
|
||||
fi
|
||||
elif [[ $ans == "no" || $ans == "NO" || $ans == "n" || $ans == "N" ]]; then
|
||||
exit 0
|
||||
else
|
||||
msg
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
Executable
+62
@@ -0,0 +1,62 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Author : Aditya Shakya
|
||||
## Mail : adi1090x@gmail.com
|
||||
## Github : @adi1090x
|
||||
## Twitter : @adi1090x
|
||||
|
||||
style="$($HOME/.config/rofi/applets/applets/style.sh)"
|
||||
|
||||
dir="$HOME/.config/rofi/applets/applets/configs/$style"
|
||||
rofi_command="rofi -theme $dir/quicklinks.rasi"
|
||||
|
||||
# Error msg
|
||||
msg() {
|
||||
rofi -theme "$HOME/.config/rofi/applets/styles/message.rasi" -e "$1"
|
||||
}
|
||||
|
||||
# Browser
|
||||
if [[ -f /usr/bin/firefox ]]; then
|
||||
app="firefox"
|
||||
elif [[ -f /usr/bin/chromium ]]; then
|
||||
app="chromium"
|
||||
elif [[ -f /usr/bin/midori ]]; then
|
||||
app="midori"
|
||||
else
|
||||
msg "No suitable web browser found!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Links
|
||||
google=""
|
||||
facebook=""
|
||||
twitter=""
|
||||
github=""
|
||||
mail=""
|
||||
youtube=""
|
||||
|
||||
# Variable passed to rofi
|
||||
options="$google\n$facebook\n$twitter\n$github\n$mail\n$youtube"
|
||||
|
||||
chosen="$(echo -e "$options" | $rofi_command -p "Open In : $app" -dmenu -selected-row 0)"
|
||||
case $chosen in
|
||||
$google)
|
||||
$app https://www.google.com &
|
||||
;;
|
||||
$facebook)
|
||||
$app https://www.facebook.com &
|
||||
;;
|
||||
$twitter)
|
||||
$app https://www.twitter.com &
|
||||
;;
|
||||
$github)
|
||||
$app https://www.github.com &
|
||||
;;
|
||||
$mail)
|
||||
$app https://www.gmail.com &
|
||||
;;
|
||||
$youtube)
|
||||
$app https://www.youtube.com &
|
||||
;;
|
||||
esac
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user