Compare commits

...

50 Commits

Author SHA1 Message Date
nevaforget fde1f0b76d merge latest 2025-12-09 13:14:53 +01:00
nevaforget 626c676b92 home/config/waybar/config aktualisiert 2025-12-09 13:12:20 +01:00
nevaforget 104d96d51b home/config/niri/config.kdl aktualisiert 2025-12-09 13:11:43 +01:00
nevaforget b56eef9c00 add niri modules to waybar styles 2025-11-26 13:05:34 +01:00
nevaforget 449fd75f66 add niri modules to waybar 2025-11-26 13:02:38 +01:00
nevaforget 0c78015dc9 Add niri config 2025-11-26 13:01:43 +01:00
nevaforget 6cc2363c2b new simple zshrc without p10k 2025-10-27 16:53:50 +01:00
nevaforget 28155823a0 fix general issues like outdated hypr configs 2025-09-27 17:09:21 +02:00
nevaforget e4c64cb6e1 fix some basic bugs found while testing 2025-09-27 12:26:12 +02:00
nevaforget b07d286a48 replace polkit-gnome by hyprpolkitagent 2025-09-01 11:19:31 +02:00
nevaforget ef6d7ee1bb merge 2025-08-22 11:23:57 +02:00
nevaforget 792137af5e improve qt theming 2025-08-22 11:21:50 +02:00
nevaforget 4ffad97212 add fzf-git script from junegunn 2025-02-17 15:05:14 +01:00
nevaforget 73f62be250 stower.sh aktualisiert 2025-01-16 14:28:24 +01:00
nevaforget b05dacbe21 stower.sh aktualisiert 2025-01-16 14:14:03 +01:00
nevaforget fcd38777a8 stower.sh aktualisiert 2024-12-26 21:44:20 +01:00
nevaforget b05596e7f7 stower.sh aktualisiert 2024-12-26 21:16:55 +01:00
nevaforget 138cdc676b stower.sh aktualisiert 2024-12-26 21:11:53 +01:00
nevaforget 067f9febf9 stower.sh aktualisiert 2024-12-26 21:09:02 +01:00
nevaforget 4ea0d79be5 README.md aktualisiert 2024-12-26 21:01:22 +01:00
nevaforget 2b36a77ecc stower.sh aktualisiert 2024-12-26 21:00:45 +01:00
nevaforget c0bfdca612 stower.sh aktualisiert 2024-12-26 20:59:15 +01:00
nevaforget 41fb5644e3 stower.sh aktualisiert 2024-12-26 20:58:13 +01:00
nevaforget bcd6488e92 stower.sh aktualisiert 2024-12-26 20:54:33 +01:00
nevaforget 6a1d36eace stower.sh aktualisiert 2024-12-26 20:43:50 +01:00
nevaforget 6d52aa4f51 stower.sh aktualisiert 2024-12-26 20:33:30 +01:00
nevaforget 3055163f1c fix sddm theme 2024-12-20 00:16:13 +01:00
nevaforget f5ab1d95f5 minor improvements 2024-12-20 00:11:53 +01:00
nevaforget 4b71b58a9f fix mkdir 2024-12-20 00:02:25 +01:00
nevaforget 6fab05f7b8 fix log 2024-12-20 00:00:53 +01:00
nevaforget b49228a855 lovely wallpaper 2024-12-19 23:58:38 +01:00
nevaforget e492bae84c add missing packages 2024-12-19 23:58:31 +01:00
nevaforget 6f259a5142 add thinkpad display to hyprland config 2024-12-19 23:46:13 +01:00
nevaforget f782da73f0 remove sddm theme 2024-12-19 23:39:20 +01:00
nevaforget ac51a31675 that's a bunch of cool new stuff 2024-12-19 23:32:30 +01:00
nevaforget ae3d29b0ee latest hypr conf 2024-11-12 20:24:12 +01:00
nevaforget 3068b245eb fix sddm theme dependencies 2024-10-10 09:30:51 +02:00
nevaforget 43621c8201 latest user files 2024-10-10 08:27:07 +02:00
nevaforget 9a37e67d11 launch rofi on empty hyprland workspaces 2024-09-13 14:43:26 +02:00
nevaforget 2f402fe686 latest user config 2024-09-13 14:28:50 +02:00
nevaforget cdcaee5943 new apps and setup fixes
- added hypr-empty
- fixed a lot in the setup script
- new settings menu entries
2024-04-10 16:56:50 +02:00
nevaforget 9269a63f80 fix zsh/ohmyzsh plugins 2024-04-03 16:05:44 +02:00
nevaforget d2eef21911 forgot ohmyzsh 2024-04-03 15:54:26 +02:00
nevaforget 6bf8c531ae adding settings-menu desktop files 2024-04-03 14:50:38 +02:00
nevaforget 4d3305ac2f adding powerline conf 2024-04-03 14:50:22 +02:00
nevaforget 7e284e6fca fix zsh setup 2024-04-03 14:34:20 +02:00
nevaforget 1df528665f setup fixes and correct pwd var 2024-04-03 13:46:27 +02:00
nevaforget ccd1408417 update configs and setup 2024-04-02 17:26:01 +02:00
nevaforget 2939a2e2e0 fix wlogout styles 2024-02-27 21:26:54 +01:00
nevaforget 3809855a9e replace swaylock with hyprlock 2024-02-27 21:26:33 +01:00
125 changed files with 8178 additions and 1984 deletions
+2 -2
View File
@@ -19,9 +19,9 @@ This is basically per user!
```bash
$ sudo pacman -Syu git
$ git clone --depth 1 https://gitea.nevaforget.de/dom/monarchos ~/.monarchos
$ git clone --depth 1 https://gitea.moonarch.de/nevaforget/hyprmoonarch ~/.monarchos
$ cd ~/.monarchos
$ ./setup.sh
$ ./stower.sh
```
## Installation Stages
+5
View File
@@ -0,0 +1,5 @@
- move volnote / capsnote to usr
- move rofi from ~/.config/rofi to /usr/share/rofi
- https://wiki.archlinux.de/title/Cpupower
- load kernel modul based on architecture
+50
View File
@@ -0,0 +1,50 @@
[General]
HaltCommand=/usr/bin/systemctl poweroff
InputMethod=
Namespaces=
Numlock=none
RebootCommand=/usr/bin/systemctl reboot
[Autologin]
Relogin=false
Session=
User=
[Theme]
Current=moonarch-sddm
CursorTheme=Sweet-cursors
DisableAvatarsThreshold=7
EnableAvatars=true
FacesDir=/usr/share/sddm/faces
Font=JetBrainsMono Nerd Font
ThemeDir=/usr/share/sddm/themes
[Users]
DefaultPath=/usr/local/sbin:/usr/local/bin:/usr/bin
HideShells=
HideUsers=
MaximumUid=60513
MinimumUid=1000
RememberLastSession=true
RememberLastUser=true
ReuseSession=true
[Wayland]
EnableHiDPI=true
SessionCommand=/usr/share/sddm/scripts/wayland-session
SessionDir=/usr/share/wayland-sessions
SessionLogFile=.local/share/sddm/wayland-session.log
[X11]
DisplayCommand=/usr/share/sddm/scripts/Xsetup
DisplayStopCommand=/usr/share/sddm/scripts/Xstop
EnableHiDPI=true
MinimumVT=1
ServerArguments=-nolisten tcp
ServerPath=/usr/bin/X
SessionCommand=/usr/share/sddm/scripts/Xsession
SessionDir=/usr/share/xsessions
SessionLogFile=.local/share/sddm/xorg-session.log
UserAuthFile=.Xauthority
XauthPath=/usr/bin/xauth
XephyrPath=/usr/bin/Xephyr
+1 -2
View File
@@ -8,7 +8,7 @@ button {
color: #acb0d0;
background-color: #1E1E1E;
border-radius: 10px;
border:5px solid black;
border:none;
background-repeat: no-repeat;
background-position: center;
background-size: 25%;
@@ -16,7 +16,6 @@ button {
}
button:focus, button:active, button:hover {
border:5px solid black;
background-color: #2e3440;
outline-style: none;
}
+1 -1
View File
@@ -10,7 +10,7 @@
#PS1="\W:\$ "
export PS1="󰣇 \[$(tput setaf 6)\]\W \[$(tput sgr0)\] "
export SUDO_EDITOR=/usr/bin/nvim
export SUDO_EDITOR="subl -w"
bind 'set show-all-if-ambiguous on'
bind 'TAB:menu-complete'
+1719
View File
File diff suppressed because it is too large Load Diff
+72 -21
View File
@@ -1,35 +1,86 @@
export LANG=de_DE.UTF-8
export EDITOR="nvim"
export SUDO_EDITOR="nvim"
# Lines configured by zsh-newuser-install
HISTFILE=~/.histfile
HISTSIZE=1000
SAVEHIST=1000
setopt autocd nomatch notify appendhistory sharehistory hist_ignore_space hist_ignore_all_dups hist_save_no_dups hist_find_no_dups
unsetopt beep extendedglob
bindkey -e
# End of lines configured by zsh-newuser-install
# The following lines were added by compinstall
zstyle :compinstall filename '/home/dom/.zshrc'
alias ssh="kitty +kitten ssh"
alias l="lsd -lh --group-dirs first --size short"
alias ls="lsd"
alias orphans='[[ -n $(pacman -Qdt) ]] && sudo pacman -Rs $(pacman -Qdtq) || echo "no orphans to remove"'
autoload -Uz compinit
compinit
# End of lines added by compinstall
parse_git_branch() {
local branch=""
branch=$(git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/')
local git_status=$(git status --porcelain 2>/dev/null)
local color=green
if echo "$git_status" | grep -q "^ M"; then
color=yellow
branch="${branch}*"
fi
if echo "$git_status" | grep -qE "^ A|^\?\?"; then
color=yellow
branch="${branch}+"
fi
if echo "$git_status" | grep -q "^ D"; then
color=yellow
branch="${branch}-"
fi
if [[ -n "$branch" ]]; then
branch=[%F{${color}}${branch}%F{reset}]
fi
echo " $branch"
}
precmd() {
print ""
print -rP "%F{#b4befe}%B%n@%m%b %2~%F{#f5e0dc}$(parse_git_branch)%f"
}
# PS1="%F{#008000}%B%n@%m%b %K{#3a3a3a}%1~%k:%f"
PROMPT="%B%F{#b4befe}$%f%b "
RPROMPT="%F{241}%B%T%b%f"
# set PATH so it includes user's private ~/.local/bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
PATH="$HOME/.local/bin:$PATH"
fi
# Key bindings
bindkey "^[[3~" delete-char
bindkey "^[[H" beginning-of-line
bindkey "^[[F" end-of-line
bindkey "^[[1;5C" forward-word
bindkey "^[[1;5D" backward-word
source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh
# Aliases
alias ssh="TERM=xterm-256color ssh"
#alias fl='lsd -l -h -1 --group-dirs first -X --config-file ~/.config/lsd/config.yaml'
alias orphans='[[ -n $(pacman -Qdt) ]] && sudo pacman -Rs $(pacman -Qdtq) || echo "no orphans to remove"'
alias ls='exa --icons --color=always --group-directories-first'
alias ll='exa -alF --icons --color=always --group-directories-first'
alias la='exa -a --icons --color=always --group-directories-first'
alias l='exa -F --icons --color=always --group-directories-first'
autoload -Uz compinit vcs_info promptinit
compinit
promptinit
# FZF
eval "$(fzf --zsh)"
export FZF_DEFAULT_COMMAND="fd --hidden --strip-cwd-prefix --exclude .git"
export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
export FZF_ALT_C_COMMAND="fd --type=d --hidden --strip-cwd-prefix --exclude .git"
export FZF_DEFAULT_OPTS="--height 50% --layout=default --border --color=hl:#2dd4bf"
# This will set the default prompt to the walters theme
prompt adam2
# FZF Previews
export FZF_CTRL_T_OPTS="--preview 'bat --color=always -n --line-range :500 {}'"
export FZF_ALT_C_OPTS="--preview 'eza --tree --color=always {} | head -200'"
# git info
precmd_vcs_info() { vcs_info }
precmd_functions+=( precmd_vcs_info )
setopt prompt_subst
RPROMPT='${vcs_info_msg_0_}'
# PROMPT='${vcs_info_msg_0_}%# '
zstyle ':vcs_info:git:*' formats '%b'
# Plugins
source ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
source ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
ZSH_AUTOSUGGEST_STRATEGY=(history completion)
export SUDOEDITOR="vim"
export EDITOR="vim"
Binary file not shown.

After

Width:  |  Height:  |  Size: 366 KiB

+36
View File
@@ -0,0 +1,36 @@
{
"window.menuBarVisibility": "toggle",
"workbench.iconTheme": "catppuccin-mocha",
"workbench.colorTheme": "Catppuccin Mocha",
"workbench.startupEditor": "none",
"php.validate.run": "onSave",
"php.validate.executablePath": "/usr/bin/php",
"editor.fontFamily": "'JetBrainsMono Nerd Font', 'monospace', monospace",
"editor.tabSize": 2,
"diffEditor.ignoreTrimWhitespace": false,
"security.workspace.trust.untrustedFiles": "open",
"editor.fontLigatures": true,
"editor.fontSize": 12,
"workbench.externalBrowser": "firefox",
"typescript.updateImportsOnFileMove.enabled": "always",
"editor.minimap.enabled": false,
"indentRainbow.colors": [
"rgba(17,17,17,0.1)",
"rgba(17,17,17,0.2)",
"rgba(17,17,17,0.3)",
"rgba(17,17,17,0.4)",
"rgba(17,17,17,0.5)",
"rgba(17,17,17,0.6)",
"rgba(17,17,17,0.7)",
"rgba(17,17,17,0.8)",
"rgba(17,17,17,0.9)",
"rgba(17,17,17,1.0)"
],
"[json]": {
"editor.defaultFormatter": "vscode.json-language-features"
},
"workbench.tree.renderIndentGuides": "always",
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
}
+2
View File
@@ -0,0 +1,2 @@
#!/bin/sh
alacritty --config-file $HOME/.config/alacritty/alacritty-bg.toml --class "alacritty-bg" -e /home/dom/.config/alacritty/cava
+4
View File
@@ -0,0 +1,4 @@
[window]
decorations = "None"
dynamic_padding = false
opacity = 0.0
+17 -84
View File
@@ -1,109 +1,42 @@
[window]
padding.x = 10
padding.y = 10
decorations = "None"
dynamic_padding = false
dynamic_padding = true
opacity = 0.8
startup_mode = "Windowed"
dynamic_title = true
[font]
size = 11.0
[font.bold]
family = "Hack Nerd Font"
family = "JetBrainsMono Nerd Font"
style = "Bold"
[font.bold_italic]
family = "Hack Nerd Font"
family = "JetBrainsMono Nerd Font"
style = "Bold Italic"
[font.italic]
family = "Hack Nerd Font"
family = "JetBrainsMono Nerd Font"
style = "Italic"
[font.normal]
family = "Hack Nerd Font"
family = "JetBrainsMono Nerd Font"
style = "Regular"
[keyboard]
bindings = [
{ key = "Return", mods = "Control|Shift", action = "SpawnNewInstance" } #ctrl + shift + enter = open new instance in same dir
{ key = "Return", mods = "Control|Shift", action = "SpawnNewInstance" }, #ctrl + shift + enter = open new instance in same dir
]
[cursor]
style = "Block"
# Theme
# catppuccin_mocha
# https://github.com/alacritty/alacritty-theme
[colors.primary]
background = '#1E1E2E' # base
foreground = '#CDD6F4' # text
# Bright and dim foreground colors
dim_foreground = '#CDD6F4' # text
bright_foreground = '#CDD6F4' # text
[mouse]
hide_when_typing = false
# Cursor colors
[colors.cursor]
text = '#1E1E2E' # base
cursor = '#F5E0DC' # rosewater
[colors.vi_mode_cursor]
text = '#1E1E2E' # base
cursor = '#B4BEFE' # lavender
# Search colors
[colors.search.matches]
foreground = '#1E1E2E' # base
background = '#A6ADC8' # subtext0
[colors.search.focused_match]
foreground = '#1E1E2E' # base
background = '#A6E3A1' # green
[colors.footer_bar]
foreground = '#1E1E2E' # base
background = '#A6ADC8' # subtext0
# Keyboard regex hints
[colors.hints.start]
foreground = '#1E1E2E' # base
background = '#F9E2AF' # yellow
[colors.hints.end]
foreground = '#1E1E2E' # base
background = '#A6ADC8' # subtext0
# Selection colors
[colors.selection]
text = '#1E1E2E' # base
background = '#F5E0DC' # rosewater
# Normal colors
[colors.normal]
black = '#45475A' # surface1
red = '#F38BA8' # red
green = '#A6E3A1' # green
yellow = '#F9E2AF' # yellow
blue = '#89B4FA' # blue
magenta = '#F5C2E7' # pink
cyan = '#94E2D5' # teal
white = '#BAC2DE' # subtext1
# Bright colors
[colors.bright]
black = '#585B70' # surface2
red = '#F38BA8' # red
green = '#A6E3A1' # green
yellow = '#F9E2AF' # yellow
blue = '#89B4FA' # blue
magenta = '#F5C2E7' # pink
cyan = '#94E2D5' # teal
white = '#A6ADC8' # subtext0
# Dim colors
[colors.dim]
black = '#45475A' # surface1
red = '#F38BA8' # red
green = '#A6E3A1' # green
yellow = '#F9E2AF' # yellow
blue = '#89B4FA' # blue
magenta = '#F5C2E7' # pink
cyan = '#94E2D5' # teal
white = '#BAC2DE' # subtext1<
[general]
import = ["~/.config/alacritty/catppuccin-mocha.toml"]
@@ -0,0 +1,76 @@
#https://github.com/catppuccin/alacritty/raw/main/catppuccin-mocha.toml
[colors.primary]
background = "#181825"
foreground = "#CDD6F4"
dim_foreground = "#CDD6F4"
bright_foreground = "#CDD6F4"
[colors.cursor]
text = "#1E1E2E"
cursor = "#F5E0DC"
[colors.vi_mode_cursor]
text = "#1E1E2E"
cursor = "#B4BEFE"
[colors.search.matches]
foreground = "#1E1E2E"
background = "#A6ADC8"
[colors.search.focused_match]
foreground = "#1E1E2E"
background = "#A6E3A1"
[colors.footer_bar]
foreground = "#1E1E2E"
background = "#A6ADC8"
[colors.hints.start]
foreground = "#1E1E2E"
background = "#F9E2AF"
[colors.hints.end]
foreground = "#1E1E2E"
background = "#A6ADC8"
[colors.selection]
text = "#1E1E2E"
background = "#F5E0DC"
[colors.normal]
black = "#45475A"
red = "#F38BA8"
green = "#A6E3A1"
yellow = "#F9E2AF"
blue = "#89B4FA"
magenta = "#F5C2E7"
cyan = "#94E2D5"
white = "#BAC2DE"
[colors.bright]
black = "#585B70"
red = "#F38BA8"
green = "#A6E3A1"
yellow = "#F9E2AF"
blue = "#89B4FA"
magenta = "#F5C2E7"
cyan = "#94E2D5"
white = "#A6ADC8"
[colors.dim]
black = "#45475A"
red = "#F38BA8"
green = "#A6E3A1"
yellow = "#F9E2AF"
blue = "#89B4FA"
magenta = "#F5C2E7"
cyan = "#94E2D5"
white = "#BAC2DE"
[[colors.indexed_colors]]
index = 16
color = "#FAB387"
[[colors.indexed_colors]]
index = 17
color = "#F5E0DC"
+2
View File
@@ -0,0 +1,2 @@
#!/bin/sh
sleep 1 && cava
+40 -4
View File
@@ -1,4 +1,4 @@
#? Config file for btop v. 1.2.13
#? Config file for btop v. 1.3.2
#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
@@ -37,6 +37,9 @@ graph_symbol = "braille"
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_cpu = "default"
# Graph symbol to use for graphs in gpu box, "default", "braille", "block" or "tty".
graph_symbol_gpu = "default"
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_mem = "default"
@@ -46,8 +49,8 @@ graph_symbol_net = "default"
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_proc = "default"
#* Manually set which boxes to show. Available values are "cpu mem net proc", separate values with whitespace.
shown_boxes = "cpu mem net proc"
#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace.
shown_boxes = "cpu proc"
#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.
update_ms = 2000
@@ -86,6 +89,9 @@ proc_left = False
#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
proc_filter_kernel = False
#* In tree-view, always accumulate child process resources in the parent process.
proc_aggregate = False
#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available.
#* Select from a list of detected attributes from the options menu.
cpu_graph_upper = "total"
@@ -94,6 +100,9 @@ cpu_graph_upper = "total"
#* Select from a list of detected attributes from the options menu.
cpu_graph_lower = "total"
#* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off".
show_gpu_info = "Auto"
#* Toggles if the lower CPU graph should be inverted.
cpu_invert_lower = True
@@ -101,7 +110,7 @@ cpu_invert_lower = True
cpu_single_graph = False
#* Show cpu box at bottom of screen instead of top.
cpu_bottom = False
cpu_bottom = True
#* Shows the system uptime in the CPU box.
show_uptime = True
@@ -207,6 +216,33 @@ show_battery = True
#* Which battery to use if multiple are present. "Auto" for auto detection.
selected_battery = "Auto"
#* Show power stats of battery next to charge indicator.
show_battery_watts = True
#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
log_level = "WARNING"
#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards.
nvml_measure_pcie_speeds = True
#* Horizontally mirror the GPU graph.
gpu_mirror_graph = True
#* Custom gpu0 model name, empty string to disable.
custom_gpu_name0 = ""
#* Custom gpu1 model name, empty string to disable.
custom_gpu_name1 = ""
#* Custom gpu2 model name, empty string to disable.
custom_gpu_name2 = ""
#* Custom gpu3 model name, empty string to disable.
custom_gpu_name3 = ""
#* Custom gpu4 model name, empty string to disable.
custom_gpu_name4 = ""
#* Custom gpu5 model name, empty string to disable.
custom_gpu_name5 = ""
+4 -4
View File
@@ -48,10 +48,10 @@ xinerama_head = 2,
--Textual
format_human_readable = true, -- KiB, MiB rather then number of bytes
font = 'Hack Nerd Font:normal:size=10', -- the default font used
font2 = 'Hack Nerd Font:bold:size=24', -- font for the time
font3 = 'Hack Nerd Font:size=14', -- font for the date
font4 = 'Hack Nerd Font:bold:size=9', -- font for the keybindings heading
font = 'JetBrainsMono Nerd Font:normal:size=10', -- the default font used
font2 = 'JetBrainsMono Nerd Font:bold:size=24', -- font for the time
font3 = 'JetBrainsMono Nerd Font:size=14', -- font for the date
font4 = 'JetBrainsMono Nerd Font:bold:size=9', -- font for the keybindings heading
font5 = 'MonarchOS:bold:size=16', -- font for the keybindings heading
max_text_width = 0, -- 0 will make sure line does not get broken if width too smal
max_user_text = 16384, -- max text in conky default 16384
+12 -12
View File
@@ -32,10 +32,10 @@
#height = 300
# Position the notification in the top right corner
origin = top-center
origin = top-right
# Offset from the origin
offset = 20x40
offset = 15x15
# Scale factor. It is auto-detected if value is 0.
scale = 0
@@ -93,7 +93,7 @@
frame_width = 2
# Defines color of the frame around the notification window.
frame_color = "#11111b"
frame_color = "#b4befe"
# Size of gap to display between notifications - requires a compositor.
# If value is greater than 0, separator_height will be ignored and a border
@@ -121,7 +121,7 @@
### Text ###
font = Hack Nerd Font 10
font = JetBrainsMono Nerd Font 10
# The spacing between lines. If the height is smaller than the
# font height, it will get raised to the font height.
@@ -199,7 +199,7 @@
enable_recursive_icon_lookup = true
# Set icon theme (only used for recursive icon lookup)
icon_theme = "Flatery-Dark"
icon_theme = "Tela-purple-dark"
# You can also set multiple icon themes, with the leftmost one being used first.
# icon_theme = "Adwaita, breeze"
@@ -215,7 +215,7 @@
max_icon_size = 64
# Paths to default icons (only neccesary when not using recursive icon lookup)
icon_path = /usr/share/icons/Flatery-Dark/16x16/status/:/usr/share/icons/Flatery-Dark/16x16/devices/
#icon_path = /usr/share/icons/Tela-purple-dark/16x16/status/:/usr/share/icons/Tela-purple-dark/16x16/devices/
### History ###
@@ -261,7 +261,7 @@
# Uncomment this if you want to let notications appear under fullscreen
# applications (default: overlay)
layer = top
layer = overlay
# Set this to true to use X11 output on Wayland.
force_xwayland = false
@@ -311,21 +311,21 @@
[urgency_low]
# IMPORTANT: colors have to be defined in quotation marks.
# Otherwise the "#" and following would be interpreted as a comment.
background = "#181825"
foreground = "#CDD6F4"
background = "#1e1e2e"
foreground = "#eff1f5"
timeout = 10
# Icon for notifications with low urgency, uncomment to enable
#default_icon = /path/to/icon
[urgency_normal]
background = "#181825"
foreground = "#CDD6F4"
background = "#1e1e2e"
foreground = "#eff1f5"
timeout = 10
# Icon for notifications with normal urgency, uncomment to enable
#default_icon = /path/to/icon
[urgency_critical]
background = "#181825"
background = "#313244"
foreground = "#CDD6F4"
frame_color = "#eba0ac"
timeout = 60
+136
View File
@@ -0,0 +1,136 @@
// Load with --load-config examples/2.jsonc
// Note that you must replace the image path to an existing image to display it.
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"type": "none"
},
"display": {
"separator": " -> ",
"constants": [
"──────────────────────────────"
],
"key": {
"paddingLeft": 2
}
},
"modules": [
{
"type": "custom",
"format": "┌{$1}{$1}┐",
"outputColor": "90"
},
{
"type": "title",
"keyWidth": 10
},
{
"type": "custom",
"format": "└{$1}{$1}┘",
"outputColor": "90"
},
{
"type": "custom",
"format": " {#90} {#31} {#32} {#33} {#34} {#35} {#36} {#37} {#38} {#39}  {#38} {#37} {#36} {#35} {#34} {#33} {#32} {#31} {#90}"
},
{
"type": "custom",
"format": "┌{$1}{$1}┐",
"outputColor": "90"
},
{
"type": "os",
"key": "{icon} OS",
"keyColor": "yellow"
},
{
"type": "kernel",
"key": "│ ├",
"keyColor": "yellow"
},
{
"type": "packages",
"key": "│ ├󰏖",
"keyColor": "yellow"
},
{
"type": "shell",
"key": "│ └",
"keyColor": "yellow"
},
{
"type": "wm",
"key": " DE/WM",
"keyColor": "blue"
},
{
"type": "wmtheme",
"key": "│ ├󰉼",
"keyColor": "blue"
},
{
"type": "terminal",
"key": "│ ├",
"keyColor": "blue"
},
{
"type": "wallpaper",
"key": "│ └󰸉",
"keyColor": "blue"
},
{
"type": "host",
"key": "󰌢 PC",
"keyColor": "green"
},
{
"type": "cpu",
"key": "│ ├󰻠",
"keyColor": "magenta"
},
{
"type": "gpu",
"key": "│ ├󰍛",
"keyColor": "magenta"
},
{
"type": "disk",
"key": "│ ├",
"keyColor": "green"
},
{
"type": "memory",
"key": "│ ├󰑭",
"keyColor": "green"
},
{
"type": "uptime",
"key": "│ ├󰅐",
"keyColor": "green"
},
{
"type": "sound",
"key": " SND",
"keyColor": "cyan"
},
{
"type": "player",
"key": "│ ├󰥠",
"keyColor": "cyan"
},
{
"type": "media",
"key": "│ └󰝚",
"keyColor": "cyan"
},
{
"type": "custom",
"format": "└{$1}{$1}┘",
"outputColor": "90"
}
]
}
+15
View File
@@ -0,0 +1,15 @@
* {
text-shadow: none;
}
/* remove window title from Client-Side Decorations */
.solid-csd headerbar .title {
font-size: 0;
}
/* hide extra window decorations/double border */
window decoration {
margin: 0;
border: none;
padding: 0;
}
+2 -2
View File
@@ -1,6 +1,6 @@
[Settings]
gtk-theme-name=Catppuccin-Mocha-Standard-Lavender-Dark
gtk-icon-theme-name=Flatery-Dark
gtk-theme-name=catppuccin-mocha-lavender-standard+default
gtk-icon-theme-name=Newaita-reborn-dracula-dark
gtk-font-name=Hack Nerd Font 11
gtk-cursor-theme-name=Sweet-cursors
gtk-cursor-theme-size=24
+4
View File
@@ -0,0 +1,4 @@
[[components]]
workspaces = [ "1", "2", "3", "4", "5", "6", "7", "8", "9", "0" ]
command = "rofi"
args = ["-show", "drun", "-theme", "~/.config/rofi/launcher/launcher.rasi"]
+10
View File
@@ -0,0 +1,10 @@
// blank shader
precision mediump float;
varying vec2 v_texcoord;
uniform sampler2D tex;
void main() {
vec4 pixColor = texture2D(tex, v_texcoord);
gl_FragColor = pixColor;
}
+16
View File
@@ -0,0 +1,16 @@
//
// Example blue light filter shader.
//
precision mediump float;
varying vec2 v_texcoord;
uniform sampler2D tex;
void main() {
vec4 pixColor = texture2D(tex, v_texcoord);
pixColor[2] *= 0.8;
gl_FragColor = pixColor;
}
+7
View File
@@ -4,6 +4,13 @@ bezier = overshot, 0.05, 0.9, 0.1, 1.1
bezier = smoothOut, 0.36, 0, 0.66, -0.56
bezier = smoothIn, 0.25, 1, 0.5, 1
bezier = easeOutQuint,0.23,1,0.32,1
bezier = easeInOutCubic,0.65,0.05,0.36,1
bezier = linear,0,0,1,1
bezier = almostLinear,0.5,0.5,0.75,1.0
bezier = quick,0.15,0,0.1,1
animations {
enabled=1
animation = windows,1,5,overshot,slide # slide or popin
+19 -6
View File
@@ -3,17 +3,30 @@
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
# Execute your favorite apps at launch
#exec-once = hyprctl plugin load /usr/lib/libhycov.so
#exec-once = hyprpm reload -n
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once = ~/.config/hypr/xdg-portal-hyprland
exec-once = lxpolkit
#exec-once = lxpolkit
exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
exec-once = waypaper --restore
#exec-once = hyprpanel
exec-once = waybar
exec-once = cliphist wipe
exec-once = dunst
# exec-once = swayosd-server
# exec-once = swaync
exec-once = wl-paste --watch cliphist store #Stores only text data
exec-once = wl-paste --type image --watch cliphist store #Stores only image data
exec-once = dunst
#exec-once = swayidle -w timeout 300 '$HOME/.local/bin/moo-lockscreen' timeout 360 'hyprctl dispatch dpms off' resume 'hyprctl dispatch dpms on' before-sleep 'swaylock -f'
exec-once = swayidle -w timeout 300 'swaylock -f' timeout 360 'hyprctl dispatch dpms off' resume 'hyprctl dispatch dpms on' before-sleep 'swaylock -f'
exec-once = xdg-mime default pcmanfm.desktop inode/directory
exec-once = hypridle
exec = hyprshade off
# exec-once = sway-audio-idle-inhibit
exec-once = xdg-mime default pcmanfm.desktop inode/directory
exec-once = hyprctl setcursor Sweet-cursors 24
+12 -28
View File
@@ -1,18 +1,7 @@
# █▀▄ █▀▀ █▀▀ █▀█ █▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
# █▄▀ ██▄ █▄▄ █▄█ █▀▄ █▀█ ░█░ █ █▄█ █░▀█
decoration {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
rounding = 5
# █▄▄ █░░ █░█ █▀█
# █▄█ █▄▄ █▄█ █▀▄
#blur = true
#blur_size = 3
#blur_passes = 1
#blur_new_optimizations = true
rounding = 4
blur {
enabled = true
@@ -24,24 +13,19 @@ decoration {
noise = 0.0117
contrast = 0.8916
brightness = 0.8172
#vibrancy = 0.1696
# vibrancy_darkness = 0
special = false
}
# █▀█ █▀█ ▄▀█ █▀▀ █ ▀█▀ █▄█
# █▄█ █▀▀ █▀█ █▄▄ █ ░█░ ░█░
#active_opacity=0.98
#inactive_opacity=0.7
#fullscreen_opacity=1.05
#dim_inactive=0
#dim_strength=0.2
# dim_around=0.5
active_opacity=1.00
inactive_opacity=1.00
#drop_shadow = true
#shadow_range = 10
#shadow_render_power = 3
#col.shadow = rgba(18182540)
dim_inactive = true
dim_strength = 0.2
# █▀ █░█ ▄▀█ █▀▄ █▀█ █░█░█
# ▄█ █▀█ █▀█ █▄▀ █▄█ ▀▄▀▄▀
drop_shadow = true
shadow_range = 4
shadow_render_power = 3
col.shadow = rgba(1a1a1aee)
}
+12 -10
View File
@@ -1,15 +1,17 @@
# █▀▄▀█ █▀█ █▄░█ █ ▀█▀ █▀█ █▀█
# █░▀░█ █▄█ █░▀█ █ ░█░ █▄█ █▀▄
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=HDMI-A-1,2560x1440@144,0x0,1
monitor=DP-2,preferred,2560x0,1
monitor=DP-3,preferred,2560x0,1
# monitor=eDP-1,1920x1200@60,0x0,1
# monitor=DP-3, disabled
monitor=,preferred,auto,1
workspace = HDMI-A-1, 1
workspace = HDMI-A-1, 2
workspace = HDMI-A-1, 3
workspace = DP-2, 4
workspace = DP-2, 5
workspace = DP-2, 6
workspace=1, monitor:HDMI-A-1
workspace=2, monitor:HDMI-A-1
workspace=3, monitor:HDMI-A-1
workspace=4, monitor:DP-3
workspace=5, monitor:DP-3
workspace=6, monitor:DP-3
workspace = , on-created-empty:pkill rofi || ~/.config/rofi/launcher/launcher.sh
+23
View File
@@ -0,0 +1,23 @@
env = GDK_BACKEND,wayland,x11,*
env = QT_QPA_PLATFORM,wayland
env = SDL_VIDEODRIVER,wayland
env = CLUTTER_BACKEND,wayland
env = QT_AUTO_SCREEN_SCALE_FACTOR,1
env = QT_QPA_PLATFORM,wayland;xcb
env = QT_QPA_PLATFORMTHEME,qt6ct
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
#env = XCURSOR_THEME,Sweet Cursors”
#env = XCURSOR_SIZE,24
env = XDG_CURRENT_DESKTOP,Hyprland
env = XDG_SESSION_DESKTOP,Hyprland
env = XDG_SESSION_TYPE,wayland
env = WINDOW_MANAGER,Hyprland
#env = GTK_THEME,Catppuccin-Mocha-Standard-Lavender-Dark
env = LANG,de_DE.UTF-8
env = EDITOR,"subl"
env = SUDO_EDITOR,"subl -w"
env = MOZ_ENABLE_WAYLAND,1
+6 -6
View File
@@ -1,16 +1,16 @@
# █▀▀ █▀▀ █▄░█ █▀▀ █▀█ ▄▀█ █░░
# █▄█ ██▄ █░▀█ ██▄ █▀▄ █▀█ █▄▄
general {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
gaps_in = 4
gaps_out = 8
border_size = 2
col.active_border = rgba(7f849cFF)
col.inactive_border = rgba(1e1e2eFF)
border_size = 1
col.active_border = rgba(7f849c80)
col.inactive_border = rgba(1e1e2e80)
layout = dwindle
resize_on_border = true
#no_cursor_warps = true
}
+1 -6
View File
@@ -1,5 +1,3 @@
# █ █▄░█ █▀█ █░█ ▀█▀
# █ █░▀█ █▀▀ █▄█ ░█░
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input {
kb_layout = de
@@ -21,12 +19,9 @@ input {
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
}
# █▀▀ █▀▀ █▀ ▀█▀ █░█ █▀█ █▀▀ █▀
# █▄█ ██▄ ▄█ ░█░ █▄█ █▀▄ ██▄ ▄█
gestures {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
workspace_swipe = false
# workspace_swipe = false
}
# Example per-device config
+72 -36
View File
@@ -1,47 +1,37 @@
# █▄▀ █▀▀ █▄█ █▄▄ █ █▄░█ █▀▄
# █░█ ██▄ ░█░ █▄█ █ █░▀█ █▄▀
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mainMod = SUPER
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, RETURN, exec, kitty
bind = $mainMod, Q, killactive,
#bind = $mainMod, RETURN, exec, alacritty
bind = $mainMod, RETURN, exec, $terminal
#bind = $mainMod, TAB, cyclenext
bind = $mainMod SHIFT, TAB, cyclenext, prev
#bind = $mainMod, M, exit,
bind = $mainMod, E, exec, xdg-open ~
bind = $mainMod, V, togglefloating,
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, S, togglesplit, # dwindle
bind = $mainMod, F, fullscreen
bind = $mainMod, U, exec, $HOME/.config/conky/conkytoggler
bind = $mainMod, SPACE, exec, pkill rofi || ~/.config/rofi/launcher/launcher.sh
bind = ALT, TAB, exec, pkill rofi || ~/.config/rofi/launcher/launcher.sh window
bind = $mainMod, N, exec, pkill rofi || ~/.config/rofi/nm-vpn/nm-vpn.sh
bind = $mainMod, M, exec, pkill rofi || networkmanager_dmenu
bind = $mainMod, T, exec, pkill rofi || ~/.config/rofi/settings-menu/settings-menu.sh
bind = $mainMod, A, exec, pkill rofi || ~/.config/rofi/volume/volume.sh
bind = $mainMod, C, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy
bind = $mainMod, E, exec, xdg-open ~
bind = $mainMod, F, fullscreen
bind = $mainMod, G, exec, pkill rofi || ~/.config/rofi/shortcuts/hypr.sh
bind = $mainMod, I, exec, pkill rofi || $HOME/.config/rofi/emojis/emojis.sh | rofi -dmenu -theme $HOME/.config/rofi/emojis/emojis.rasi -mesg " Emojis"
#bind = $mainMod, L, exec, swaync-client -t -sw
#bind = $mainMod, K, exec, xkill
bind = SUPER, C, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy
bind = $mainMod, TAB, cyclenext
bind = $mainMod ALT, SHIFT, cyclenext, prev
bind=,PRINT,exec, pkill rofi || ~/.config/rofi/screenshot/screenshot.sh
bind = CTRL ALT, DELETE, exec, kitty btop -p 1
bind = $mainMod, F4, exec, ~/.config/rofi/powermenu/powermenu.sh
bind = $mainMod, escape, exec, killall -SIGUSR1 waybar
bind = $mainMod, M, exec, pkill rofi || networkmanager_dmenu
bind = $mainMod, N, exec, pkill rofi || ~/.config/rofi/nm-vpn/nm-vpn.sh
bind = $mainMod, R, exec, pkill rofi || ~/.config/rofi/launcher/launcher.sh run
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, Q, killactive,
bind = $mainMod, S, exec, pkill rofi || rofi -show "ssh"
bind = $mainMod, T, exec, pkill rofi || rofi -show fb -modes "fb:~/.config/rofi/settings-menu/setmen.sh" -theme $HOME/.config/rofi/settings-menu/settings-menu.rasi
bind = $mainMod, U, exec, $HOME/.config/conky/conkytoggler
bind = $mainMod, V, togglefloating,
bind = $mainMod, SPACE, exec, pkill rofi || ~/.config/rofi/launcher/launcher.sh
# bind = $mainMod, T, exec, pkill rofi || ~/.config/rofi/settings-menu/settings-menu.sh
bind = $mainMod, F4, exec, wlogout -P 1 -s -r 10 -c 10
bind = $mainMod, escape, exec, killall -SIGUSR1
# Move focus with mainMod
bind = $mainMod, H, movefocus, l
bind = $mainMod, J, movefocus, d
bind = $mainMod, K, movefocus, u
bind = $mainMod, L, movefocus, r
# bind = $mainMod, H, movefocus, l
# bind = $mainMod, J, movefocus, d
# bind = $mainMod, K, movefocus, u
# bind = $mainMod, L, movefocus, r
# Move window with mainMod + arrow keys
bind = $mainMod, left, movewindow, l
@@ -81,16 +71,62 @@ bind = $mainMod, mouse_up, workspace, e-1
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
#bind = ALT, TAB, exec, pkill rofi || ~/.config/rofi/launcher/launcher.sh window
bind = ALT,W, exec, killall waybar && waybar &
#bind = $mainMod,tab,hycov:toggleoverview
bind = $mainMod,tab, exec, hyprnome
#bind = $mainMod,tab,exec, pkill rofi || rofi -show window -theme $HOME/.config/rofi/app-switcher/app-switcher.rasi
#bind = $mainMod, L, exec, swaync-client -t -sw
#bind = $mainMod, K, exec, xkill
bind=,PRINT,exec, hyprm-screenshot
#bind=,PRINT,exec, pkill rofi || ~/.config/rofi/screenshot/screenshot.sh
bind = CTRL ALT, DELETE, exec, alacritty -t "BTOP" -e btop -p 1
#bind = CTRL ALT, DELETE, exec, sysmontask
#bind = CTRL ALT, DELETE, exec, env GTK_THEME=Adwaita:dark resources
#ind = $mainMod, O, exec, ~/.config/rofi/powermenu/powermenu.sh
# MODKEYS
bindr = CAPS, Caps_Lock, exec, swayosd --caps-lock
# SPECIAL MODKEYS
binde = ,XF86AudioRaiseVolume, exec, /home/dom/.local/bin/volnote up
binde = $mainMod, Page_Up, exec, /home/dom/.local/bin/volnote up
binde = ,XF86AudioLowerVolume, exec, /home/dom/.local/bin/volnote down
binde = $mainMod, Page_Down, exec, /home/dom/.local/bin/volnote down
binde = ,XF86AudioMute, exec, /home/dom/.local/bin/volnote mute
binde = ,XF86MonBrightnessUp, exec, swayosd --brightness raise
binde = ,XF86MonBrightnessDown, exec, swayosd --brightness lower
binde = ,XF86AudioPlay, exec, /home/dom/.local/bin/volnote toggle
binde = ,XF86AudioStop, exec, playerctl stop
binde = ,XF86AudioPrev, exec, playerctl prev
binde = ,XF86AudioNext, exec, playerctl next
bindr = CAPS, Caps_Lock, exec, /home/dom/.local/bin/capsnote
# OSD (swayosd)
# binde = ,XF86AudioRaiseVolume, exec, swayosd-client --output-volume raise
# binde = $mainMod, KP_Add, exec, swayosd-client --output-volume raise
# binde = $mainMod, Page_Up, exec, swayosd-client --output-volume raise
# binde = ,XF86AudioLowerVolume, exec, swayosd-client --output-volume lower
# binde = $mainMod, KP_Subtract, exec, swayosd-client --output-volume lower
# binde = $mainMod, Page_Down, exec, swayosd-client --output-volume lower
# binde = ,XF86AudioMute, exec, swayosd-client --output-volume mute-toggle
# binde = ,XF86MonBrightnessUp, exec, swayosd --brightness raise
# binde = ,XF86MonBrightnessDown, exec, swayosd --brightness lower
# bindr = CAPS, Caps_Lock, exec, swayosd --caps-lock
+2 -4
View File
@@ -1,13 +1,11 @@
# █▀▄ █░█░█ █ █▄░█ █▀▄ █░░ █▀▀
# █▄▀ ▀▄▀▄▀ █ █░▀█ █▄▀ █▄▄ ██▄
dwindle {
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
pseudotile = true # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = true # you probably want this
no_gaps_when_only = 1 # monocle layout
#no_gaps_when_only = 0 # monocle layout
}
master {
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
new_is_master = true
#new_is_master = true
}
+1 -3
View File
@@ -1,6 +1,3 @@
# █▀▄▀█ █ █▀ █▀▀
# █░▀░█ █ ▄█ █▄▄
misc {
disable_hyprland_logo=true
disable_splash_rendering=false
@@ -10,4 +7,5 @@ misc {
animate_manual_resizes = true
enable_swallow = true
swallow_regex = ^(kitty)$
force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers
}
+45
View File
@@ -0,0 +1,45 @@
plugin {
hycov {
overview_gappo = 60 # gaps width from screen edge
overview_gappi = 24 # gaps width from clients
enable_hotarea = 0 # enable mouse cursor hotarea, when cursor enter hotarea, it will toggle overview
hotarea_monitor = all # monitor name which hotarea is in, default is all
hotarea_pos = 3 # position of hotarea (1: bottom left, 2: bottom right, 3: top left, 4: top right)
hotarea_size = 10 # hotarea size, 10x10
swipe_fingers = 4 # finger number of gesture,move any directory
move_focus_distance = 100 # distance for movefocus,only can use 3 finger to move
enable_gesture = 0 # enable gesture
disable_workspace_change = 0 # disable workspace change when in overview mode
disable_spawn = 0 # disable bind exec when in overview mode
auto_exit = 1 # enable auto exit when no client in overview
auto_fullscreen = 0 # auto make active window maximize after exit overview
only_active_workspace = 0 # only overview the active workspace
only_active_monitor = 0 # only overview the active monitor
enable_alt_release_exit = 1 # alt swith mode arg,see readme for detail
alt_replace_key = Super_L # alt swith mode arg,see readme for detail
alt_toggle_auto_next = 1 # auto focus next window when toggle overview in alt swith mode
click_in_cursor = 1 # when click to jump,the target windwo is find by cursor, not the current foucus window.
hight_of_titlebar = 0 # height deviation of title bar hight
}
hyprbars {
# example config
bar_height = 30
bar_text_size = 9
# example buttons (R -> L)
# hyprbars-button = color, size, on-click
hyprbars-button = rgb(7f849c), 16, 󰖭, hyprctl dispatch killactive
bar_precedence_over_border = false
}
hyprexpo {
columns = 3
gap_size = 10
bg_col = rgb(111111)
workspace_method = first 1# [center/first] [workspace] e.g. first 1 or center m+1
enable_gesture = true # laptop touchpad, 4 fingers
gesture_distance = 300 # how far is the "max"
gesture_positive = true # positive = swipe down. Negative = swipe up.
}
}
+73 -31
View File
@@ -1,18 +1,23 @@
# █░█░█ █ █▄░█ █▀▄ █▀█ █░█░█   █▀█ █░█ █░░ █▀▀ █▀
# ▀▄▀▄▀ █ █░▀█ █▄▀ █▄█ ▀▄▀▄▀   █▀▄ █▄█ █▄▄ ██▄ ▄█
# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
windowrulev2 = noshadow, floating:0
windowrule = dimaround,class:^(polkit)$
windowrule = idleinhibit fullscreen,class:^(.*)$
windowrule = idleinhibit focus, class:mpv
windowrule = idleinhibit focus, class:^(.*celluloid.*)$
# firefox Picture-in-Picture
windowrulev2 = float,class:^(firefox)$,title:^(Picture-in-Picture)$
windowrulev2 = pin,class:^(firefox)$,title:^(Picture-in-Picture)$
windowrulev2 = nofullscreenrequest,class:^(firefox)$,title:^(Picture-in-Picture)$
#windowrulev2 = nofullscreenrequest,class:^(firefox)$,title:^(Picture-in-Picture)$
# firefox figma micro indicator
windowrulev2 = nofullscreenrequest,class:^(firefox)$,title:^(Firefox — Sharing Indicator)$
#windowrulev2 = nofullscreenrequest,class:^(firefox)$,title:^(Firefox — Sharing Indicator)$
windowrulev2 = float,class:^(firefox)$,title:^(Firefox — Sharing Indicator)$
# Common Dialogs
@@ -22,59 +27,75 @@ windowrule = size 600 400, title:^(Öffnen von)$
windowrule = float,title:^(Choose Files)$
windowrule = float,title:^(Save As)$
windowrule = float,title:^(Confirm to replace files)$
windowrule = float,title:^(Ersetzung)$
windowrule = float,title:^(Ersetzung bestätigen)$
windowrule = float,title:^(Kopieren von Dateien)$
windowrule = float,title:^(Anrufe)$
windowrule = float,title:^(Datei ausführen)$
windowrule = float,title:^(File Operation Progress)$
windowrule = float,title:^(Teilen-Hinweis)$
windowrule = float,title:^(Lxpolkit)$
windowrule = float,title:^(Timeshift-gtk)$
windowrule = float,title:^(galculator)$
windowrule = float,title:^(Dateien entpacken)$
windowrulev2 = float,class:^(nm-connection-editor)$
windowrulev2 = float,class:^(sddm-conf)$
windowrule = float, mpv
windowrule = float, Vlc
windowrule = float, file_progress
windowrule = float, confirm
windowrule = float, dialog
windowrule = float, download
windowrule = float, notification
windowrule = float, error
windowrule = float, splash
windowrule = float, confirmreset
windowrule = float, class:mpv
windowrule = float, class:Vlc
windowrule = float, class:file_progress
windowrule = float, class:confirm
windowrule = float, class:dialog
windowrule = float, class:download
windowrule = float, class:notification
windowrule = float, class:error
windowrule = float, class:splash
windowrule = float, class:confirmreset
windowrule = float, title:Open File
windowrule = float, title:branchdialog
windowrule = float, Lxappearance
windowrule = float, Resources
windowrule = float, Rofi
windowrule = animation none,Rofi
windowrule = float,viewnior
windowrule = float,feh
windowrule = float, pavucontrol-qt
windowrule = float, pavucontrol
windowrule = float, file-roller
windowrule = idleinhibit focus, mpv
windowrule = idleinhibit fullscreen, firefox
windowrule = float, class:Lxappearance
windowrule = float, class:Resources
windowrule = float, class:Rofi
windowrule = float, class:Viewnior
windowrule = float, class:feh
windowrule = float, class:pavucontrol-qt
windowrule = float, class:pavucontrol
windowrule = float, class:file-roller
windowrule = float, class:xarchiver
windowrule = float, class:mpv
windowrulev2 = stayfocused, class:^(pinentry-) # fix pinentry losing focus
windowrule = float, title:^(Media viewer)$
windowrule = float, title:^(Volume Control)$
windowrule = float, title:^(btop)$
windowrule = size 1024 768, title:^(btop)$
windowrule = float, title:^(BTOP)$
#windowrule = size 1024 768, title:^(BTOP)$
windowrule = center, title:^(BTOP)$
windowrule = float, title:^(sysmontask)$
windowrule = size 1024 768, title:^(sysmontask)$
windowrule = center, title:^(sysmontask)$
windowrule = float, title:^(missioncenter)$
windowrule = size 1024 768, title:^(missioncenter)$
windowrule = center, title:^(missioncenter)$
windowrule = float, title:^(Picture-in-Picture)$
windowrule = size 800 600, title:^(Volume Control)$
windowrule = move 75 44%, title:^(Volume Control)$
windowrulev2 = opacity 0.3 override 0.3 override 0.3 override,class:^(alacritty-bg)$
windowrulev2 = float,class:^(Conky)$
windowrulev2 = nofocus,class:^(Conky)$
windowrulev2 = pin,class:^(Conky)$
windowrulev2 = move 100 100,class:^(Conky)$
# Audio Mixer
windowrule = float,pavucontrol
windowrule = center,pavucontrol
windowrule = float,class:pavucontrol
windowrule = center,class:pavucontrol
windowrule = float,title:^(NoiseTorch)$
windowrule = float,title:^(Waydroid)$
# Nemo File Roller
windowrule = float,file-roller
windowrule = float,class:file-roller
windowrule = float,title:(Properties)$
# VPN Connection Dialog
@@ -97,3 +118,24 @@ windowrule = fullscreen,title:^(Default - Wine desktop)$
#layerrule = blur,rofi
#windowrule = blur, title:^(kitty)$
windowrule = float, title:^(Alacritty)$
windowrule = center, title:^(Alacritty)$
windowrule = float, title:^(kitty)$
windowrule = center, title:^(kitty)$
windowrule = size 800 600, title:^(kitty)
windowrule = float, title:^(FontManager)$
windowrule = center, title:^(FontManager)$
windowrule = float, title:^(Celluloid)$
windowrule = center, title:^(Celluloid)$
layerrule = blur, waybar
layerrule = blur, rofi
layerrule = dimaround, rofi
+18
View File
@@ -0,0 +1,18 @@
general {
lock_cmd = hyprlock
unlock_cmd = notify-send "Welcome back!"
before_sleep_cmd = hyprctl dispatch dpms on
after_sleep_cmd = hyprctl dispatch dpms off
ignore_dbus_inhibit = false
}
listener {
timeout = 300
on-timeout = hyprlock
}
listener {
timeout = 360
on-timeout = hyprctl dispatch dpms off
on-resume = hyprctl dispatch dpms on
}
+7 -10
View File
@@ -1,16 +1,13 @@
#
# Please note not all available settings / options are set here.
# For a full list, see the wiki
#
env = XCURSOR_SIZE,24
env = HYPRLAND_INTERACTIVE_SCREENSHOT_SAVEDIR,$HOME/Pictures/Screenshots
env = XDG_CURRENT_DESKTOP,Hyprland
env = XDG_SESSION_TYPE,wayland
#env = GTK_THEME,Catppuccin-Mocha-Standard-Lavender-Dark
# Set programs that you use
$terminal = alacritty
source = ~/.config/hypr/hl-env.conf
source = ~/.config/hypr/hl-displays.conf
source = ~/.config/hypr/hl-general.conf
source = ~/.config/hypr/hl-autostart.conf
source = ~/.config/hypr/hl-general.conf
source = ~/.config/hypr/hl-plugins.conf
source = ~/.config/hypr/hl-input.conf
source = ~/.config/hypr/hl-decoration.conf
source = ~/.config/hypr/hl-animation.conf
+81
View File
@@ -0,0 +1,81 @@
general {
ignore_empty_input = true
hide_cursor = true
grace = 1
font_family = JetBrainsMono Nerd Font
}
background {
monitor =
path = screenshot
color = rgba(25, 20, 20, 1.0)
# all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations
blur_passes = 1 # 0 disables blurring
blur_size = 4
size = 4
passes = 2
ignore_opacity = true
new_optimizations = true
xray = false
noise = 0.0117
contrast = 0.8916
brightness = 0.4172
# vibrancy = 0.1696
# vibrancy_darkness = 0
}
image {
monitor =
path = $HOME/.face
size = 100 # lesser side if not 1:1 ratio
rounding = -1 # negative values mean circle
border_size = 2
border_color = rgba(186, 194, 222, 1)
rotate = 0 # degrees, counter-clockwise
reload_time = -1 # seconds between reloading, 0 to reload with SIGUSR2
reload_cmd = # command to get new path. if empty, old path will be used. don't run "follow" commands like tail -F
position = 0, 200
halign = center
valign = center
}
label {
monitor =
text = cmd[update:1000] echo $TIME
color = rgba(180, 190, 254, 1.0)
font_size = 25
font_family = JetBrainsMono Nerd Font
position = 0, 80
halign = center
valign = center
shadow_passes = 0
shadow_size = 3
shadow_color = rgb(0,0,0)
shadow_boost = 1.2
}
input-field {
monitor =
size = 200, 50
outline_thickness = 2
dots_size = 0.24 # Scale of input-field height, 0.2 - 0.8
dots_spacing = 0.5 # Scale of dots' absolute size, 0.0 - 1.0
dots_center = true
outer_color = rgb(313244)
inner_color = rgb(30, 30, 46)
font_color = rgb(A6ADC8)
fade_on_empty = false
placeholder_text = <span foreground='##A6ADC8'>Input Password...</span>
hide_input = false
position = 0, 0
halign = center
valign = center
rounding = 0.1
}
View File
+80
View File
@@ -0,0 +1,80 @@
# vim:ft=kitty
## name: Catppuccin-Mocha
## author: Pocco81 (https://github.com/Pocco81)
## license: MIT
## upstream: https://github.com/catppuccin/kitty/blob/main/mocha.conf
## blurb: Soothing pastel theme for the high-spirited!
# The basic colors
foreground #CDD6F4
background #1E1E2E
selection_foreground #1E1E2E
selection_background #F5E0DC
# Cursor colors
cursor #F5E0DC
cursor_text_color #1E1E2E
# URL underline color when hovering with mouse
url_color #F5E0DC
# Kitty window border colors
active_border_color #B4BEFE
inactive_border_color #6C7086
bell_border_color #F9E2AF
# OS Window titlebar colors
wayland_titlebar_color system
macos_titlebar_color system
# Tab bar colors
active_tab_foreground #11111B
active_tab_background #CBA6F7
inactive_tab_foreground #CDD6F4
inactive_tab_background #181825
tab_bar_background #11111B
# Colors for marks (marked text in the terminal)
mark1_foreground #1E1E2E
mark1_background #B4BEFE
mark2_foreground #1E1E2E
mark2_background #CBA6F7
mark3_foreground #1E1E2E
mark3_background #74C7EC
# The 16 terminal colors
# black
color0 #45475A
color8 #585B70
# red
color1 #F38BA8
color9 #F38BA8
# green
color2 #A6E3A1
color10 #A6E3A1
# yellow
color3 #F9E2AF
color11 #F9E2AF
# blue
color4 #89B4FA
color12 #89B4FA
# magenta
color5 #F5C2E7
color13 #F5C2E7
# cyan
color6 #94E2D5
color14 #94E2D5
# white
color7 #BAC2DE
color15 #A6ADC8
+2
View File
@@ -3,6 +3,8 @@
# - https://gist.github.com/marcusramberg/64010234c95a93d953e8c79fdaf94192
# - https://github.com/arcticicestudio/nord-hyper
background_opacity 0.9
foreground #D8DEE9
background #24273a
+68
View File
@@ -0,0 +1,68 @@
# https://draculatheme.com/kitty
#
# Installation instructions:
#
# cp dracula.conf ~/.config/kitty/
# echo "include dracula.conf" >> ~/.config/kitty/kitty.conf
#
# Then reload kitty for the config to take affect.
# Alternatively copy paste below directly into kitty.conf
background_opacity 0.9
foreground #f8f8f2
background #282a36
selection_foreground #ffffff
selection_background #44475a
url_color #8be9fd
# black
color0 #21222c
color8 #6272a4
# red
color1 #ff5555
color9 #ff6e6e
# green
color2 #50fa7b
color10 #69ff94
# yellow
color3 #f1fa8c
color11 #ffffa5
# blue
color4 #bd93f9
color12 #d6acff
# magenta
color5 #ff79c6
color13 #ff92df
# cyan
color6 #8be9fd
color14 #a4ffff
# white
color7 #f8f8f2
color15 #ffffff
# Cursor colors
cursor #f8f8f2
cursor_text_color background
# Tab bar colors
active_tab_foreground #282a36
active_tab_background #f8f8f2
inactive_tab_foreground #282a36
inactive_tab_background #6272a4
# Marks
mark1_foreground #282a36
mark1_background #ff5555
# Splits/Windows
active_border_color #f8f8f2
inactive_border_color #6272a4
+23 -9
View File
@@ -1,15 +1,15 @@
font_family Hack Nerd Font
bold_font auto
italic_font auto
bold_italic_font auto
# font_family JetBrainsMono Nerd Font
# bold_font auto
# italic_font auto
# bold_italic_font auto
font_size 10.0
disable_ligatures never
disable_ligatures cursor
cursor_shape beam
enable_audio_bell no
window_padding_width 10 10
#window_padding_width 10 10
open_url_with firefox
@@ -24,12 +24,13 @@ tab_title_template " {index}: {title[title.rfind('/')+1:]}"
editor nvim
set-window-title "kitty"
sync_to_monitor yes
background_opacity 0.8
include ./custom.conf
allow_remote_control yes
#include ./custom.conf
# Key mapping
@@ -88,3 +89,16 @@ map ctrl+shift+, move_tab_backward
map ctrl+shift+up increase_font_size
map ctrl+shift+down decrease_font_size
map ctrl+shift+backspace restore_font_size
# BEGIN_KITTY_FONTS
font_family family="JetBrainsMono Nerd Font Mono"
bold_font auto
italic_font auto
bold_italic_font auto
# END_KITTY_FONTS
# BEGIN_KITTY_THEME
# Catppuccin-Mocha
include current-theme.conf
# END_KITTY_THEME
+94
View File
@@ -0,0 +1,94 @@
# font_family JetBrainsMono Nerd Font
# bold_font auto
# italic_font auto
# bold_italic_font auto
font_size 10.0
disable_ligatures cursor
cursor_shape beam
enable_audio_bell no
window_padding_width 10 10
open_url_with firefox
copy_on_select true
update_check_interval 0
confirm_os_window_close 0
tab_bar_style separator
tab_title_template " {index}: {title[title.rfind('/')+1:]}"
editor nvim
sync_to_monitor yes
#include ./custom.conf
# Key mapping
# For a list of key names, see: http://www.glfw.org/docs/latest/group__keys.html
# For a list of modifier names, see: http://www.glfw.org/docs/latest/group__mods.html
# You can use the special action no_op to unmap a keyboard shortcut that is
# assigned in the default configuration.
# Clipboard
map super+v paste_from_clipboard
map ctrl+shift+s paste_from_selection
map super+c copy_to_clipboard
map shift+insert paste_from_selection
# Scrolling
map ctrl+shift+up scroll_line_up
map ctrl+shift+down scroll_line_down
map ctrl+shift+k scroll_line_up
map ctrl+shift+j scroll_line_down
map ctrl+shift+page_up scroll_page_up
map ctrl+shift+page_down scroll_page_down
map ctrl+shift+home scroll_home
map ctrl+shift+end scroll_end
map ctrl+shift+h show_scrollback
# Window management
map super+n new_os_window
map super+w close_window
map ctrl+shift+enter new_window
map ctrl+shift+] next_window
map ctrl+shift+[ previous_window
map ctrl+shift+f move_window_forward
map ctrl+shift+b move_window_backward
map ctrl+shift+` move_window_to_top
map ctrl+shift+1 first_window
map ctrl+shift+2 second_window
map ctrl+shift+3 third_window
map ctrl+shift+4 fourth_window
map ctrl+shift+5 fifth_window
map ctrl+shift+6 sixth_window
map ctrl+shift+7 seventh_window
map ctrl+shift+8 eighth_window
map ctrl+shift+9 ninth_window
map ctrl+shift+0 tenth_window
# Tab management
map ctrl+shift+right next_tab
map ctrl+shift+left previous_tab
map ctrl+shift+t new_tab
map ctrl+shift+q close_tab
map ctrl+shift+l next_layout
map ctrl+shift+. move_tab_forward
map ctrl+shift+, move_tab_backward
# Miscellaneous
map ctrl+shift+up increase_font_size
map ctrl+shift+down decrease_font_size
map ctrl+shift+backspace restore_font_size
# BEGIN_KITTY_FONTS
font_family family="JetBrainsMono Nerd Font Mono"
bold_font auto
italic_font auto
bold_italic_font auto
# END_KITTY_FONTS
+44
View File
@@ -0,0 +1,44 @@
# Nord Colorscheme for Kitty
# Based on:
# - https://gist.github.com/marcusramberg/64010234c95a93d953e8c79fdaf94192
# - https://github.com/arcticicestudio/nord-hyper
background_opacity 0.9
foreground #D8DEE9
background #2E3440
selection_foreground #000000
selection_background #FFFACD
url_color #0087BD
cursor #81A1C1
# black
color0 #3B4252
color8 #4C566A
# red
color1 #BF616A
color9 #BF616A
# green
color2 #A3BE8C
color10 #A3BE8C
# yellow
color3 #EBCB8B
color11 #EBCB8B
# blue
color4 #81A1C1
color12 #81A1C1
# magenta
color5 #B48EAD
color13 #B48EAD
# cyan
color6 #88C0D0
color14 #8FBCBB
# white
color7 #E5E9F0
color15 #ECEFF4
+7
View File
@@ -1,3 +1,10 @@
blocks:
- permission
- user
- group
- size
- date
- name
permission: octal
total-size: true
date: '+%d.%m.%Y %X'
+28 -58
View File
@@ -1,54 +1,26 @@
# See this wiki page for more info:
# https://github.com/dylanaraps/neofetch/wiki/Customizing-Info
#
# Colour config is here and in .zshrc
#
print_info() {
info title
info underline
prin "$(color 12)╭──────────── $(color 10)Software$(color 12) ────────────"
info "$(color 12)│ $(color 14)OS" distro
info "$(color 12)│ $(color 14)Kernel" kernel
info "$(color 12)│ $(color 14)Packages" packages
info "$(color 12)│ $(color 14)Shell" shell
info "$(color 12)│ $(color 14)DE" de
info "$(color 12)│ $(color 14)WM" wm
info "$(color 12)│ $(color 14)Terminal" term
info "$(color 12)│ $(color 14)Local IP" local_ip
info "$(color 12)│ $(color 14)Locale" locale
prin "$(color 12)├──────────── $(color 10)Hardware$(color 12) ────────────"
info "$(color 12)│ $(color 14)Host" model
info "$(color 12)│ $(color 14)CPU" cpu
info "$(color 12)│ $(color 14)GPU" gpu
info "$(color 12)│ $(color 14)Memory" memory
info "$(color 12)│ $(color 14)Disk" disk
prin "$(color 12)├───────────── $(color 10)Uptime$(color 12) ─────────────"
info "$(color 12)│" uptime
prin "$(color 12)╰──────────────────────────────────"
prin "$(color 02) MonArchOS v1.0.0"
info cols
# Defaults
# info "OS" distro
# info "Host" model
# info "Kernel" kernel
# info "Uptime" uptime
# info "Packages" packages
# info "Shell" shell
# info "Resolution" resolution
# info "DE" de
# info "WM" wm
# info "WM Theme" wm_theme
# info "Theme" theme
# info "Icons" icons
# info "Terminal" term
# info "Terminal Font" term_font
# info "CPU" cpu
# info "GPU" gpu
# info "Memory" memory
info "OS" distro
info "Host" model
info "Kernel" kernel
info "Uptime" uptime
info "Packages" packages
info "Shell" shell
info "Resolution" resolution
info "DE" de
info "WM" wm
info "WM Theme" wm_theme
info "Theme" theme
info "Icons" icons
info "Terminal" term
info "Terminal Font" term_font
info "CPU" cpu
info "GPU" gpu
info "Memory" memory
# info "GPU Driver" gpu_driver # Linux/macOS only
# info "CPU Usage" cpu_usage
@@ -62,8 +34,7 @@ print_info() {
# info "Users" users
# info "Locale" locale # This only works on glibc systems.
# info cols
info cols
}
# Title
@@ -90,7 +61,7 @@ title_fqdn="off"
# Example:
# on: '4.8.9-1-ARCH'
# off: 'Linux 4.8.9-1-ARCH'
kernel_shorthand="off"
kernel_shorthand="on"
# Distro
@@ -130,7 +101,7 @@ os_arch="on"
# on: '2 days, 10 hours, 3 mins'
# tiny: '2d 10h 3m'
# off: '2 days, 10 hours, 3 minutes'
uptime_shorthand="off"
uptime_shorthand="on"
# Memory
@@ -224,7 +195,7 @@ speed_type="bios_limit"
# Example:
# on: 'i7-6500U (4) @ 3.1GHz'
# off: 'i7-6500U (4) @ 3.100GHz'
speed_shorthand="on"
speed_shorthand="off"
# Enable/Disable CPU brand in output.
#
@@ -327,7 +298,7 @@ gpu_type="all"
# Example:
# on: '1920x1080 @ 60Hz'
# off: '1920x1080'
refresh_rate="on"
refresh_rate="off"
# Gtk Theme / Icons / Font
@@ -342,7 +313,7 @@ refresh_rate="on"
# Example:
# on: 'Numix, Adwaita'
# off: 'Numix [GTK2], Adwaita [GTK3]'
gtk_shorthand="on"
gtk_shorthand="off"
# Enable/Disable gtk2 Theme / Icons / Font
@@ -416,7 +387,7 @@ de_version="on"
# disk_show=('/'):
# 'Disk (/): 74G / 118G (66%)'
#
disk_show=('/' '/mnt/Storage')
disk_show=('/')
# Disk subtitle.
# What to append to the Disk subtitle.
@@ -440,7 +411,7 @@ disk_show=('/' '/mnt/Storage')
# none: 'Disk: 74G / 118G (66%)'
# 'Disk: 74G / 118G (66%)'
# 'Disk: 74G / 118G (66%)'
disk_subtitle="dir"
disk_subtitle="mount"
# Disk percent.
# Show/Hide disk percent.
@@ -517,7 +488,7 @@ music_player="auto"
#
# Example:
# default: 'Song: Jet - Get Born - Sgt Major'
song_format="%artist% - %title%"
song_format="%artist% - %album% - %title%"
# Print the Artist, Album and Title on separate lines
#
@@ -580,7 +551,7 @@ underline_enabled="on"
# Default: '-'
# Values: 'string'
# Flag: --underline_char
underline_char="¨"
underline_char="-"
# Info Separator
@@ -592,7 +563,7 @@ underline_char="¨"
# Example:
# separator="->": 'Shell-> bash'
# separator=" =": 'WM = dwm'
separator=""
separator=":"
# Color Blocks
@@ -891,4 +862,3 @@ background_color=
# Default: 'off'
# Values: 'on', 'off'
stdout="off"
+643
View File
@@ -0,0 +1,643 @@
// https://yalter.github.io/niri/Configuration:-Introduction
cursor {
xcursor-theme "Sweet-cursors"
hide-when-typing
hide-after-inactive-ms 1000
}
// https://yalter.github.io/niri/Configuration:-Input
input {
mod-key "Super"
keyboard {
xkb {
// You can set rules, model, layout, variant and options.
// For more information, see xkeyboard-config(7).
// For example:
// layout "de"
// 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
// dwta
// 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://yalter.github.io/niri/Configuration:-Outputs
// Remember to uncomment the node by removing "/-"!
/-output "eDP-1" {
// Uncomment this line to disable this output.
// off
// Resolution and, optionally, refresh rate of the output.
// The format is "<width>x<height>" or "<width>x<height>@<refresh rate>".
// If the refresh rate is omitted, niri will pick the highest refresh rate
// for the resolution.
// If the mode is omitted altogether or is invalid, niri will pick one automatically.
// Run `niri msg outputs` while inside a niri instance to list all outputs and their modes.
mode "1920x1080@120.030"
// You can use integer or fractional scale, for example use 1.5 for 150% scale.
scale 2
// Transform allows to rotate the output counter-clockwise, valid values are:
// normal, 90, 180, 270, flipped, flipped-90, flipped-180 and flipped-270.
transform "normal"
// Position of the output in the global coordinate space.
// This affects directional monitor actions like "focus-monitor-left", and cursor movement.
// The cursor can only move between directly adjacent outputs.
// Output scale and rotation has to be taken into account for positioning:
// outputs are sized in logical, or scaled, pixels.
// For example, a 3840×2160 output with scale 2.0 will have a logical size of 1920×1080,
// so to put another output directly adjacent to it on the right, set its x to 1920.
// If the position is unset or results in an overlap, the output is instead placed
// automatically.
position x=1280 y=0
}
output "HDMI-A-1" {
mode "2560x1440@119.998"
}
// Settings that influence how windows are positioned and sized.
// Find more information on the wiki:
// https://yalter.github.io/niri/Configuration:-Layout
layout {
// Set gaps around windows in logical pixels.
gaps 8
// 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"
// always-center-single-column
// 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+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 1
// 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 "#7f849c80"
// 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 "#1e1e2e80"
// 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 2
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 2
// 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
}
}
// Add lines like this to spawn processes at startup.
// Note that running niri as a session supports xdg-desktop-autostart,
// which may be more convenient to use.
// See the binds section below for more spawn examples.
// This line starts waybar, a commonly used bar for Wayland compositors.
spawn-at-startup "waybar"
spawn-at-startup "xwayland-satellite"
spawn-at-startup "dunst"
spawn-sh-at-startup "waypaper --restore"
spawn-sh-at-startup "foot --server"
spawn-sh-at-startup "wl-paste --watch cliphist store"
spawn-sh-at-startup "wl-paste --type image --watch cliphist store"
spawn-at-startup "niri-switch-daemon"
// To run a shell command (with variables, pipes, etc.), use spawn-sh-at-startup:
// spawn-sh-at-startup "qs -c ~/source/qs/MyAwesomeShell"
hotkey-overlay {
// Uncomment this line to disable the "Important Hotkeys" pop-up at startup.
// skip-at-startup
hide-not-bound
}
// 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 "~/Pictures/Screenshots/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://yalter.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 3.0
}
// Window rules let you adjust behavior for individual windows.
// Find more information on the wiki:
// https://yalter.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 4
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; }
Mod+C hotkey-overlay-title=null { spawn-sh "cliphist list | rofi -dmenu | cliphist decode | wl-copy"; }
Alt+W { spawn-sh "killall waybar && waybar &"; }
Mod+A { spawn-sh "pkill rofi || ~/.config/rofi/volume/volume.sh"; }
Mod+E { spawn-sh "xdg-open ~"; }
Mod+T { spawn-sh "pkill rofi || rofi -show fb -modes \"fb:~/.config/rofi/settings-menu/setmen.sh\" -theme $HOME/.config/rofi/settings-menu/settings-menu.rasi"; }
Mod+Tab { spawn "niri-switch"; }
Mod+Shift+Tab { spawn "niri-switch" "--previous"; }
Mod+Return hotkey-overlay-title="Open a Terminal: foot" { spawn "foot"; }
Mod+Space hotkey-overlay-title="Run an Application: rofi" { spawn-sh "pkill rofi || ~/.config/rofi/launcher/launcher.sh"; }
Mod+Alt+L hotkey-overlay-title="Lock the Screen: swaylock" { spawn-sh "wlogout -P 1 -s -r 10 -c 10"; }
// 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.
XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+"; }
XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-"; }
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 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+Tab repeat=false { toggle-overview; }
Mod+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; }
// Alternative commands that move across workspaces when reaching
// the first or last window in a column.
// Mod+J { focus-window-or-workspace-down; }
// Mod+K { focus-window-or-workspace-up; }
// Mod+Ctrl+J { move-window-down-or-to-workspace-down; }
// Mod+Ctrl+K { move-window-up-or-to-workspace-up; }
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+H { focus-monitor-left; }
Mod+Shift+J { focus-monitor-down; }
Mod+Shift+K { focus-monitor-up; }
Mod+Shift+L { 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; }
Mod+R { switch-preset-column-width; }
// Cycling through the presets in reverse order is also possible.
// Mod+R { switch-preset-column-width-back; }
Mod+Shift+R { switch-preset-window-height; }
Mod+Ctrl+R { reset-window-height; }
Mod+F { maximize-column; }
Mod+Shift+F { fullscreen-window; }
// 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; }
// Finer width adjustments.
// This command can also:
// * set width in pixels: "1000"
// * adjust width in pixels: "-5" or "+5"
// * set width as a percentage of screen width: "25%"
// * adjust width as a percentage of screen width: "-10%" or "+10%"
// Pixel sizes use logical, or scaled, pixels. I.e. on an output with scale 2.0,
// set-column-width "100" will make the column occupy 200 physical screen pixels.
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+V { toggle-window-floating; }
Mod+Shift+V { 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; }
}
+464
View File
@@ -0,0 +1,464 @@
;==========================================================
;
; THIS IS AN EXAMPLE CONFIGURATION FILE!
; IT IS NOT SUPPOSED TO WORK OUT OF THE BOX SINCE IS CONTAINS
; SETTINGS THAT ARE SPECIFIC TO THE MACHINE WHICH WAS USED
; TO GENERATE IT.
; Please refer to the web documentation hosted at:
; https://github.com/polybar/polybar#configuration
; and
; https://github.com/polybar/polybar/wiki/Configuration
; if you want to automatically generate one for you.
;
;==========================================================
;
;
; ██████╗ ██████╗ ██╗ ██╗ ██╗██████╗ █████╗ ██████╗
; ██╔══██╗██╔═══██╗██║ ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗
; ██████╔╝██║ ██║██║ ╚████╔╝ ██████╔╝███████║██████╔╝
; ██╔═══╝ ██║ ██║██║ ╚██╔╝ ██╔══██╗██╔══██║██╔══██╗
; ██║ ╚██████╔╝███████╗██║ ██████╔╝██║ ██║██║ ██║
; ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝
;
;
; 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:#222}
background = #222
background-alt = #444
;foreground = ${xrdb:color7:#222}
foreground = #dfdfdf
foreground-alt = #555
primary = #ffb52a
secondary = #e60053
alert = #bd2c40
[bar/leftmon]
bottom = false
monitor = ${env:MONITOR:DP-3}
width = 100%
height = 27
;offset-x = 1%
;offset-y = 1%
radius = 6.0
fixed-center = false
background = ${colors.background}
foreground = ${colors.foreground}
line-size = 3
line-color = #f00
border-size = 4
border-color = #00000000
padding-left = 0
padding-right = 2
module-margin-left = 1
module-margin-right = 2
font-0 = FiraCode Nerd font:pixelsize=10;1
;font-1 = unifont:fontformat=truetype:size=8:antialias=false;0
;font-2 = siji:pixelsize=10;1
modules-left = bspwm xwindow
modules-center =
modules-right = alsa pulseaudio wlan date powermenu
tray-position = right
tray-padding = 2
;tray-background = #0063ff
;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/xwindow]
type = internal/xwindow
label = %title:0:30:...%
[module/filesystem]
type = internal/fs
interval = 25
mount-0 = /
label-mounted = %{F#0a81f5}%mountpoint%%{F-}: %percentage_used%%
label-unmounted = %mountpoint% not mounted
label-unmounted-foreground = ${colors.foreground-alt}
[module/bspwm]
type = internal/bspwm
label-focused = %index%
label-focused-background = ${colors.background-alt}
label-focused-underline= ${colors.primary}
label-focused-padding = 2
label-occupied = %index%
label-occupied-padding = 2
label-empty = %index%
label-empty-foreground = ${colors.foreground-alt}
label-empty-padding = 2
; Separator in between workspaces
; label-separator = |
; Only show workspaced on the same output as the bar
;pin-workspaces = true
label-mode-padding = 2
label-mode-foreground = #000
label-mode-background = ${colors.primary}
; 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 = ${self.label-focused-background}
label-visible-underline = ${self.label-focused-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/mpd]
type = internal/mpd
format-online = <label-song> <icon-prev> <icon-stop> <toggle> <icon-next>
icon-prev = 
icon-stop = 
icon-play = 
icon-pause = 
icon-next = 
label-song-maxlen = 25
label-song-ellipsis = true
[module/xbacklight]
type = internal/xbacklight
format = <label> <bar>
label = BL
bar-width = 10
bar-indicator = |
bar-indicator-foreground = #fff
bar-indicator-font = 2
bar-fill = ─
bar-fill-font = 2
bar-fill-foreground = #9f78e1
bar-empty = ─
bar-empty-font = 2
bar-empty-foreground = ${colors.foreground-alt}
[module/backlight-acpi]
inherit = module/xbacklight
type = internal/backlight
card = intel_backlight
[module/cpu]
type = internal/cpu
interval = 2
format-prefix = " "
format-prefix-foreground = ${colors.foreground-alt}
format-underline = #f90000
label = %percentage:2%%
[module/memory]
type = internal/memory
interval = 2
format-prefix = " "
format-prefix-foreground = ${colors.foreground-alt}
format-underline = #4bffdc
label = %percentage_used%%
[module/wlan]
type = internal/network
interface = wlp6s0
interval = 3.0
format-connected = <ramp-signal> <label-connected>
format-connected-underline = #9f78e1
label-connected = %essid%
format-disconnected =
;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/eth]
type = internal/network
interface = enp9s0
interval = 3.0
format-connected-underline = #55aa55
format-connected-prefix = " "
format-connected-prefix-foreground = ${colors.foreground-alt}
label-connected = %local_ip%
format-disconnected =
;format-disconnected = <label-disconnected>
;format-disconnected-underline = ${self.format-connected-underline}
;label-disconnected = %ifname% disconnected
;label-disconnected-foreground = ${colors.foreground-alt}
[module/date]
type = internal/date
interval = 5
date =
date-alt = " %Y-%m-%d"
time = %H:%M
time-alt = %H:%M:%S
format-prefix = 
format-prefix-foreground = ${colors.foreground-alt}
format-underline = #0a6cf5
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 = #666
bar-volume-width = 10
bar-volume-foreground-0 = #55aa55
bar-volume-foreground-1 = #55aa55
bar-volume-foreground-2 = #55aa55
bar-volume-foreground-3 = #55aa55
bar-volume-foreground-4 = #55aa55
bar-volume-foreground-5 = #f5a70a
bar-volume-foreground-6 = #ff5555
bar-volume-gradient = false
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/alsa]
type = internal/alsa
format-volume = <label-volume> <bar-volume>
label-volume = VOL
label-volume-foreground = ${root.foreground}
format-muted-prefix = " "
format-muted-foreground = ${colors.foreground-alt}
label-muted = sound muted
bar-volume-width = 10
bar-volume-foreground-0 = #55aa55
bar-volume-foreground-1 = #55aa55
bar-volume-foreground-2 = #55aa55
bar-volume-foreground-3 = #55aa55
bar-volume-foreground-4 = #55aa55
bar-volume-foreground-5 = #f5a70a
bar-volume-foreground-6 = #ff5555
bar-volume-gradient = false
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 = BAT0
adapter = AC
full-at = 98
format-charging = <animation-charging> <label-charging>
format-charging-underline = #ffb52a
format-discharging = <animation-discharging> <label-discharging>
format-discharging-underline = ${self.format-charging-underline}
format-full-prefix = " "
format-full-prefix-foreground = ${colors.foreground-alt}
format-full-underline = ${self.format-charging-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
[module/temperature]
type = internal/temperature
thermal-zone = 0
warn-temperature = 60
format = <ramp> <label>
format-underline = #f50a4d
format-warn = <ramp> <label-warn>
format-warn-underline = ${self.format-underline}
label = %temperature-c%
label-warn = %temperature-c%
label-warn-foreground = ${colors.secondary}
ramp-0 = 
ramp-1 = 
ramp-2 = 
ramp-foreground = ${colors.foreground-alt}
[module/powermenu]
type = custom/menu
expand-right = true
format-spacing = 1
label-open = 
label-open-foreground = ${colors.secondary}
label-close =  cancel
label-close-foreground = ${colors.secondary}
label-separator = |
label-separator-foreground = ${colors.foreground-alt}
menu-0-0 = reboot
menu-0-0-exec = menu-open-1
menu-0-1 = power off
menu-0-1-exec = menu-open-2
menu-1-0 = cancel
menu-1-0-exec = menu-open-0
menu-1-1 = reboot
menu-1-1-exec = sudo reboot
menu-2-0 = power off
menu-2-0-exec = sudo poweroff
menu-2-1 = cancel
menu-2-1-exec = menu-open-0
[bar/rightmon]
bottom = false
monitor = ${env:MONITOR:DP-3}
width = 100%
height = 27
;offset-x = 1%
;offset-y = 1%
radius = 6.0
fixed-center = false
background = ${colors.background}
foreground = ${colors.foreground}
line-size = 3
line-color = #f00
border-size = 4
border-color = #00000000
padding-left = 0
padding-right = 2
module-margin-left = 1
module-margin-right = 2
font-0 = FiraCode Nerd font:pixelsize=10;1
;font-1 = unifont:fontformat=truetype:size=8:antialias=false;0
;font-2 = siji:pixelsize=10;1
modules-left = bspwm xwindow
modules-center =
modules-right = alsa pulseaudio wlan date powermenu
tray-position = right
tray-padding = 2
;tray-background = #0063ff
;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
[settings]
screenchange-reload = true
;compositing-background = xor
;compositing-background = screen
;compositing-foreground = source
;compositing-border = over
;pseudo-transparency = false
[global/wm]
margin-top = 5
margin-bottom = 5
; vim:ft=dosini
+3 -3
View File
@@ -17,10 +17,10 @@ scroll-down = prev
enable-ipc = true
background = ${colors.bg}
foreground = ${colors.fg}
font-0 = "Hack Nerd Font:style=Bold:size=10;2"
font-0 = "JetBrainsMono Nerd Font:style=Bold:size=10;2"
font-1 = "MonarchOS:size=11;2"
font-2 = "Hack Nerd Font:style=Regular:size=11;2"
font-3 = "Hack Nerd Font:style=Regular:size=20;5"
font-2 = "JetBrainsMono Nerd Font:style=Regular:size=11;2"
font-3 = "JetBrainsMono Nerd Font:style=Regular:size=20;5"
radius = 0
tray-position = none
tray-padding = 5
@@ -0,0 +1,28 @@
@import "../config.rasi"
@import "../colors.rasi"
window {
width: 800px;
}
listview {
columns: 1;
lines: 4;
}
inputbar {
children: [ "textbox-prompt-colon", "entry"];
}
element {
orientation:horizontal;
children: ["element-icon", "element-text"];
}
element-icon {
size: 32px;
}
element-text {
vertical-align: 0.5;
horizontal-align: 0.5;
}
+16 -16
View File
@@ -6,13 +6,13 @@
* {
background: #1e1e2e;
background-alt: #ffffff80;
background-alt: #eff1f580;
foreground: #ffffff;
foreground: #eff1f5;
selected: #4c566a;
border: #ffffff;
border: #eff1f5;
active: #98C37988;
urgent: var(error-color);
@@ -34,8 +34,8 @@
blue: #89b4fa;
lavender: #b4befe;
text: #ffffff;
subtext1: #ffffff80;
text: #eff1f5;
subtext1: #eff1f580;
subtext0: #a6adc8;
overlay0: #6c7086;
@@ -53,8 +53,8 @@
/* GTK THEME VARS*/
theme-fg-color: #ffffff;
theme-text-color: #ffffff;
theme-fg-color: #eff1f5;
theme-text-color: #eff1f5;
theme-bg-color: #1e1e2e;
theme-base-color: #1e1e2e;
@@ -63,20 +63,20 @@
theme-bg-color-shade-3: #1e1e2eC9;
theme-selected-bg-color: #b4befe;
theme-selected-fg-color: #000000;
theme-selected-fg-color: #11111b;
theme-unfocused-fg-color: #ffffff;
theme-unfocused-text-color: #ffffff;
theme-unfocused-fg-color: #eff1f5;
theme-unfocused-text-color: #eff1f5;
theme-unfocused-bg-color: #1e1e2e;
theme-unfocused-base-color: #1e1e2e;
theme-unfocused-selected-bg-color: #b4befe;
theme-unfocused-selected-fg-color: #000000;
unfocused-insensitive-color: #ffffff;
theme-unfocused-selected-fg-color: #11111b;
unfocused-insensitive-color: #eff1f5;
borders: #b4befe30;
unfocused-borders: #ffffff;
unfocused-borders: #eff1f5;
warning-color: #fbc02d;
error-color: #f44336;
success-color: #66bb6a;
warning-color: #f9e2af;
error-color: #f38ba8;
success-color: #a6e3a1;
}
+37 -33
View File
@@ -22,6 +22,7 @@ configuration {
sidebar-mode: true;
threads: 0;
scroll-method: 0;
ssh-command: "sshfs_connect {host}";
}
/*****----- Global Properties -----*****/
@@ -29,7 +30,6 @@ configuration {
* {
border-colour: var(borders);
handle-colour: var(selected);
foreground-colour: var(foreground);
alternate-background: var(background-alt);
@@ -52,9 +52,9 @@ configuration {
alternate-active-background: var(active);
alternate-active-foreground: var(background);
font: "Hack Nerd Font 10";
border-radius: 10px;
frame-border: 2px solid;
font: "JetBrainsMono Nerd Font 11";
border-radius: 4px;
frame-border: 1px solid;
}
@@ -80,7 +80,7 @@ window {
border-color: var(borders);
cursor: "default";
background-color: @theme-bg-color;
background-color: @theme-bg-color-shade-3;
}
@@ -89,9 +89,10 @@ mainbox {
enabled: true;
spacing: 10px;
margin: 0px;
padding: 30px;
/*padding: 30px;*/
background-color: transparent;
children: [ "message", "listview", "inputbar" ];
padding: 0 0 30px 0;
}
/*****----- Inputbar -----*****/
@@ -99,7 +100,7 @@ inputbar {
enabled: true;
spacing: 10px;
margin: 0;
padding: 20px 0px 0;
padding: 20px 0 0 30px;
border: 0px solid;
border-radius: 0px;
border-color: @borders;
@@ -119,7 +120,7 @@ textbox-prompt-colon {
expand: false;
//font: "MonarchOS 14";
//str: "";
str: "󰣇";
str: "󰍉";
background-color: inherit;
text-color: inherit;
}
@@ -170,9 +171,9 @@ listview {
fixed-height: true;
fixed-columns: true;
spacing: 5px;
spacing: 10px;
margin: 0px;
padding: 0px;
padding: 30px 30px 0px 30px;
border: 0px solid;
border-radius: 0px;
border-color: @borders;
@@ -183,7 +184,7 @@ listview {
scrollbar {
handle-width: 5px;
handle-color: @handle-colour;
border-radius: 10px;
border-radius: var(border-radius);
background-color: transparent;
}
@@ -194,11 +195,13 @@ element {
margin: 0px;
padding: 5px 10px;
border: 0px solid;
border-radius: 10px;
border-radius: var(border-radius);
border-color: @borders;
background-color: transparent;
text-color: var(theme-text-color);
cursor: pointer;
orientation: horizontal;
children: ["element-text"];
}
element normal.normal {
background-color: transparent;
@@ -210,25 +213,25 @@ element normal.urgent {
}
element normal.active {
background-color: var(normal-foreground);
text-color: var(normal-background);
text-color: var(theme-bg-color-shade-1);
}
element selected.normal {
background-color: var(theme-selected-bg-color);
text-color: var(theme-selected-fg-color);
background-color: var(theme-selected-fg-color);
text-color: var(theme-selected-bg-color);
}
element selected.urgent {
background-color: var(theme-selected-bg-color);
text-color: var(normal-background);
background-color: var(theme-bg-color-shade-1);
text-color: var(theme-text-color);
}
element selected.active {
background-color: var(error-color);
text-color: var(normal-background);
text-color: var(theme-text-color);
}
element-icon {
background-color: transparent;
text-color: inherit;
size: 24px;
size: 16px;
cursor: inherit;
}
element-text {
@@ -245,7 +248,7 @@ mode-switcher{
enabled: true;
spacing: 10px;
margin: 0px;
padding: 0px;
padding: 0px 30px 0px 0;
border: 0px solid;
border-radius: 0px;
border-color: @borders;
@@ -253,24 +256,24 @@ mode-switcher{
text-color: var(theme-text-color);
}
button {
padding: 7px 15px 7px 10px;
padding: 2px 14px 2px 9px;
border: 0px solid;
border-radius: 100%;
border-radius: var(border-radius);
border-color: @borders;
background-color: @alternate-background;
text-color: inherit;
background-color: @theme-bg-color-shade-1;
text-color: var(theme-selected-bg-color);
cursor: pointer;
}
button selected {
background-color: var(selected-normal-background);
text-color: var(selected-normal-foreground);
background-color: var(theme-selected-fg-color);
text-color: var(theme-selected-bg-color);
}
/*****----- Message -----*****/
message {
enabled: true;
margin: 0px;
padding: 0px;
padding: 0 0 0 0;
border: 0px solid;
border-radius: 0px 0px 0px 0px;
border-color: @borders;
@@ -278,14 +281,15 @@ message {
text-color: var(theme-text-color);
}
textbox {
padding: 8px 10px;
padding: 30px 10px 0 10px;
border: 0px solid;
border-radius: 10px;
/*border-radius: 10px 10px 0 0;*/
border-radius: 0 0 0 0;
border-color: @borders;
background-color: @alternate-background;
background-color: transparent;
font: "JetBrainsMono Nerd Font 12";
text-color: var(theme-text-color);
vertical-align: 0.5;
horizontal-align: 0.0;
horizontal-align: 0.5;
highlight: none;
placeholder-color: var(theme-text-color);
blink: true;
@@ -294,7 +298,7 @@ textbox {
error-message {
padding: 10px;
border: 2px solid;
border-radius: 10px;
border-radius: var(border-radius);
border-color: @borders;
background-color: @background;
text-color: var(theme-text-color);
+8 -253
View File
@@ -1,152 +1,32 @@
/**
*
* Author : Aditya Shakya (adi1090x)
* Github : @adi1090x
*
* Rofi Theme File
* Rofi Version: 1.7.3
**/
/*****----- Configuration -----*****/
configuration {
modi: "drun,run,filebrowser,window";
show-icons: true;
modi: "drun";
show-icons: false;
drun-display-format: "{name}";
}
/*****----- Global Properties -----*****/
@import "../config.rasi"
@import "../colors.rasi"
* {
border-colour: var(border);
handle-colour: var(selected);
background-colour: var(background);
foreground-colour: var(foreground);
alternate-background: var(background-alt);
normal-background: var(background);
normal-foreground: var(foreground);
urgent-background: var(urgent);
urgent-foreground: var(background);
active-background: var(active);
active-foreground: var(background);
selected-normal-background: var(selected);
selected-normal-foreground: var(background);
selected-urgent-background: var(active);
selected-urgent-foreground: var(background);
selected-active-background: var(urgent);
selected-active-foreground: var(background);
alternate-normal-background: var(background);
alternate-normal-foreground: var(foreground);
alternate-urgent-background: var(urgent);
alternate-urgent-foreground: var(background);
alternate-active-background: var(active);
alternate-active-foreground: var(background);
}
/*****----- Main Window -----*****/
window {
/* properties for window widget */
transparency: "real";
location: center;
anchor: center;
fullscreen: false;
width: 600px;
x-offset: 0px;
y-offset: 0px;
/* properties for all widgets */
enabled: true;
cursor: "default";
/* Backgroud Colors */
background-color: @background-colour;
/* Backgroud Image */
//background-image: url("/path/to/image.png", none);
/* Simple Linear Gradient */
//background-image: linear-gradient(red, orange, pink, purple);
/* Directional Linear Gradient */
//background-image: linear-gradient(to bottom, pink, yellow, magenta);
/* Angle Linear Gradient */
//background-image: linear-gradient(45, cyan, purple, indigo);
width: 300px;
height: 300px;
}
/*****----- Main Box -----*****/
mainbox {
enabled: true;
spacing: 10px;
margin: 0px;
padding: 30px;
border: 0px solid;
border-radius: 0px 0px 0px 0px;
border-color: @border-colour;
background-color: transparent;
children: [ "message", "listview", "inputbar" ];
}
/*****----- Inputbar -----*****/
inputbar {
enabled: true;
spacing: 10px;
margin: 0;
padding: 20px 0px 0;
border: 0px solid;
border-radius: 0px;
border-color: @border-colour;
background-color: transparent;
text-color: @foreground-colour;
children: [ "textbox-prompt-colon", "entry", "mode-switcher" ];
}
prompt {
enabled: true;
background-color: inherit;
text-color: inherit;
}
textbox-prompt-colon {
enabled: true;
padding: 5px 0px 0px 15px;
expand: false;
font: "MonarchOS 14";
str: "";
background-color: inherit;
text-color: inherit;
}
entry {
enabled: true;
padding: 5px 0px;
background-color: inherit;
text-color: inherit;
cursor: text;
placeholder: "...";
placeholder-color: inherit;
}
num-filtered-rows {
enabled: true;
expand: false;
background-color: inherit;
text-color: inherit;
}
textbox-num-sep {
enabled: true;
expand: false;
str: "/";
background-color: inherit;
text-color: inherit;
}
num-rows {
enabled: true;
expand: false;
background-color: inherit;
text-color: inherit;
}
case-indicator {
enabled: true;
background-color: inherit;
text-color: inherit;
}
/*****----- Listview -----*****/
listview {
enabled: true;
columns: 1;
@@ -158,133 +38,8 @@ listview {
reverse: false;
fixed-height: true;
fixed-columns: true;
spacing: 5px;
margin: 0px;
padding: 0px;
border: 0px solid;
border-radius: 0px;
border-color: @border-colour;
background-color: transparent;
text-color: @foreground-colour;
cursor: "default";
}
scrollbar {
handle-width: 5px;
handle-color: @handle-colour;
border-radius: 10px;
background-color: transparent;
}
/*****----- Elements -----*****/
element {
enabled: true;
spacing: 0;
margin: 0px;
padding: 5px 10px;
border: 0px solid;
border-radius: 10px;
border-color: @border-colour;
background-color: transparent;
text-color: @foreground-colour;
cursor: pointer;
}
element normal.normal {
background-color: transparent;
text-color: var(normal-foreground);
}
element normal.urgent {
background-color: var(urgent-background);
text-color: var(urgent-foreground);
}
element normal.active {
background-color: var(normal-foreground);
text-color: var(normal-background);
}
element selected.normal {
background-color: var(selected-normal-background);
text-color: var(normal-foreground);
}
element selected.urgent {
background-color: var(selected-urgent-background);
text-color: var(normal-background);
}
element selected.active {
background-color: var(selected-active-background);
text-color: var(normal-background);
}
element-icon {
background-color: transparent;
text-color: inherit;
size: 0;
cursor: inherit;
}
element-text {
background-color: transparent;
text-color: inherit;
highlight: inherit;
cursor: inherit;
vertical-align: 0.5;
horizontal-align: 0.0;
}
/*****----- Mode Switcher -----*****/
mode-switcher{
enabled: true;
spacing: 10px;
margin: 0px;
padding: 0px;
border: 0px solid;
border-radius: 0px;
border-color: @border-colour;
background-color: transparent;
text-color: @foreground-colour;
}
button {
padding: 7px 15px 7px 10px;
border: 0px solid;
border-radius: 100%;
border-color: @border-colour;
background-color: @alternate-background;
text-color: inherit;
cursor: pointer;
}
button selected {
background-color: var(selected-normal-background);
text-color: var(selected-normal-foreground);
}
/*****----- Message -----*****/
message {
enabled: true;
margin: 0px;
padding: 0px;
border: 0px solid;
border-radius: 0px 0px 0px 0px;
border-color: @border-colour;
background-color: transparent;
text-color: @foreground-colour;
}
textbox {
padding: 8px 10px;
border: 0px solid;
border-radius: 10px;
border-color: @border-colour;
background-color: @alternate-background;
text-color: @foreground-colour;
vertical-align: 0.5;
horizontal-align: 0.0;
highlight: none;
placeholder-color: @foreground-colour;
blink: true;
markup: true;
}
error-message {
padding: 10px;
border: 2px solid;
border-radius: 10px;
border-color: @border-colour;
background-color: @background-colour;
text-color: @foreground-colour;
size: 0px;
}
+1 -1
View File
@@ -45,7 +45,7 @@ function print_menu()
function start()
{
# print_menu | rofi -dmenu -p "?=>"
print_menu | sort | rofi -theme ~/.config/rofi/cpugov/rofi-cpugov.rasi -show "CPU Mode" -dmenu -mesg " CPU Mode" -i -p "rofi-bangs: "
print_menu | sort | rofi -theme ~/.config/rofi/cpugov/rofi-cpugov.rasi -show "CPU Modes" -dmenu -mesg "󰓅 CPU Modes" -i -p "rofi-bangs: "
}
+1 -1
View File
@@ -1 +1 @@
GTK_THEME=Catppuccin-Mocha-Standard-Lavender-Dark
GTK_THEME=catppuccin-mocha-lavender-standard+default
+3 -3
View File
@@ -26,6 +26,9 @@ declare -A COMMANDS
COMMANDS[""]="~/.config/rofi/locate/rofi-locate.sh"
LABELS[""]="Locate"
COMMANDS[""]="wlogout -P 1 -s -r 10 -c 10"
LABELS[""]="Session Menu"
# open custom web searches
# COMMANDS["websearch"]="~/.scripts/rofi-scripts-collection/rofi-surfraw-websearch.sh"
# LABELS["websearch"]=""
@@ -62,9 +65,6 @@ LABELS["󰗅"]='Sound Manager'
COMMANDS[""]='~/.config/rofi/shortcuts/shortcuts.sh'
LABELS[""]='Hotkey List'
COMMANDS[""]='wlogout'
LABELS[""]='Session Menu'
COMMANDS["󰍹"]='wdisplays'
LABELS["󰍹"]='Display Setup'
+151
View File
@@ -0,0 +1,151 @@
#!/usr/bin/env bash
# author: unknown
# sentby: MoreChannelNoise (https://www.youtube.com/user/MoreChannelNoise)
# editby: gotbletu (https://www.youtube.com/user/gotbletu)
# demo: https://www.youtube.com/watch?v=kxJClZIXSnM
# info: this is a script to launch other rofi scripts,
# saves us the trouble of binding multiple hotkeys for each script,
# when we can just use one hotkey for everything.
declare -A LABELS
declare -A COMMANDS
###
# List of defined 'bangs'
# launch programs
# COMMANDS["apps"]="rofi -combi-modi window,drun -show combi"
# LABELS["apps"]=""
# open bookmarks
# COMMANDS["bookmarks"]="~/.scripts/rofi-scripts-collection/rofi-surfraw-bookmarks.sh"
# LABELS["bookmarks"]=""
# search local files
COMMANDS[""]="~/.config/rofi/locate/rofi-locate.sh"
LABELS[""]="Locate"
# open custom web searches
# COMMANDS["websearch"]="~/.scripts/rofi-scripts-collection/rofi-surfraw-websearch.sh"
# LABELS["websearch"]=""
# show clipboard history
# source: https://bitbucket.org/pandozer/rofi-clipboard-manager/overview
# COMMANDS["clipboard"]='rofi -modi "clipboard:~/.bin/rofi-clipboard-manager/mclip.py menu" -show clipboard && ~/.bin/rofi-clipboard-manager/mclip.py paste'
# LABELS["clipboard"]=""
# references --------------------------
# COMMANDS[";sr2"]="chromium 'wikipedia.org/search-redirect.php?search=\" \${input}\""
# LABELS[";sr2"]=""
# COMMANDS[";piratebay"]="chromium --disk-cache-dir=/tmp/cache http://thepiratebay.org/search/\" \${input}\""
# LABELS[";piratebay"]=""
# COMMANDS[".bin"]="spacefm -r '/home/dka/bin'"
# LABELS[".bin"]=".bin"
# COMMANDS["#screenshot"]='/home/dka/bin/screenshot-scripts/myscreenshot.sh'
# LABELS["#screenshot"]="screenshot"
# greenclip clipboard history
# source: https://github.com/erebe/greenclip
COMMANDS[""]='rofi -modi "clipboard:greenclip print" -show Clipboard'
LABELS[""]="Clipboard"
COMMANDS["󰖂"]='~/.config/rofi/nm-vpn/nm-vpn.sh'
LABELS["󰖂"]='VPN Connection Manager'
COMMANDS["󰗅"]='~/.config/rofi/volume/volume.sh'
LABELS["󰗅"]='Sound Manager'
COMMANDS[""]='~/.config/rofi/shortcuts/shortcuts.sh'
LABELS[""]='Hotkey List'
COMMANDS[""]='wlogout'
LABELS[""]='Session Menu'
COMMANDS["󰍹"]='wdisplays'
LABELS["󰍹"]='Display Setup'
COMMANDS[""]='nwg-look'
LABELS[""]='Appearance Settings'
COMMANDS["󱘆"]='noisetorch'
LABELS["󱘆"]='Audio Noise Reduction'
COMMANDS["󰋋"]='/home/dom/.local/share/headset-charge-indicator/headset-charge-indicator.py &'
LABELS["󰋋"]='Headset Control'
COMMANDS[""]='~/.config/rofi/bluetooth/bluetooth.sh'
LABELS[""]='Bluetooth Control'
COMMANDS["󰛳"]='nm-applet --indicator &'
LABELS["󰛳"]='Networker Manager'
COMMANDS["󰴱"]='hyprpicker -f hex -a'
LABELS["󰴱"]='Color Picker'
COMMANDS["󰚞"]='font-manager'
LABELS["󰚞"]='Font Manager'
COMMANDS["󱨑"]='gufw'
LABELS["󱨑"]='Firewall Settings'
COMMANDS[""]='stacer'
LABELS[" "]='System Maintenance'
################################################################################
# do not edit below
################################################################################
##
# Generate menu
##
function print_menu()
{
for key in ${!LABELS[@]}
do
# echo "$key ${LABELS}"
echo "$key ${LABELS[$key]}"
# my top version just shows the first field in labels row, not two words side by side
done
}
##
# Show rofi.
##
function start()
{
# print_menu | rofi -dmenu -p "?=>"
print_menu | sort | rofi -show "Tools" -dmenu -mesg " Tools" -i -p "rofi-bangs: "
}
# Run it
value="$(start)"
# Split input.
# grab upto first space.
choice=${value%%\ *}
# graph remainder, minus space.
input=${value:$((${#choice}+1))}
##
# Cancelled? bail out
##
if test -z ${choice}
then
exit
fi
# check if choice exists
if test ${COMMANDS[$choice]+isset}
then
# Execute the choice
eval echo "Executing: ${COMMANDS[$choice]}"
eval ${COMMANDS[$choice]}
else
eval $choice | rofi
# prefer my above so I can use this same script to also launch apps like geany or leafpad etc (DK)
# echo "Unknown command: ${choice}" | rofi -dmenu -p "error"
fi
+12 -2
View File
@@ -1,6 +1,16 @@
@import "../config.rasi"
@import "../colors.rasi"
window {
width: 400px;
element {
children: ["element-icon", "element-text"];
}
element-icon {
size: 32px;
}
element-text {
vertical-align: 0.5;
horizontal-align: 0.0;
}
+1 -2
View File
@@ -35,6 +35,5 @@ esac
## Run
rofi \
-show $showmode \
-click-to-exit \
-theme ~/.config/rofi/launcher/launcher.rasi
-normal-window
-matching fuzzy
+17 -196
View File
@@ -1,90 +1,36 @@
@import "../config.rasi"
configuration {
modi: "";
modi: "drun";
show-icons: false;
drun-display-format: "{name}";
window-format: "{w} · {c} · {t}";
}
mainbox {
@import "../config.rasi"
@import "../colors.rasi"
window {
enabled: true;
spacing: 10px;
margin: 0px;
padding: 30px;
border: 0px solid;
border-radius: 0px 0px 0px 0px;
border-color: @border;
background-color: transparent;
cursor: "default";
width: 300px;
height: 300px;
}
mainbox {
children: [ "message", "listview", "inputbar" ];
}
inputbar {
enabled: true;
spacing: 10px;
margin: 0;
padding: 20px 0px 0;
border: 0px solid;
border-radius: 0px;
border-color: @border;
background-color: transparent;
text-color: @foreground;
children: [ "textbox-prompt-colon", "entry", "mode-switcher" ];
}
prompt {
enabled: true;
background-color: inherit;
text-color: inherit;
}
textbox-prompt-colon {
enabled: true;
padding: 5px 0px 0px 15px;
expand: false;
font: "MonarchOS 14";
str: "";
background-color: inherit;
text-color: inherit;
}
entry {
enabled: true;
padding: 5px 0px;
background-color: inherit;
text-color: inherit;
cursor: text;
placeholder: "...";
placeholder-color: inherit;
}
num-filtered-rows {
enabled: true;
expand: false;
background-color: inherit;
text-color: inherit;
}
textbox-num-sep {
enabled: true;
expand: false;
str: "/";
background-color: inherit;
text-color: inherit;
}
num-rows {
enabled: true;
expand: false;
background-color: inherit;
text-color: inherit;
}
case-indicator {
enabled: true;
background-color: inherit;
text-color: inherit;
}
/*****----- Listview -----*****/
listview {
enabled: true;
columns: 1;
lines: 2;
lines: 8;
cycle: true;
dynamic: true;
scrollbar: false;
@@ -92,133 +38,8 @@ listview {
reverse: false;
fixed-height: true;
fixed-columns: true;
spacing: 5px;
margin: 0px;
padding: 0px;
border: 0px solid;
border-radius: 0px;
border-color: @border;
background-color: transparent;
text-color: @foreground;
cursor: "default";
}
scrollbar {
handle-width: 5px;
handle-color: @handle-colour;
border-radius: 10px;
background-color: transparent;
}
/*****----- Elements -----*****/
element {
enabled: true;
spacing: 10px;
margin: 0px;
padding: 5px 10px;
border: 0px solid;
border-radius: 10px;
border-color: @border;
background-color: transparent;
text-color: @foreground;
cursor: pointer;
}
element normal.normal {
background-color: transparent;
text-color: var(normal-foreground);
}
element normal.urgent {
background-color: var(urgent-background);
text-color: var(urgent-foreground);
}
element normal.active {
background-color: var(normal-foreground);
text-color: var(normal-background);
}
element selected.normal {
background-color: var(selected-normal-background);
text-color: var(normal-foreground);
}
element selected.urgent {
background-color: var(selected-urgent-background);
text-color: var(normal-background);
}
element selected.active {
background-color: var(selected-active-background);
text-color: var(normal-background);
}
element-icon {
background-color: transparent;
text-color: inherit;
size: 24px;
cursor: inherit;
}
element-text {
background-color: transparent;
text-color: inherit;
highlight: inherit;
cursor: inherit;
vertical-align: 0.5;
horizontal-align: 0.0;
}
/*****----- Mode Switcher -----*****/
mode-switcher{
enabled: true;
spacing: 10px;
margin: 0px;
padding: 0px;
border: 0px solid;
border-radius: 0px;
border-color: @border;
background-color: transparent;
text-color: @foreground;
}
button {
padding: 7px 15px 7px 10px;
border: 0px solid;
border-radius: 100%;
border-color: @border;
background-color: @alternate-background;
text-color: inherit;
cursor: pointer;
}
button selected {
background-color: var(selected-normal-background);
text-color: var(selected-normal-foreground);
}
/*****----- Message -----*****/
message {
enabled: true;
margin: 0px;
padding: 0px;
border: 0px solid;
border-radius: 0px 0px 0px 0px;
border-color: @border;
background-color: transparent;
text-color: @foreground;
}
textbox {
padding: 8px 10px;
border: 0px solid;
border-radius: 10px;
border-color: @border;
background-color: @alternate-background;
text-color: @foreground;
vertical-align: 0.5;
horizontal-align: 0.0;
highlight: none;
placeholder-color: @foreground;
blink: true;
markup: true;
}
error-message {
padding: 10px;
border: 2px solid;
border-radius: 10px;
border-color: @border;
background-color: @background;
text-color: @foreground;
size: 0px;
}
+3 -3
View File
@@ -54,11 +54,11 @@ function toggle_vpn_connection() {
if [[ $result = ${ACTIVE_PREFIX}* ]]; then
feedback=$(nmcli connection down "$connection")
dunstify "VPN Status '$connection'" "$feedback" --replace=553
notify-send "VPN Status '$connection'" "$feedback"
else
kitty --class "kitty-vpn" --title "VPN Connection" nmcli connection --ask up "$connection"
alacritty --class "vpn-prompt" --title "VPN Connection" -e nmcli connection --ask up "$connection"
#feedback=$(nmcli connection up "$connection")
dunstify "VPN Status '$connection'" "" --replace=553
notify-send "VPN Status '$connection'" "Trying to connect"
fi
}
+2 -2
View File
@@ -30,7 +30,7 @@ textbox {
placeholder-color: var(theme-text-color);
font: "Hack Nerd Font Bold 12";
font: "JetBrainsMono Nerd Font Bold 12";
}
error-message {
padding: 12px;
@@ -64,7 +64,7 @@ element-text {
cursor: inherit;
horizontal-align: 0.5;
vertical-align:0;
font: "Hack Nerd Font 18";
font: "JetBrainsMono Nerd Font 18";
}
element selected.normal {
@@ -0,0 +1,121 @@
configuration {
show-icons: false;
}
@import "../colors.rasi"
window {
transparency: "real";
location: north;
anchor: center;
fullscreen: false;
x-offset: 0px;
y-offset: -41px;
width: 100%;
border: none;
border-radius: 0;
border-color: transparent;
cursor: "default";
background-color: var(theme-bg-color);
}
mainbox {
enabled: true;
margin: 0px;
padding: 11px;
border: 0px solid;
border-radius: 0px;
border-color: transparent;
background-color: transparent;
children: ["inputbar" ];
}
inputbar {
enabled: true;
spacing: 16px;
margin: 0px;
padding: 0px;
background-color: transparent;
text-color: var(theme-text-color);
children: ["textbox-prompt-colon", "prompt", "listview"];
}
textbox-prompt-colon {
enabled: true;
expand: false;
str: "󰣇";
padding: 0 12px 0 10px;
border-radius: 100%;
background-color: var(theme-selected-bg-color);
text-color: @theme-selected-fg-color;
vertical-align: 0.5;
font: "JetBrainsMono Nerd Font 12";
}
prompt {
enabled: true;
padding: 0 12px;
border-radius: 100%;
background-color: var(theme-text-color);
text-color: var(theme-bg-color);
vertical-align: 0.5;
font: "JetBrainsMono Nerd Font 9";
}
dummy {
background-color: inherit;
}
listview {
enabled: true;
columns: 2;
lines: 5;
cycle: true;
dynamic: false;
scrollbar: false;
layout: horizontal;
reverse: false;
fixed-height: false;
fixed-columns: true;
vertical-align: 0.5;
horizontal-align: 0;
spacing: 15px;
background-color: transparent;
text-color: var(theme-text-color);
cursor: "default";
}
element {
enabled: true;
spacing: 0px;
margin: 0px;
border: 0px solid;
border-radius: 100%;
background-color: transparent;
cursor: "pointer";
}
element-text {
font: "JetBrainsMono Nerd Font 12";
background-color: transparent;
text-color: var(text);
cursor: inherit;
vertical-align: 0.5;
horizontal-align: 0;
padding: 0 12px;
horizontal-align: 0;
}
element selected.normal {
background-color: var(theme-selected-bg-color);
}
element-text selected.normal {
text-color: var(theme-bg-color);
}
+25 -42
View File
@@ -2,67 +2,49 @@ configuration {
show-icons: false;
}
@import "../colors.rasi"
@import "../config.rasi"
window {
transparency: "real";
location: center;
anchor: center;
fullscreen: false;
x-offset: 0px;
y-offset: 60px;
width: 635px;
border: 2px solid;
border-radius: 10px;
border-color: var(borders);
cursor: "default";
background-color: var(theme-bg-color);
fullscreen: true;
border: none;
border-radius: 0;
}
mainbox {
enabled: true;
spacing: 15px;
margin: 0px;
padding: 30px;
border: 0px solid;
border-radius: 0px;
border-color: var(borders);
padding: 200px;
background-color: transparent;
children: ["inputbar", "listview" ];
expand: true;
}
inputbar {
enabled: true;
spacing: 15px;
spacing: 10px;
margin: 0px;
padding: 0px;
background-color: transparent;
text-color: var(theme-text-color);
padding: 12px 19px 12px 16px;
border-radius: 10px;
text-color: var(theme-selected-bg-color);
children: ["textbox-prompt-colon", "prompt"];
background-color: var(theme-selected-fg-color);
expand: false;
}
textbox-prompt-colon {
enabled: true;
expand: false;
font: "MonarchOS 10";
str: "";
padding: 12px 16px;
border-radius: 100%;
background-color: var(theme-selected-bg-color);
text-color: @theme-selected-fg-color;
str: "󰣇";
margin: 0;
padding: 0 4px 0 0;
font: "JetBrainsMono Nerd Font 16";
}
prompt {
enabled: true;
padding: 12px;
border-radius: 100%;
background-color: var(theme-text-color);
text-color: var(theme-bg-color);
padding: 4px 0 0 0;
}
dummy {
@@ -72,12 +54,12 @@ dummy {
listview {
enabled: true;
layout: horizontal;
columns: 2;
lines: 5;
cycle: true;
dynamic: false;
scrollbar: false;
layout: horizontal;
reverse: false;
fixed-height: true;
fixed-columns: true;
@@ -87,6 +69,8 @@ listview {
background-color: transparent;
text-color: var(theme-text-color);
cursor: "default";
padding: 0;
margin:0 ;
}
element {
@@ -95,21 +79,20 @@ element {
margin: 0px;
border: 0px solid;
border-radius: 100%;
border-radius: 10px;
background-color: transparent;
cursor: "pointer";
}
element-text {
font: "Hack Nerd Font 28";
font: "JetBrainsMono Nerd Font 28";
background-color: transparent;
text-color: var(text);
cursor: inherit;
vertical-align: 0.5;
horizontal-align: 0.5;
padding: 10px 40px;
horizontal-align: 0;
vertical-align: 0;
horizontal-align: 1;
padding: 0 10px;
}
element selected.normal {
background-color: var(theme-selected-bg-color);
+3 -2
View File
@@ -8,7 +8,7 @@
# CMDs
uptime="`uptime -p | sed -e 's/up //g'`"
host=`hostname`
host="$USER@"`hostname`
# Options
shutdown='󰤆'
@@ -31,6 +31,7 @@ rofi_cmd() {
confirm_cmd() {
rofi -dmenu \
-p 'Confirmation' \
-normal-window \
-mesg 'Confirm '${chosen} \
-theme ~/.config/rofi/powermenu/confirm.rasi
}
@@ -89,7 +90,7 @@ case ${chosen} in
betterlockscreen -l
elif [[ "$DESKTOP_SESSION" == 'hyprland' ]]; then
killall rofi
swaylock
wlogout -P 1 -s -r 10 -c 10
fi
;;
$suspend)
+64
View File
@@ -0,0 +1,64 @@
#!/usr/bin/env bash
####
# @author moonarch.de (nevaforget)
# script used with rofi to list desktop files of specific dir
# dir: /usr/share/settings-menu/
# @example rofi -show fb -modes "fb:~/.config/rofi/settings-menu/setmen.sh" -theme $HOME/.config/rofi/settings-menu/settings-menu.rasi
# @dependencies glib >= 2.67.2
####
function get_name {
local lang=$(locale | grep LANG | cut -d= -f2 | cut -d_ -f1)
local find="Name\[$lang\]="
local name=$(grep "^$find" $1 | tail -1 | sed "s/^$find//" | sed 's/%.//' | sed 's/^"//g' | sed 's/" *$//g')
if [ "${name}" = "" ]
then
find="Name="
name=$(grep "^$find" $1 | tail -1 | sed "s/^$find//" | sed 's/%.//' | sed 's/^"//g' | sed 's/" *$//g')
fi
echo "$name"
}
if [ "$ROFI_RETV" = "1" ]
then
for deskfile in /usr/share/settings-menu/*
do
match=$(grep "^Name" $deskfile | grep "$@" )
if [ -n "$match" ]
then
#gio launch $deskfile
# old way
app=$(grep '^Exec' $deskfile | tail -1 | sed 's/^Exec=//' | sed 's/%.//' | sed 's/^"//g' | sed 's/" *$//g')
coproc ( $app > /dev/null 2>&1 )
break
fi
done
exit 0
fi
function init {
for file in /usr/share/settings-menu/*
do
local name=$(get_name "$file")
local iconline=$(sed -n -e '/^Icon=/p' "$file")
local icon=${iconline/Icon=/""}
if [ -n "$name" ]
then
echo -en "$name\0icon\x1f$icon\n"
fi
done
}
init
@@ -0,0 +1,54 @@
configuration {
modi: "drun";
show-icons: false;
drun-display-format: "{name}";
}
@import "../config.rasi"
@import "../colors.rasi"
window {
enabled: true;
cursor: "default";
}
mainbox {
children: [ "message", "listview", "inputbar" ];
}
inputbar {
enabled: true;
children: [ "textbox-prompt-colon", "entry", "mode-switcher" ];
}
listview {
enabled: true;
columns: 2;
lines: 8;
cycle: true;
dynamic: true;
scrollbar: false;
layout: vertical;
reverse: false;
fixed-height: true;
fixed-columns: true;
orientation: horizontal;
horizontal-align: 0.0;
}
element {
children: [ "element-text" ];
}
element-text {
horizontal-align: 0.0;
}
span {
text-color:red;
}
@@ -1,49 +1,26 @@
configuration {
modi: "drun";
show-icons: false;
drun-display-format: "{name}";
}
@import "../config.rasi"
@import "../colors.rasi"
window {
enabled: true;
cursor: "default";
listview {
columns: 4;
lines: 4;
}
mainbox {
children: [ "message", "listview", "inputbar" ];
}
inputbar {
enabled: true;
children: [ "textbox-prompt-colon", "entry", "mode-switcher" ];
children: [ "textbox-prompt-colon", "entry"];
}
listview {
enabled: true;
columns: 2;
lines: 8;
cycle: true;
dynamic: true;
scrollbar: false;
layout: vertical;
reverse: false;
fixed-height: true;
fixed-columns: true;
element {
orientation:vertical;
children: ["element-icon", "element-text"];
}
element-icon {
size: 0px;
size: 32px;
}
element-text {
vertical-align: 0.5;
horizontal-align: 0.5;
font: "JetBrainsMono Nerd Font 9";
}
+24 -31
View File
@@ -23,30 +23,11 @@ declare -A COMMANDS
# LABELS["bookmarks"]=""
# search local files
COMMANDS[""]="~/.config/rofi/locate/rofi-locate.sh"
LABELS[""]="Locate"
# COMMANDS[""]="~/.config/rofi/locate/rofi-locate.sh"
# LABELS[""]="Locate"
# open custom web searches
# COMMANDS["websearch"]="~/.scripts/rofi-scripts-collection/rofi-surfraw-websearch.sh"
# LABELS["websearch"]=""
# show clipboard history
# source: https://bitbucket.org/pandozer/rofi-clipboard-manager/overview
# COMMANDS["clipboard"]='rofi -modi "clipboard:~/.bin/rofi-clipboard-manager/mclip.py menu" -show clipboard && ~/.bin/rofi-clipboard-manager/mclip.py paste'
# LABELS["clipboard"]=""
# references --------------------------
# COMMANDS[";sr2"]="chromium 'wikipedia.org/search-redirect.php?search=\" \${input}\""
# LABELS[";sr2"]=""
# COMMANDS[";piratebay"]="chromium --disk-cache-dir=/tmp/cache http://thepiratebay.org/search/\" \${input}\""
# LABELS[";piratebay"]=""
# COMMANDS[".bin"]="spacefm -r '/home/dka/bin'"
# LABELS[".bin"]=".bin"
# COMMANDS["#screenshot"]='/home/dka/bin/screenshot-scripts/myscreenshot.sh'
# LABELS["#screenshot"]="screenshot"
COMMANDS[""]="wlogout -P 1 -s -r 10 -c 10"
LABELS[""]="Session Menu"
# greenclip clipboard history
# source: https://github.com/erebe/greenclip
@@ -56,14 +37,14 @@ LABELS[""]="Clipboard"
COMMANDS["󰖂"]='~/.config/rofi/nm-vpn/nm-vpn.sh'
LABELS["󰖂"]='VPN Connection Manager'
COMMANDS[""]='waypaper'
LABELS[""]='Wallpaper Settings'
COMMANDS["󰗅"]='~/.config/rofi/volume/volume.sh'
LABELS["󰗅"]='Sound Manager'
COMMANDS[""]='~/.config/rofi/shortcuts/shortcuts.sh'
LABELS[""]='Hotkey List'
COMMANDS[""]='wlogout'
LABELS[""]='Session Menu'
#COMMANDS[""]='~/.config/rofi/shortcuts/shortcuts.sh'
#LABELS[""]='Hotkey List'
COMMANDS["󰍹"]='wdisplays'
LABELS["󰍹"]='Display Setup'
@@ -92,9 +73,20 @@ LABELS["󰚞"]='Font Manager'
COMMANDS["󱨑"]='gufw'
LABELS["󱨑"]='Firewall Settings'
COMMANDS[""]='stacer'
LABELS[""]='System Maintenance'
COMMANDS[""]='env GTK_THEME=Adwaita:dark resources'
LABELS[""]='System Resources'
COMMANDS["󰓅"]='$HOME/.config/rofi/cpugov/rofi-cpugov.sh'
LABELS["󰓅"]='CPU Modes'
COMMANDS["󰓅"]='hardinfo'
LABELS["󰓅"]='System Profiler and Benchmark'
COMMANDS["󰀠"]='alarm-clock-applet'
LABELS["󰀠"]='Alarm & Timer'
COMMANDS["󱓞"]='~/.config/rofi/launcher/launcher.sh'
LABELS["󱓞"]='App Launcher'
################################################################################
# do not edit below
@@ -117,7 +109,8 @@ function print_menu()
function start()
{
# print_menu | rofi -dmenu -p "?=>"
print_menu | sort | rofi -theme $HOME/.config/rofi/settings-menu/settings-menu.rasi -show "Settings x Tools" -dmenu -mesg " Settings x Tools" -i -p "rofi-bangs: "
title="MoonArch \ $USER \ $(date +"%H:%M") \ $(uptime -p | sed 's/up //')"
print_menu | sort | rofi -theme $HOME/.config/rofi/settings-menu/settings-menu.rasi -show $title -dmenu -markup-rows -mesg "󰣇 $title" -i -p "rofi-bangs: "
}
+12 -4
View File
@@ -1,5 +1,13 @@
#!/bin/bash
config_file=~/.config/hypr/hl-keybindings.conf
keybinds=$(grep -oP '(?<=bind = ).*' $config_file)
keybinds=$(echo "$keybinds" | sed 's/,\([^,]*\)$/ = \1/' | sed 's/, exec//g' | sed 's/^,//g')
rofi -dmenu -p "Keybinds" <<< "$keybinds"
# Format JSON proper;y
JSON=$(hyprkeys --from-ctl --json | jq -r --slurp "[.[]][0]");
USER_SELECTED=$(echo $JSON | jq -r 'range(0, length) as $i | "\($i) \(.[$i].mods) \(.[$i].key) \(.[$i].dispatcher) \(.[$i].arg)"' | rofi -theme ~/.config/rofi/shortcuts/shortcuts.rasi -dmenu -p 'Keybinds' | awk -F ' ' '{print $1}')
if [ -z "$USER_SELECTED" ]; then
exit 0;
fi
EVENT=$(echo $JSON | jq -r "[.[]] | .[$USER_SELECTED]" | jq -r '"\(.dispatcher) \(.arg)"');
hyprctl dispatch "$EVENT";
+30
View File
@@ -0,0 +1,30 @@
@import "../config.rasi"
@import "../colors.rasi"
window {
width: 1024;
height: 768;
}
listview {
columns: 1;
lines: 5;
}
inputbar {
children: [ "textbox-prompt-colon", "entry"];
}
element {
orientation:horizontal;
children: ["element-icon", "element-text"];
}
element-icon {
size: 0;
}
element-text {
vertical-align: 0.5;
horizontal-align: 0.0;
background:red;
}
+78
View File
@@ -0,0 +1,78 @@
#!/usr/bin/env bash
# author: unknown
# sentby: MoreChannelNoise (https://www.youtube.com/user/MoreChannelNoise)
# editby: gotbletu (https://www.youtube.com/user/gotbletu)
# demo: https://www.youtube.com/watch?v=kxJClZIXSnM
# info: this is a script to launch other rofi scripts,
# saves us the trouble of binding multiple hotkeys for each script,
# when we can just use one hotkey for everything.
declare -A LABELS
declare -A COMMANDS
###
# List of defined 'bangs'
COMMANDS["moonarch.de"]="fusermount3 -u $HOME/.sshfs/moonarch.de | mkdir -p $HOME/.sshfs/moonarch.de | sshfs docker@moonarch.de:/home/docker $HOME/.sshfs/moonarch.de | subl --launch-or-new-window $HOME/.sshfs/moonarch.de"
LABELS["moonarch.de"]="moonarch.de"
COMMANDS[""]='rofi -modi "clipboard:greenclip print" -show Clipboard'
LABELS[""]="Clipboard"
################################################################################
# do not edit below
################################################################################
##
# Generate menu
##
function print_menu()
{
for key in ${!LABELS[@]}
do
# echo "$key ${LABELS}"
echo "${LABELS[$key]}"
# my top version just shows the first field in labels row, not two words side by side
done
}
##
# Show rofi.
##
function start()
{
# print_menu | rofi -dmenu -p "?=>"
print_menu | sort | rofi -show "Tools" -dmenu -mesg " Tools" -i -p "rofi-bangs: "
}
# Run it
value="$(start)"
# Split input.
# grab upto first space.
choice=${value%%\ *}
# graph remainder, minus space.
input=${value:$((${#choice}+1))}
##
# Cancelled? bail out
##
if test -z ${choice}
then
exit
fi
# check if choice exists
if test ${COMMANDS[$choice]+isset}
then
# Execute the choice
eval echo "Executing: ${COMMANDS[$choice]}"
eval ${COMMANDS[$choice]}
else
eval $choice | rofi
# prefer my above so I can use this same script to also launch apps like geany or leafpad etc (DK)
# echo "Unknown command: ${choice}" | rofi -dmenu -p "error"
fi
+11 -192
View File
@@ -1,224 +1,43 @@
/**
*
* Author : Aditya Shakya (adi1090x)
* Github : @adi1090x
*
* Rofi Theme File
* Rofi Version: 1.7.3
**/
/*****----- Configuration -----*****/
configuration {
modi: "";
modi: "drun";
show-icons: false;
drun-display-format: "{name}";
}
/*****----- Global Properties -----*****/
@import "../config.rasi"
@import "../colors.rasi"
* {
border-colour: var(border);
handle-colour: var(selected);
background-colour: var(background);
foreground-colour: var(foreground);
alternate-background: var(background-alt);
normal-background: var(background);
normal-foreground: var(foreground);
urgent-background: var(urgent);
urgent-foreground: var(background);
active-background: var(active);
active-foreground: var(background);
selected-normal-background: var(selected);
selected-normal-foreground: var(background);
selected-urgent-background: var(active);
selected-urgent-foreground: var(background);
selected-active-background: var(urgent);
selected-active-foreground: var(background);
alternate-normal-background: var(background);
alternate-normal-foreground: var(foreground);
alternate-urgent-background: var(urgent);
alternate-urgent-foreground: var(background);
alternate-active-background: var(active);
alternate-active-foreground: var(background);
}
/*****----- Main Window -----*****/
window {
/* properties for window widget */
transparency: "real";
location: center;
anchor: center;
fullscreen: false;
width: 600px;
x-offset: 0px;
y-offset: 0px;
border-radius: 10px;
/* properties for all widgets */
enabled: true;
cursor: "default";
background-color: @background-colour;
}
/*****----- Main Box -----*****/
mainbox {
enabled: true;
spacing: 10px;
margin: 0px;
padding: 30px;
border: 0px solid;
border-radius: 0px 0px 0px 0px;
border-color: @border-colour;
background-color: transparent;
children: [ "message", "listview", "inputbar" ];
}
/*****----- Inputbar -----*****/
inputbar {
enabled: false;
enabled: true;
children: [ "textbox-prompt-colon", "entry", "mode-switcher" ];
}
/*****----- Listview -----*****/
listview {
enabled: true;
columns: 6;
columns: 1;
lines: 8;
cycle: true;
dynamic: true;
scrollbar: false;
layout: vertical;
reverse: false;
fixed-height: false;
fixed-columns: false;
spacing: 5px;
margin: 0px;
padding: 0px;
border: 0px solid;
border-radius: 0px;
border-color: @border-colour;
background-color: transparent;
text-color: @foreground-colour;
cursor: "default";
align: center;
}
scrollbar {
handle-width: 5px;
handle-color: @handle-colour;
border-radius: 10px;
background-color: transparent;
}
/*****----- Elements -----*****/
element {
enabled: true;
spacing: 10px;
margin: 0px;
padding: 5px 10px;
border: 0px solid;
border-radius: 10px;
border-color: @border-colour;
background-color: transparent;
text-color: @foreground-colour;
cursor: pointer;
}
element normal.normal {
background-color: transparent;
text-color: var(normal-foreground);
}
element normal.urgent {
background-color: var(normal-background);
text-color: var(normal-foreground);
}
element normal.active {
background-color: var(normal-foreground);
text-color: var(normal-background);
}
element selected.normal {
background-color: var(selected-normal-background);
text-color: var(normal-foreground);
}
element selected.urgent {
background-color: var(selected-normal-background);
text-color: var(normal-background);
}
element selected.active {
background-color: var(selected-normal-background);
text-color: var(normal-foreground);
fixed-height: true;
fixed-columns: true;
}
element-icon {
background-color: transparent;
text-color: inherit;
size: 24px;
cursor: inherit;
}
element-text {
background-color: transparent;
text-color: inherit;
highlight: inherit;
cursor: inherit;
vertical-align: 0.5;
horizontal-align: 0.0;
}
/*****----- Mode Switcher -----*****/
mode-switcher{
enabled: true;
spacing: 10px;
margin: 0px;
padding: 0px;
border: 0px solid;
border-radius: 0px;
border-color: @border-colour;
background-color: transparent;
text-color: @foreground-colour;
}
button {
padding: 7px 15px 7px 10px;
border: 0px solid;
border-radius: 100%;
border-color: @border-colour;
background-color: @alternate-background;
text-color: inherit;
cursor: pointer;
}
button selected {
background-color: var(selected-normal-background);
text-color: var(selected-normal-foreground);
}
/*****----- Message -----*****/
message {
enabled: true;
margin: 0px;
padding: 0px;
border: 0px solid;
border-radius: 0px 0px 0px 0px;
border-color: @border-colour;
background-color: transparent;
text-color: @foreground-colour;
}
textbox {
padding: 8px 10px;
border: 0px solid;
border-radius: 10px;
border-color: @border-colour;
background-color: @alternate-background;
text-color: @foreground-colour;
vertical-align: 0.5;
horizontal-align: 0.0;
highlight: none;
placeholder-color: @foreground-colour;
blink: true;
markup: true;
}
error-message {
padding: 10px;
border: 2px solid;
border-radius: 10px;
border-color: @border-colour;
background-color: @background-colour;
text-color: @foreground-colour;
size: 0px;
}
-1
View File
@@ -64,7 +64,6 @@ option_6="󰍯 Noise Torch"
#-theme-str "listview {columns: $list_col; lines: $list_row;}" \
rofi_cmd() {
rofi -theme-str "window {width: $win_width;}" \
-theme-str 'textbox-prompt-colon {str: "";}' \
-dmenu \
-p "$prompt" \
-mesg "$mesg" \
+72 -178
View File
@@ -1,199 +1,93 @@
{
"$schema": "/etc/xdg/swaync/configSchema.json",
"control-center-height": 300,
"control-center-layer": "overlay",
"control-center-margin-bottom": 20,
"control-center-margin-left": 0,
"control-center-margin-right": 10,
"control-center-margin-top": 20,
"control-center-width": 500,
"cssPriority": "application",
"control-center-positionX":"right",
"control-center-positionY":"none",
"fit-to-screen": true,
"hide-on-action": false,
"hide-on-clear": true,
"image-visibility": "when-available",
"keyboard-shortcuts": true,
"layer": "overlay",
"notification-body-image-height": 100,
"notification-body-image-width": 200,
"notification-icon-size": 40,
"notification-inline-replies": true,
"notification-visibility": {},
"notification-window-width": 400,
"positionX": "right",
"positionY": "top",
"control-center-margin-top": 20,
"control-center-margin-bottom": 20,
"control-center-margin-right": 20,
"control-center-margin-left": 0,
"notification-icon-size": 48,
"notification-body-image-height": 160,
"notification-body-image-width": 90,
"timeout": 6,
"timeout-low": 4,
"timeout-critical": 0,
"fit-to-screen": true,
"control-center-width": 380,
"notification-window-width": 366,
"keyboard-shortcuts": true,
"image-visibility": "when-available",
"transition-time": 100,
"hide-on-clear": false,
"hide-on-action": true,
"script-fail-notify": true,
"scripts": {
"example-script": {
"exec": "echo 'Do something...'",
"urgency": "Normal"
}
},
"notification-visibility": {
"example-name": {
"state": "muted",
"urgency": "Low",
"app-name": "Spotify"
}
},
"widgets": [
"menubar",
"buttons-grid",
"volume",
"mpris",
"title",
"dnd",
"notifications"
],
"scripts": {},
"timeout": 10,
"timeout-critical": 0,
"timeout-low": 5,
"transition-time": 100,
"widget-config": {
"title": {
"text": "Notifications",
"clear-all-button": true,
"button-text": "Clear All"
},
"dnd": {
"text": "Do Not Disturb"
},
"label": {
"max-lines": 1,
"text": "Control Center"
},
"mpris": {
"image-size": 96,
"image-radius": 10
},
"backlight": {
"label": "",
"device": "intel_backlight",
"min": 10
},
"backlight#KB": {
"label": " ",
"device": "asus::kbd_backlight",
"subsystem": "leds"
},
"volume": {
"label": ""
},
"menubar": {
"menu#power-buttons": {
"label": "",
"position": "right",
"actions": [
{
"label": " Reboot",
"command": "systemctl reboot"
},
{
"label": " Lock",
"command": "swaylock.sh"
},
{
"label": " Logout",
"command": "loginctl terminate-session ${XDG_SESSION_ID-}"
},
{
"label": " Shut down",
"command": "systemctl poweroff"
}
]
},
"menu#powermode-buttons": {
"label": "",
"position": "right",
"actions": [
{
"label": "Performance",
"command": "powerprofilesctl set performance"
},
{
"label": "Balanced",
"command": "powerprofilesctl set balanced"
},
{
"label": "Power-saver",
"command": "powerprofilesctl set power-saver"
}
]
},
"menu#screenshot-buttons": {
"label": "",
"position": "left",
"actions": [
{
"label": " Entire screen",
"command": "swaync-client -cp && sleep 1 && hyprshot -m output"
},
{
"label": " Select a region",
"command": "swaync-client -cp && sleep 1 && hyprshot -m region"
},
{
"label": " Open screenshot menu",
"command": "swaync-client -cp && rofi-screenshot"
},
{
"label": " Open screenshot folder",
"command": "exo-open $HYPRSHOT_DIR"
}
]
},
"menu#screencast-buttons": {
"label": "",
"position": "left",
"actions": [
{
"label": " Entire screen",
"command": "swaync-client -cp && sleep 1 && recording.sh toggle fullscreen"
},
{
"label": " Select a region",
"command": "swaync-client -cp && sleep 1 && recording.sh toggle region"
},
{
"label": " Stop",
"command": "swaync-client -cp && recording.sh stop"
},
{
"label": " Open screencast folder",
"command": "$XDG_VIDEOS_DIR/Screencasts"
}
]
}
},
"buttons-grid": {
"actions": [
{
"label": "",
"command": "nm-connection-editor"
"active": false,
"command": "notify-send 'hey'",
"label": "󰤄",
"type": "toggle",
"update_command": "notify-send 'Hi'"
},
{
"label": "",
"command": "blueman"
"active": false,
"command": "swaync-client -d",
"label": "",
"type": "toggle"
},
{
"label": "",
"command": "nwg-look"
"active":false,
"command":"obs",
"label":"󰄀",
"type": "button"
},
{
"label": "",
"command": "exo-open ~/ConfigHub"
"active":false,
"command":"obs",
"label":"󰕧",
"type": "button"
},
{
"label": "",
"command": "ymuse"
},
{
"label": "",
"command": "orage"
},
{
"label": "",
"command": "pamac-manager"
},
{
"label": "",
"command": "firefox"
"active": false,
"command": "swaync-client -t",
"label": "",
"type": "toggle"
}
]
},
"mpris": {
"image-radius": 12,
"image-size": 96
},
"title": {
"text": "Notifications",
"button-text": "󰎟 Clear",
"clear-all-button": true
},
"volume": {
"label": "",
"show-per-app": true,
"show-per-app-icon": true,
"show-per-app-label":true
}
}
},
"widgets": [
"title",
"notifications",
"buttons-grid",
"mpris",
"volume"
]
}
+579
View File
@@ -0,0 +1,579 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "SwayNotificationCenter JSON schema",
"type": "object",
"additionalProperties": false,
"properties": {
"$schema": {
"type": "string",
"description": "Pointer to the schema against which this document should be validated."
},
"positionX": {
"type": "string",
"description": "Horizontal position of control center and notification window",
"default": "right",
"enum": [
"right",
"left",
"center"
]
},
"layer": {
"type": "string",
"description": "Layer of control center window",
"default": "top",
"enum": [
"background",
"bottom",
"top",
"overlay"
]
},
"cssPriority": {
"type": "string",
"description": "Which GTK priority to use when loading the default and user CSS files. Pick \"user\" to override XDG_CONFIG_HOME/gtk-3.0/gtk.css",
"default": "application",
"enum": [
"application",
"user"
]
},
"positionY": {
"type": "string",
"description": "Vertical position of control center and notification window",
"default": "top",
"enum": [
"top",
"bottom"
]
},
"control-center-positionX": {
"type": "string",
"description": "Optional: Horizontal position of the control center. Supersedes positionX if not set to `none`",
"default": "none",
"enum": [
"right",
"left",
"center",
"none"
]
},
"control-center-positionY": {
"type": "string",
"description": "Optional: Vertical position of the control center. Supersedes positionY if not set to `none`",
"default": "none",
"enum": [
"top",
"bottom",
"none"
]
},
"control-center-margin-top": {
"type": "integer",
"description": "The margin (in pixels) at the top of the notification center. 0 to disable",
"default": 0
},
"control-center-margin-bottom": {
"type": "integer",
"description": "The margin (in pixels) at the bottom of the notification center. 0 to disable",
"default": 0
},
"control-center-margin-right": {
"type": "integer",
"description": "The margin (in pixels) at the right of the notification center. 0 to disable",
"default": 0
},
"control-center-margin-left": {
"type": "integer",
"description": "The margin (in pixels) at the left of the notification center. 0 to disable",
"default": 0
},
"notification-icon-size": {
"type": "integer",
"description": "The notification icon size (in pixels)",
"default": 64,
"minimum": 16
},
"notification-body-image-height": {
"type": "integer",
"description": "The notification body image height (in pixels)",
"default": 100,
"minimum": 100
},
"notification-body-image-width": {
"type": "integer",
"description": "The notification body image width (in pixels)",
"default": 200,
"minimum": 200
},
"timeout": {
"type": "integer",
"description": "The notification timeout for notifications with normal priority",
"default": 10
},
"timeout-low": {
"type": "integer",
"description": "The notification timeout for notifications with low priority",
"default": 5
},
"timeout-critical": {
"type": "integer",
"description": "The notification timeout for notifications with critical priority. 0 to disable",
"default": 0
},
"notification-window-width": {
"type": "integer",
"description": "Width of the notification in pixels",
"default": 500
},
"fit-to-screen": {
"type": "boolean",
"description": "If the control center should expand to both edges of the screen",
"default": true
},
"control-center-height": {
"type": "integer",
"description": "Height of the control center in pixels. Ignored when 'fit-to-screen' is set to 'true'",
"default": 600,
"minimum": 300
},
"control-center-width": {
"type": "integer",
"description": "Width of the control center in pixels",
"default": 500,
"minimum": 300
},
"keyboard-shortcuts": {
"type": "boolean",
"description": "If control center should use keyboard shortcuts",
"default": true
},
"image-visibility": {
"type": "string",
"description": "An explanation about the purpose of this instance.",
"default": "when-available",
"enum": [
"always",
"when-available",
"never"
]
},
"transition-time": {
"type": "integer",
"description": "The notification animation duration. 0 to disable",
"default": 200
},
"hide-on-clear": {
"type": "boolean",
"description": "Hides the control center after pressing \"Clear All\"",
"default": false
},
"hide-on-action": {
"type": "boolean",
"description": "Hides the control center when clicking on notification action",
"default": true
},
"script-fail-notify": {
"type": "boolean",
"description": "Sends a notification if a script fails to run",
"default": true
},
"scripts": {
"type": "object",
"description": "Which scripts to check and potentially run for every notification. If the notification doesn't include one of the properties, that property will be ignored. All properties (except for exec) use regex. If all properties match the given notification, the script will be run. Only the first matching script will be run.",
"minProperties": 1,
"additionalProperties": false,
"patternProperties": {
"^.{1,}$": {
"type": "object",
"description": "Your script object.",
"required": [
"exec"
],
"minProperties": 2,
"additionalProperties": false,
"properties": {
"exec": {
"type": "string",
"description": "The script to run. Can also run regular shell commands."
},
"app-name": {
"type": "string",
"description": "The app-name. Uses Regex."
},
"desktop-entry": {
"type": "string",
"description": "The desktop-entry. Uses Regex."
},
"summary": {
"type": "string",
"description": "The summary of the notification. Uses Regex."
},
"body": {
"type": "string",
"description": "The body of the notification. Uses Regex."
},
"urgency": {
"type": "string",
"description": "The urgency of the notification.",
"default": "Normal",
"enum": [
"Low",
"Normal",
"Critical"
]
},
"category": {
"type": "string",
"description": "Which category the notification belongs to. Uses Regex."
},
"run-on": {
"type": "string",
"description": "Whether to run the script on an action being activated, or when the notification is received.",
"enum": [
"action",
"receive"
],
"default": "receive"
}
}
}
}
},
"notification-visibility": {
"type": "object",
"description": "Set the visibility of each incoming notification. If the notification doesn't include one of the properties, that property will be ignored. All properties (except for state) use regex. If all properties match the given notification, the notification will be follow the provided state. Only the first matching object will be used.",
"minProperties": 1,
"additionalProperties": false,
"patternProperties": {
"^.{1,}$": {
"type": "object",
"description": "Your script object.",
"required": [
"state"
],
"minProperties": 2,
"additionalProperties": false,
"properties": {
"state": {
"type": "string",
"description": "The notification visibility state.",
"default": "enabled",
"enum": [
"ignored",
"muted",
"enabled",
"transient"
]
},
"app-name": {
"type": "string",
"description": "The app-name. Uses Regex."
},
"desktop-entry": {
"type": "string",
"description": "The desktop-entry. Uses Regex."
},
"summary": {
"type": "string",
"description": "The summary of the notification. Uses Regex."
},
"body": {
"type": "string",
"description": "The body of the notification. Uses Regex."
},
"urgency": {
"type": "string",
"description": "The urgency of the notification.",
"default": "Normal",
"enum": [
"Low",
"Normal",
"Critical"
]
},
"override-urgency": {
"type": "string",
"description": "The new urgency of the notification (optional)",
"default": "unset",
"enum": [
"unset",
"low",
"normal",
"critical"
]
},
"category": {
"type": "string",
"description": "Which category the notification belongs to. Uses Regex."
}
}
}
}
},
"widgets": {
"type": "array",
"description": "Which order and which widgets to display. If the \"notifications\" widget isn't specified, it will be placed at the bottom.",
"default": [
"inhibitors",
"title",
"dnd",
"notifications"
],
"items": {
"type": "string",
// Sadly can't use regex and enums at the same time. Fix in the future?
"pattern": "^[a-zA-Z0-9_-]{1,}(#[a-zA-Z0-9_-]{1,}){0,1}?$"
}
},
"widget-config": {
"type": "object",
"description": "Configure specific widget properties.",
"additionalProperties": false,
"patternProperties": {
// New widgets go here
"^title(#[a-zA-Z0-9_-]{1,}){0,1}?$": {
// References the widget structure from "widgets" below
"$ref": "#/widgets/title"
},
"^dnd(#[a-zA-Z0-9_-]{1,}){0,1}?$": {
"$ref": "#/widgets/dnd"
},
"^label(#[a-zA-Z0-9_-]{1,}){0,1}?$": {
"$ref": "#/widgets/label"
},
"^mpris(#[a-zA-Z0-9_-]{1,}){0,1}?$": {
"$ref": "#/widgets/mpris"
},
"^buttons-grid(#[a-zA-Z0-9_-]{1,}){0,1}?$": {
"$ref": "#/widgets/buttons-grid"
},
"^menubar(#[a-zA-Z0-9_-]{1,}){0,1}?$": {
"$ref": "#/widgets/menubar"
},
"^volume(#[a-zA-Z0-9_-]{1,}){0,1}?$": {
"$ref": "#/widgets/volume"
},
"^backlight(#[a-zA-Z0-9_-]{1,}){0,1}?$": {
"$ref": "#/widgets/backlight"
},
"^inhibitors(#[a-zA-Z0-9_-]{1,}){0,1}?$": {
// References the widget structure from "widgets" below
"$ref": "#/widgets/inhibitors"
}
}
}
},
"widgets": {
// New widgets go here
"title": {
"type": "object",
"description": "Control Center Title Widget",
"additionalProperties": false,
"properties": {
"text": {
"type": "string",
"description": "The title of the widget",
"default": "Notifications"
},
"clear-all-button": {
"type": "boolean",
"description": "Wether to display a \"Clear All\" button",
"default": true
},
"button-text": {
"type": "string",
"description": "\"Clear All\" button text",
"default": "Clear All"
}
}
},
"dnd": {
"type": "object",
"description": "Control Center Do Not Disturb Widget",
"additionalProperties": false,
"properties": {
"text": {
"type": "string",
"description": "The title of the widget",
"default": "Do Not Disturb"
}
}
},
"label": {
"type": "object",
"description": "A generic widget that allows the user to add custom text",
"additionalProperties": false,
"properties": {
"text": {
"type": "string",
"description": "The text content of the widget",
"default": "Label Text"
},
"max-lines": {
"type": "integer",
"description": "The maximum lines",
"default": 5
}
}
},
"mpris": {
"type": "object",
"description": "A widget that displays multiple music players",
"additionalProperties": false,
"properties": {
"image-size": {
"type": "integer",
"description": "The size of the album art",
"default": 96
},
"image-radius": {
"type": "integer",
"description": "The border radius of the album art",
"default": 12
}
}
},
"buttons-grid": {
"type": "object",
"description": "A widget to add a grid of buttons that execute shell commands",
"additionalProperties": false,
"properties": {
"actions": {
"type": "array",
"description": "A list of actions containing a label and a command",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"description": "Text to be displayed in button",
"default": "label"
},
"command": {
"type": "string",
"description": "Command to be executed on click",
"default": ""
}
}
}
}
}
},
"menubar": {
"type": "object",
"description": "A bar that contains action-buttons and buttons to open a dropdown with action-buttons",
"additionalProperties": false,
"patternProperties": {
"^menu(#[a-zA-Z0-9_-]{1,}){0,1}?$": {
"type": "object",
"description": "A button that opens a dropdown with action-buttons",
"additionalProperties": false,
"properties": {
"label": {
"type": "string",
"description": "Text to be displayed in button",
"default": "Menu"
},
"position": {
"type": "string",
"description": "Horizontal position of the button in the bar",
"default": "right",
"enum": [
"right",
"left"
]
},
"actions": {
"$ref": "#/widgets/buttons-grid/properties/actions"
}
}
},
"^buttons(#[a-zA-Z0-9_-]{1,}){0,1}?$": {
"type": "object",
"description": "A list of action-buttons to be displayed in the topbar",
"additionalProperties": false,
"properties": {
"position": {
"type": "string",
"description": "Horizontal position of the button in the bar",
"default": "right",
"enum": [
"right",
"left"
]
},
"actions": {
"$ref": "#/widgets/buttons-grid/properties/actions"
}
}
}
}
},
"volume": {
"type": "object",
"description": "Slider to control pulse volume",
"additionalProperties": false,
"properties": {
"label": {
"type": "string",
"description": "Text displayed in front of the volume slider",
"default": "Volume"
}
}
},
"backlight": {
"type": "object",
"description": "Slider to control monitor brightness",
"additionalProperties": false,
"properties": {
"label": {
"type": "string",
"description": "Text displayed in front of the backlight slider",
"default": "Brightness"
},
"device": {
"type": "string",
"description": "Name of monitor (find possible devices using `ls /sys/class/backlight` or `ls /sys/class/leds`)",
"default": "intel_backlight"
},
"subsystem": {
"type": "string",
"description": "Kernel subsystem for brightness control",
"default": "backlight",
"enum": [
"backlight",
"leds"
]
},
"min": {
"type": "integer",
"default": 0,
"description": "Lowest possible value for brightness"
}
}
},
"inhibitors": {
"type": "object",
"description": "Control Center Inhibitors Widget",
"additionalProperties": false,
"properties": {
"text": {
"type": "string",
"description": "The title of the widget",
"default": "Inhibitors"
},
"clear-all-button": {
"type": "boolean",
"description": "Wether to display a \"Clear All\" button",
"default": true
},
"button-text": {
"type": "string",
"description": "\"Clear All\" button text",
"default": "Clear All"
}
}
}
}
}
+256 -280
View File
@@ -1,236 +1,291 @@
@define-color noti-border-color rgba(255, 255, 255, 0.15);
@define-color noti-bg #2a293a;
@define-color noti-bg-hover-alt #454545;
@define-color noti-bg-alt rgba(38,37,53,1);
@define-color noti-fg #acb0d0;
@define-color noti-bg-hover rgba(255, 255, 255, 0.1);
@define-color noti-bg-focus rgba(255, 255, 255, 0.1);
@define-color noti-close-bg rgba(255, 255, 255, 0.1);
@define-color noti-close-bg-hover rgba(255, 255, 255, 0.15);
@define-color noti-urgent rgba(255,0,80,0.8);
@define-color bg-selected #26A69A;
* {
font-family: "Hack Nerd Font";
color: @noti-fg;
}
.notification-row {
outline: none;
}
.notification-row:focus,
.notification-row:hover {
background: @noti-bg-focus;
}
.notification {
border: 1px solid @bg-selected;
border-radius: 4px;
margin: 6px 12px;
box-shadow: none;
padding: 0;
}
/* Uncomment to enable specific urgency colors */
/* .low {
background: yellow;
}
.normal {
background: green;
} */
.critical {
border: 1px solid @noti-urgent;
}
.notification-content {
background: transparent;
padding: 6px;
border-radius: 4px;
}
.close-button {
background: @noti-close-bg;
color: white;
text-shadow: none;
padding: 0;
border-radius: 100%;
margin-top: 10px;
margin-right: 16px;
box-shadow: none;
border: none;
min-width: 24px;
min-height: 24px;
}
.close-button:hover {
box-shadow: none;
background: @noti-close-bg-hover;
transition: all 0.15s ease-in-out;
border: none;
}
.notification-default-action,
.notification-action {
padding: 4px;
margin: 0;
box-shadow: none;
background: @noti-bg;
border: 1px solid @noti-border-color;
color: white;
}
.notification-default-action:hover,
.notification-action:hover {
-gtk-icon-effect: none;
background: @noti-bg-alt;
}
.notification-default-action {
border-radius: 4px;
}
/* When alternative actions are visible */
.notification-default-action:not(:only-child) {
border-bottom-left-radius: 0px;
border-bottom-right-radius: 0px;
}
.notification-action {
border-radius: 0px;
border-top: none;
border-right: none;
}
/* add bottom border radius to eliminate clipping */
.notification-action:first-child {
border-bottom-left-radius: 4px;
}
.notification-action:last-child {
border-bottom-right-radius: 4px;
border-right: 1px solid @noti-border-color;
}
.image {}
.body-image {
margin-top: 6px;
background-color: white;
border-radius: 6px;
}
.summary {
font-size: 14px;
font-weight: bold;
background: transparent;
color: white;
font-family: "JetBrainsMono Nerd Font";
transition: 100ms;
box-shadow: unset;
}
.control-center .notification-row {
background-color: unset;
}
.control-center .notification-row .notification-background .notification,
.control-center .notification-row .notification-background .notification .notification-content,
.floating-notifications .notification-row .notification-background .notification,
.floating-notifications.background .notification-background .notification .notification-content {
margin-bottom: unset;
}
.control-center .notification-row .notification-background .notification {
margin-top: 0.150rem;
}
.control-center .notification-row .notification-background .notification box,
.control-center .notification-row .notification-background .notification widget,
.control-center .notification-row .notification-background .notification .notification-content,
.floating-notifications .notification-row .notification-background .notification box,
.floating-notifications .notification-row .notification-background .notification widget,
.floating-notifications.background .notification-background .notification .notification-content {
border: unset;
border-radius: 10px;
-gtk-outline-radius: 10px;
}
.floating-notifications.background .notification-background .notification .notification-content,
.control-center .notification-background .notification .notification-content {
/* border-top: 1px solid rgba(164, 162, 167, 0.15);
border-left: 1px solid rgba(164, 162, 167, 0.15);
border-right: 1px solid rgba(128, 127, 132, 0.15);
border-bottom: 1px solid rgba(128, 127, 132, 0.15);*/
background-color: #1D1D22;
padding: 0.818rem;
padding-right: unset;
margin-right: unset;
}
.control-center .notification-row .notification-background .notification.low .notification-content label,
.control-center .notification-row .notification-background .notification.normal .notification-content label,
.floating-notifications.background .notification-background .notification.low .notification-content label,
.floating-notifications.background .notification-background .notification.normal .notification-content label {
color: #c7c5d0;
}
.control-center .notification-row .notification-background .notification..notification-content image,
.control-center .notification-row .notification-background .notification.normal .notification-content image,
.floating-notifications.background .notification-background .notification.low .notification-content image,
.floating-notifications.background .notification-background .notification.normal .notification-content image {
background-color: unset;
color: #e2e0f9;
}
.control-center .notification-row .notification-background .notification.low .notification-content .body,
.control-center .notification-row .notification-background .notification.normal .notification-content .body,
.floating-notifications.background .notification-background .notification.low .notification-content .body,
.floating-notifications.background .notification-background .notification.normal .notification-content .body {
color: #92919a;
}
.control-center .notification-row .notification-background .notification.critical .notification-content,
.floating-notifications.background .notification-background .notification.critical .notification-content {
background-color: #ffb4a9;
}
.control-center .notification-row .notification-background .notification.critical .notification-content image,
.floating-notifications.background .notification-background .notification.critical .notification-content image{
background-color: unset;
color: #ffb4a9;
}
.control-center .notification-row .notification-background .notification.critical .notification-content label,
.floating-notifications.background .notification-background .notification.critical .notification-content label {
color: #680003;
}
.control-center .notification-row .notification-background .notification .notification-content .summary,
.floating-notifications.background .notification-background .notification .notification-content .summary {
font-family: 'Gabarito', 'Lexend', sans-serif;
font-size: 0.9909rem;
font-weight: 500;
}
.control-center .notification-row .notification-background .notification .notification-content .time,
.floating-notifications.background .notification-background .notification .notification-content .time {
font-family: 'Geist', 'AR One Sans', 'Inter', 'Roboto', 'Noto Sans', 'Ubuntu', sans-serif;
font-size: 0.8291rem;
font-weight: 500;
margin-right: 1rem;
padding-right: unset;
}
.control-center .notification-row .notification-background .notification .notification-content .body,
.floating-notifications.background .notification-background .notification .notification-content .body {
font-family: 'Noto Sans', sans-serif;
font-size: 0.8891rem;
font-weight: 400;
margin-top: 0.310rem;
padding-right: unset;
margin-right: unset;
}
.control-center .notification-row .close-button,
.floating-notifications.background .close-button {
background-color: unset;
border-radius: 100%;
border: none;
box-shadow: none;
margin-right: 13px;
margin-top: 6px;
margin-bottom: unset;
padding-bottom: unset;
min-height: 20px;
min-width: 20px;
text-shadow: none;
}
.time {
font-size: 13px;
font-weight: bold;
background: transparent;
color: white;
text-shadow: none;
margin-right: 18px;
}
.body {
font-size: 12px;
font-weight: normal;
background: transparent;
color: white;
text-shadow: none;
}
/* The "Notifications" and "Do Not Disturb" text widget */
.top-action-title {
color: white;
text-shadow: none;
.control-center .notification-row .close-button:hover,
.floating-notifications.background .close-button:hover {
background-color: rgba(255, 255, 255, 0.15);
}
.control-center {
background-color: @noti-bg-alt;
border-radius:10px;
padding-top:5px;
-gtk-outline-radius:10px;
border-top: 1px solid rgba(164, 162, 167, 0.19);
border-left: 1px solid rgba(164, 162, 167, 0.19);
border-right: 1px solid rgba(128, 127, 132, 0.145);
border-bottom: 1px solid rgba(128, 127, 132, 0.145);
box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.45);
margin: 7px;
background-color: #14141B;
padding: 1.023rem;
}
.control-center-list {
background: transparent;
.control-center trough {
background-color: #45475a;
border-radius: 9999px;
-gtk-outline-radius: 9999px;
min-width: 0.545rem;
background-color: transparent;
}
.floating-notifications {
background: transparent;
.control-center slider {
border-radius: 9999px;
-gtk-outline-radius: 9999px;
min-width: 0.273rem;
min-height: 2.045rem;
background-color: rgba(199, 197, 208, 0.31);
}
/* Window behind control center and on all other monitors */
.blank-window {
background: transparent;
.control-center slider:hover {
background-color: rgba(199, 197, 208, 0.448);
}
/*** Widgets ***/
.control-center slider:active {
background-color: #77767e;
}
/* title widget */
/* Title widget */
.widget-title {
margin: 8px;
font-size: 16px;
padding: 0.341rem;
margin: unset;
}
.widget-title>button {
font-size: 10px;
color: white;
text-shadow: none;
background: @noti-bg;
border: 1px solid @noti-border-color;
box-shadow: none;
border-radius: 20px;
.widget-title label {
font-family: 'Gabarito', 'Lexend', sans-serif;
font-size: 1.364rem;
color: #e4e1e6;
margin-left: 0.941rem;
}
.widget-title>button:hover {
background: @noti-bg-hover;
}
/* DND widget */
.widget-dnd {
margin: 8px;
font-size: 1.1rem;
border-radius: 20px;
}
.widget-dnd>switch {
font-size: initial;
border-radius: 20px;
background: @noti-bg;
border: 1px solid @noti-border-color;
box-shadow: none;
}
.widget-dnd>switch:checked {
background: @noti-bg;
}
.widget-dnd>switch slider {
background: @noti-bg-hover;
.widget-title button {
border: unset;
background-color: unset;
border-radius: 10px;
-gtk-outline-radius: 10px;
padding: 0.141rem 0.141rem;
margin-right: 0.841rem;
}
/* Label widget */
.widget-label {
margin: 4px 8px 8px;
.widget-title button label {
font-family: 'Gabarito', sans-serif;
font-size: 1.0409rem;
color: #e4e1e6;
margin-right: 0.841rem;
}
.widget-label>label {
font-size: 16px;
.widget-title button:hover {
background-color: rgba(128, 128, 128, 0.3);
}
.widget-title button:active {
background-color: rgba(128, 128, 128, 0.7);
}
/* Buttons widget */
.widget-buttons-grid {
border-radius: 10px;
-gtk-outline-radius: 10px;
padding: 0.341rem;
background-color: rgba(28, 28, 34, 0.35);
padding: unset;
}
.widget-buttons-grid>flowbox {
padding: unset;
}
.widget-buttons-grid>flowbox>flowboxchild>button:first-child {
margin-left:unset ;
}
.widget-buttons-grid>flowbox>flowboxchild>button {
border:none;
background-color: unset;
border-radius: 9999px;
min-width: 5.522rem;
min-height: 2.927rem;
padding: unset;
margin: unset;
}
.widget-buttons-grid>flowbox>flowboxchild>button label {
font-family: "Materials Symbol Rounded";
font-size: 1.3027rem;
color: #e4e1e6;
}
.widget-buttons-grid>flowbox>flowboxchild>button:hover {
background-color: rgba(128, 128, 128, 0.3);
}
.widget-buttons-grid>flowbox>flowboxchild>button:checked {
/* OnePlus McClaren edition Orange accent */
background-color: #ff9f34;
}
.widget-buttons-grid>flowbox>flowboxchild>button:checked label {
color: #14141B;
}
/* Volume widget */
.widget-volume {
background-color: rgba(28, 28, 34, 0.35);
padding: 8px;
margin: 8px;
border-radius: 10px;
-gtk-outline-radius: 10px;
}
.widget-volume trough {
/* OnePlus McClaren edition Orange accent */
border:unset;
background-color: rgba(128, 128, 128, 0.4);
}
.widget-volume trough slider {
/* OnePlus McClaren edition Orange accent */
color:unset;
background-color: #ff9f34;
border-radius: 100%;
min-height: 1.25rem;
min-width: 1.25rem;
}
/* Mpris widget */
.widget-mpris {
/* The parent to all players */
background-color: rgba(28, 28, 34, 0.35);
padding: 8px;
margin: 8px;
border-radius: 10px;
-gtk-outline-radius: 10px;
}
.widget-mpris-player {
@@ -246,82 +301,3 @@
.widget-mpris-subtitle {
font-size: 1.1rem;
}
/* Volume and Brightness Widget*/
.widget-volume {
background-color: @noti-bg;
padding: 4px 4px 4px 20px;
margin: 0px 8px 8px 8px;
border-radius: 20px;
font-size: 14px;
}
.widget-backlight {
background-color: @noti-bg;
padding: 8px 8px 4px 8px;
margin: 8px 8px 0px 8px;
border-top-left-radius: 12px;
border-top-right-radius: 12px;
}
.KB {
padding: 4px 8px 4px 8px;
margin: 0px 8px 0px 8px;
border-radius: 0;
}
.widget-menubar>box{
padding: 8px 0px 4px;
margin: 0px 8px;
border-radius: 10px 10px 0px 0px;
background-color: @noti-bg;
}
.widget-menubar>box>.menu-button-bar>button{
border: 1px solid @noti-border-color;
background: @noti-bg;
border-radius: 10px;
margin: 4px 12px;
}
.widget-buttons-grid{
padding: 0px 8px 8px;
margin: 0px 8px 8px;
border-radius: 0px 0px 10px 10px;
background-color: @noti-bg;
font-size: 14px;
}
.widget-buttons-grid>flowbox>flowboxchild>button{
background: @noti-bg;
border-radius: 20px;
}
.widget-buttons-grid>flowbox>flowboxchild>button:hover {
background: @noti-bg-hover;
}
.screenshot-buttons,
.screencast-buttons,
.powermode-buttons,
.power-buttons{
border-radius: 20px;
}
.screenshot-buttons>button,
.screencast-buttons>button,
.powermode-buttons>button,
.power-buttons>button{
background: transparent;
padding: 2px 0px;
margin: 5px 70px 3px;
border: 1px solid @noti-border-color;
}
.screenshot-buttons>button:hover,
.screencast-buttons>button:hover,
.powermode-buttons>button:hover,
.power-buttons>button:hover{
background: @noti-bg-hover;
}
+21
View File
@@ -0,0 +1,21 @@
#!/bin/bash
case $1 in
vol)
case $2 in
up)
/home/dom/.local/bin/volnote up
;;
down)
/home/dom/.local/bin/volnote down
;;
esac
;;
caps)
status=$(xset -q | sed -n 's/^.*Caps Lock:\s*\(\S*\).*$/\1/p')
notify-send -u low -e "Caps Lock $status" -h boolean:value:true -r 555
;;
esac
sleep 2
swaync-client --hide-latest
+211 -84
View File
@@ -1,10 +1,35 @@
{
"layer": "top",
"margin-top": 0,
"spacing": 0,
"modules-left": ["group/sys", "tray", "hyprland/workspaces"],
"modules-center": ["mpris", "wlr/taskbar"],
"modules-right": ["group/stats", "group/net", "group/sound", "cava", "battery", "custom/updates","idle_inhibitor"],
"spacing": 5,
"modules-left": [
"group/sys",
"niri/workspaces",
"tray",
"wlr/taskbar",
"niri/window"
],
"modules-center": [
],
"modules-right": [
"mpris",
"custom/cpugov",
"group/net",
"group/sound",
"group/indicators"
],
"group/indicators": {
"orientation": "inherit",
"modules": [
"gamemode",
"custom/updates",
"idle_inhibitor",
"custom/screenshader",
"privacy"
]
},
"group/net": {
"orientation": "inherit",
"modules": [
@@ -19,8 +44,7 @@
"custom/cpugov",
"cpu",
"memory",
"custom/gpu-usage",
"gamemode"
"custom/gpu-usage"
],
"drawer": {
"transition-duration": 500,
@@ -30,7 +54,8 @@
"group/sound": {
"orientation": "inherit",
"modules": [
"pulseaudio", "pulseaudio/slider", "custom/audio_idle_inhibitor"
"pulseaudio",
"pulseaudio/slider"
],
"drawer": {
"transition-duration": 500,
@@ -40,7 +65,8 @@
"group/sys": {
"orientation": "inherit",
"modules": [
"custom/power", "clock"
"custom/power",
"clock"
]
},
"network": {
@@ -51,9 +77,13 @@
"tooltip-format-wifi": " WiFi {essid} ({signalStrength}%)",
"tooltip-format-ethernet": "󰱔 {ifname}",
"tooltip-format-disconnected": "Disconnected",
"max-length": 50,
"on-click": "nm-applet --indicator",
"format-icons": ["󱛅", "󱛂", "󱛃", "󱚽"],
"on-click": "nm-connection-editor",
"format-icons": [
"󱛅",
"󱛂",
"󱛃",
"󱚽"
],
"max-length": 5
},
"tray": {
@@ -62,8 +92,9 @@
},
"clock": {
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"format-alt": "<b>{:%d.%m.%Y}</b>",
"format": "<b>{:%H:%M}</b>",
"format-alt": "<b>{:%d.%m.%Y %H:%M}</b>",
"format": "<b>{:%d.%m. %H:%M}</b>",
"timezone": "DE",
"calendar": {
"mode": "month",
"mode-mon-col": 3,
@@ -91,18 +122,16 @@
"user": {
"format": "{user}",
"interval": 240,
"height": 30,
"width": 30,
"icon": false,
"height": 16,
"width": 16,
"open-on-click": false
},
"pulseaudio": {
"format": "{format_source} | {icon} <b>{volume}</b>%",
"format": "{format_source} {icon} <small>{volume}%</small>",
"format-bluetooth": "{icon} {volume}% {format_source}",
"format-bluetooth-muted": "{icon} {format_source}",
"format-muted": "{icon} <b>0</b>%",
"format-bluetooth-muted": "{icon} {format_source}",
"format-muted": "{icon} <b>0</b>%",
"format-source": "",
"format-source-muted": "",
"format-icons": {
@@ -112,7 +141,11 @@
"phone": "",
"portable": "",
"car": "",
"default": ["", "", ""]
"default": [
"",
"",
"󰕾"
]
},
"on-click": "$HOME/.config/rofi/audio/rofi-sink-switcher.sh &",
"on-click-right": "pavucontrol",
@@ -124,18 +157,6 @@
"max": 99,
"orientation": "horizontal"
},
"custom/audio_idle_inhibitor": {
"format": "{icon}",
"exec": "sway-audio-idle-inhibit --dry-print-both-waybar",
"exec-if": "which sway-audio-idle-inhibit",
"return-type": "json",
"format-icons": {
"output": "",
"input": "",
"output-input": "",
"none": ""
}
},
"mpris": {
"format": "⏸ {title:.10}",
"format-paused": "▶ {player}",
@@ -143,7 +164,8 @@
"default": "⏸",
"mpv": "🎵",
"spotify": "",
"firefox": "󰈹"
"firefox": "󰈹",
"mercury": "󰈹"
},
"status-icons": {
"paused": "⏸"
@@ -151,7 +173,16 @@
},
"custom/power": {
"format": "󰣇",
"on-click": "$HOME/.config/rofi/powermenu/powermenu.sh"
"menu": "on-click",
"menu-file": "~/.config/waybar/session_menu.xml",
"menu-actions": {
"lock": "hyprlock",
"logout": "hyprctl dispatch exit",
"hibernate": "systemctl hibernate",
"reboot": "systemctl reboot",
"suspend": "systemctl suspend",
"shutdown": "systemctl poweroff"
}
},
"gamemode": {
"format": "{glyph}<small>{count}</small>",
@@ -160,33 +191,39 @@
"hide-not-running": true,
"use-icon": true,
"icon-name": "input-gaming-symbolic",
"icon-spacing": 4,
"icon-size": 14,
"icon-spacing": 1,
"icon-size": 12,
"tooltip": true,
"tooltip-format": "Games running: {count}"
},
"wlr/taskbar": {
"markup": true,
"format": "{icon} {title:.10}",
"icon-size": 16,
"format": "{icon}",
"icon-size": 20,
"tooltip-format": "{title:.100}",
"sort-by-app-id": true,
// "sort-by-app-id": true,
"on-click": "activate",
"on-click-middle": "close",
"ignore-list": [
"Alacritty"
],
"on-right-middle": "minimize-raise",
"active-first": false,
"ignore-list": ["title<>"],
"app_ids-mapping": {
"firefoxdeveloperedition": "firefox-developer-edition"
},
"rewrite": {
"Firefox Web Browser": "Firefox",
"Visual Studio Code": "Code",
"Nemo": "Dateien"
}
"Mozilla Firefox": "Firefox",
"firefox": "Firefox",
"VSCodium": "Code",
"codium": "Code",
"Alacritty": "Terminal",
},
"squash-list": [
"firefox"
]
},
"hyprland/workspaces": {
"format": "{name} {windows}",
"active-only": false,
"window-rewrite-default": "󰘔",
"on-click": "activate",
"format-window-separator": " ",
@@ -198,6 +235,7 @@
},
"window-rewrite": {
"firefox": "",
"mercury-default": "",
"LibreWolf": "",
"celluloid": "",
"videostream": "",
@@ -205,10 +243,10 @@
"rust": "",
"private browsing": "",
"google": "",
"foot": " ",
"chrome": "",
"Chromium": "",
"nemo": "",
"pcmanfm": "",
"libreoffice calc": "",
"libreoffice writer": "󰈙",
"libreoffice": "󰈙",
@@ -225,18 +263,20 @@
"Steam": "󰓓",
"Teams": "󰊻",
"kitty": "",
"code": " 󰨞"
"alacritty": "",
"foot": "",
"code": "󰨞",
"codium": "󰅨",
"subl": "",
"title<>": ""
},
"sort-by-number": true
},
"hyprland/window": {
"format": "{}",
"rewrite": {
"(.*) — firefox": "🌎 $1",
"(.*) - zsh": "> [$1]",
"(.*) - kitty": "> [$1]"
},
"separate-outputs": false
"format": "{title}",
"icon": false,
"icon-size": 16,
"separate-outputs": true
},
"custom/updates": {
"format": "{icon}",
@@ -246,31 +286,45 @@
"updated": "󰂪"
},
"exec-if": "which waybar-module-pacman-updates",
"exec": "waybar-module-pacman-updates"
"exec": "waybar-module-pacman-updates",
"on-click": "alacritty paru"
},
"custom/pacman": {
"format": "{} ",
"interval": 3600, // every hour
"exec": "checkupdates | wc -l", // # of updates
"exec-if": "exit 0", // always run; consider advanced run conditions
"on-click": "kitty 'sudo pacman -Syu'; pkill -SIGRTMIN+8 waybar", // update system
"signal": 8
"custom/dnd": {
"format": " {} ",
"exec": "hyprm-dnd",
"return-type": "json",
"on-click": "dunstctl set-paused toggle",
"restart-interval": 1,
},
"custom/screenshader": {
"format": " {} ",
"menu": "on-click",
"menu-file": "~/.config/waybar/screenshader.xml",
"menu-actions": {
"blue-light-heavy": "hyprctl hyprsunset temperature 5000",
"blue-light-soft": "hyprctl hyprsunset temperature 5500",
"off": "hyprctl hyprsunset identity"
},
"exec-if": "hyprshade",
"exec": "hyprshade-waybar",
"return-type": "json",
"restart-interval": 1000
},
"custom/notification": {
"tooltip": false,
"format": "{icon} {}",
"format-icons": {
"notification": "<span foreground='red'><sup></sup></span>",
"none": "",
"dnd-notification": "<span foreground='red'><sup></sup></span>",
"dnd-none": "",
"inhibited-notification": "<span foreground='red'><sup></sup></span>",
"inhibited-none": "",
"dnd-inhibited-notification": "<span foreground='red'><sup></sup></span>",
"dnd-inhibited-none": ""
"notification": "󰂞",
"none": "󰂜",
"dnd-notification": "󰂛",
"dnd-none": "󰂛",
"inhibited-notification": "󰂜",
"inhibited-none": "󰂜",
"dnd-inhibited-notification": "󰂛",
"dnd-inhibited-none": "󰂛"
},
"return-type": "json",
"exec-if": "which swaync-client",
"exec-if": "which sync-client",
"exec": "swaync-client -swb",
"on-click": "sh -c 'sleep 0.1s; swaync-client -t -sw; sleep 0.1s'",
"on-click-right": "swaync-client -d -sw",
@@ -295,7 +349,16 @@
"noise_reduction": 0.77,
"input_delay": 2,
"sleep_timer": 5,
"format-icons" : ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█" ],
"format-icons": [
"▁",
"▂",
"▃",
"▄",
"▅",
"▆",
"▇",
"█"
],
"actions": {
"on-click-right": "mode"
}
@@ -332,15 +395,13 @@
]
},
"custom/cpugov": {
"exec": "$HOME/.config/waybar/waybar-cpugov",
"exec": "hyprm-waybar-cpugov",
"return-type": "json",
"restart-interval": 10,
"on-click": "$HOME/.config/rofi/cpugov/rofi-cpugov.sh",
"on-click-right": "resources"
"on-click": "$HOME/.config/rofi/cpugov/rofi-cpugov.sh"
},
"custom/gpu-usage": {
"exec": "$HOME/.config/waybar/waybar-gpustat",
"exec": "hyprm-waybar-gpustat",
"return-type": "json",
"restart-interval": 10
},
@@ -351,27 +412,33 @@
"critical": 15
},
"format": "{capacity}% {icon}",
"format-icons": ["", "", "", "", ""],
"format-icons": [
"",
"",
"",
"",
""
],
"max-length": 25
},
"bluetooth": {
// "controller": "controller1", // specify the alias of the controller if there are more than 1 on the system
"format": " {status}",
"format-disabled": "󰂲", // an empty format will hide the module
"format-connected": " {num_connections}",
"format-connected": "<small>{num_connections}</small>",
"tooltip-format": "{controller_alias}\t{controller_address}",
"tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{device_enumerate}",
"tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{device_enumerate}\t{device_battery_percentage}%",
"tooltip-format-enumerate-connected": "{device_alias}\t{device_address}",
"on-click": "blueberry"
},
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
"activated": "",
"deactivated": ""
"activated": "󱎴",
"deactivated": "󰷛"
},
"tooltip-format-activated": " Idle Inhibitor activated",
"tooltip-format-deactivated": " Idle Inhibitor deactivated"
"tooltip-format-activated": "󱎴 No Lockscreen on idle",
"tooltip-format-deactivated": "󰷛 Lockscreen on idle"
},
"custom/vpn": {
"format": "󰖂",
@@ -379,6 +446,66 @@
"exec-if": "test -d /proc/sys/net/ipv4/conf/tun0",
"return-type": "json",
"interval": 5
},
"power-profiles-daemon": {
"format": "{icon}",
"tooltip-format": "Power profile: {profile}\nDriver: {driver}",
"tooltip": true,
"format-icons": {
"default": "󰓅",
"performance": "󰓅",
"balanced": "󰾅",
"power-saver": "󰌪"
}
},
"privacy": {
"icon-spacing": 4,
"icon-size": 12,
"transition-duration": 250,
"modules": [
{
"type": "screenshare",
"tooltip": true,
"tooltip-icon-size": 12
},
{
"type": "audio-out",
"tooltip": true,
"tooltip-icon-size": 12
},
{
"type": "audio-in",
"tooltip": true,
"tooltip-icon-size": 12
}
]
},
"custom/weather": {
"exec": "hyprm-waybar-weather NRW+Germany",
"return-type": "json",
"format": "{}",
"tooltip": true,
"interval": 3600
},
"niri/workspaces": {
"format": "{icon}",
"format-icons": {
// Named workspaces
// (you need to configure them in niri)
"browser": "",
"discord": "",
"chat": "<b></b>",
// Icons by state
"active": "",
"default": ""
}
},
"niri/window": {
"format": "{}",
"rewrite": {
"(.*) - Mozilla Firefox": "🌎 $1",
"(.*) - zsh": "> [$1]"
}
}
}
+28
View File
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<object class="GtkMenu" id="menu">
<child>
<object class="GtkMenuItem" id="suspend">
<property name="label">Suspend</property>
</object>
</child>
<child>
<object class="GtkMenuItem" id="hibernate">
<property name="label">Hibernate</property>
</object>
</child>
<child>
<object class="GtkMenuItem" id="shutdown">
<property name="label">Shutdown</property>
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem" id="delimiter1"/>
</child>
<child>
<object class="GtkMenuItem" id="reboot">
<property name="label">Reboot</property>
</object>
</child>
</object>
</interface>
+26
View File
@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<object class="GtkMenu" id="menu">
<child>
<object class="GtkMenuItem" id="blue-light-heavy">
<property name="label"> Blue Light Heavy</property>
</object>
</child>
<child>
<object class="GtkMenuItem" id="blue-light-soft">
<property name="label"> Blue Light Soft</property>
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem" id="delimiter1"/>
</child>
<child>
<object class="GtkMenuItem" id="off">
<property name="label"> Off</property>
</object>
</child>
</object>
</interface>
+36
View File
@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<object class="GtkMenu" id="menu">
<child>
<object class="GtkMenuItem" id="lock">
<property name="label"> Lock</property>
</object>
</child>
<child>
<object class="GtkMenuItem" id="logout">
<property name="label">󰗽 Logout</property>
</object>
</child>
<child>
<object class="GtkMenuItem" id="hibernate">
<property name="label">󰤄 Hibernate</property>
</object>
</child>
<child>
<object class="GtkMenuItem" id="reboot">
<property name="label">󰑐 Reboot</property>
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem" id="delimiter1"/>
</child>
<child>
<object class="GtkMenuItem" id="shutdown">
<property name="label"> Shutdown</property>
</object>
</child>
</object>
</interface>
+166 -46
View File
@@ -1,21 +1,35 @@
* {
border: none;
font-family: "Hack Nerd Font", sans-serif;
font-family: "Ubuntu Nerd Font", sans-serif;
font-size: 13px;
color: alpha(@theme_text_color, 0.8);
}
window#waybar {
background: @theme_bg_color;
/*background: transparent;*/
background: alpha(@theme_selected_fg_color, 0.2);
}
/*-----main groups----*/
.modules-right {
margin: 0 0 0 0;
margin: 0;
padding-left: 5px;
padding-right: 0;
border-radius: 0;
}
.modules-center {
margin: 0 0 0 0;
margin: 0;
border-radius: 0;
}
.modules-left {
margin: 0 0 0 0;
margin: 0 0 0 5px;
/* background-color:alpha(@theme_selected_bg_color, 0.15);
background: @theme_bg_color */
border-radius: 0;
margin-left: 5px;
}
/**
@@ -44,53 +58,80 @@ window#waybar {
#cava,
#custom-gpu-usage,
#custom-cpugov,
#custom-vpn.connected{
#custom-vpn.connected,
#power-profiles-daemon,
#privacy,
#gamemode,
#taskbar,
#window {
padding: 0px 10px;
}
/**
* GROUPS
**/
#sys, #stats, #net, #sound {
#sys,
#stats,
#net,
#sound {
margin: 0;
padding:2px 5px 1px 5px;
border-radius:0;
color: alpha(@theme_text_color, 0.5);
background-color:alpha(@theme_selected_fg_color, 0.3);
}
/**
* SYS
**/
#sys {
padding: 0 0px 0 10px;
}
#custom-power {
margin-left: 0;
margin-right: 0;
/*font-family: "MonarchOS", sans-serif;*/
padding-left: 0;
}
#user {
padding-left: 0;
font-weight: bold;
}
#custom-weather {
padding-left: 5px;
}
#stats .drawer-child {
padding-left: 10px;
padding-right: 10px;
}
#tray {
border-radius: 4px;
padding: 0px 8px 0px 8px;
margin: 8px 0px 8px 0px;
background-color: alpha(@theme_selected_bg_color, 0.1);
}
#custom-notification {
padding-right: 0
}
/**
* SOUND
**/
#cava {
background-color:alpha(@theme_selected_fg_color, 0.3);
background-color: transparent;
padding-left: 0;
}
#pulseaudio-slider {
padding-left: 10px;
padding-right: 10px;
}
#pulseaudio-slider slider {
min-height: 0px;
min-width: 0px;
@@ -99,14 +140,16 @@ window#waybar {
border: none;
box-shadow: none;
background-color: @insensitive_bg_color;
border:2px solid @theme_selected_bg_color;
border: 1px solid alpha(@theme_selected_bg_color, 0.1);
}
#pulseaudio-slider trough {
min-height: 4px;
min-width: 80px;
border-radius: 5px;
background-color: #11111b;
background-color: alpha(@theme_selected_bg_color, 0.3);
}
#pulseaudio-slider highlight {
min-width: 5px;
@@ -115,19 +158,16 @@ window#waybar {
}
#custom-updates {
background-color:alpha(@theme_selected_fg_color, 0.3);
padding-right:12px
}
#tray {
background-color:alpha(@theme_selected_fg_color, 0.1);
padding-right: 5px;
padding-left: 5px;
}
/**
* MISC
**/
#mpris {
background-color: rgba(172,176,208, .3);
border-radius:20px;
border-radius: 0;
margin: 8px 10px 8px 0px;
padding: 0 10px;
}
@@ -135,35 +175,83 @@ window#waybar {
/**
* WORKSPACES
**/
#workspaces {
background-color: transparent;
/*#workspaces {
padding: 0;
margin-left:10px
border-radius: 0
}
#workspaces button {
padding: 0px 10px;
background-color: transparent;
padding: 0px 10px 0px 8px;
margin: 8px 2px 8px 0px;
outline: none;
border-radius: 20px;
margin: 8px 5px 8px 0px;
border-radius: 4px;
background-color: alpha(@theme_selected_bg_color, 0.05);
}
#workspaces button:last-child {
margin-right: 0;
}
#workspaces button.empty {
#workspaces button.empty,
#workspaces button.active.empty {
color: inherit;
padding: 0px 0px 0px 8px;
}
#workspaces button.active {
background-color: transparent;
padding: 0px 10px 0px 8px;
}
#workspaces button.visible {
background-color:alpha(@theme_selected_bg_color, 0.3);
background-color: alpha(@theme_selected_bg_color, 0.1);
}
#workspaces button.urgent {
color: #cc3436;
}
#workspaces button:hover {
background-color:alpha(@theme_selected_bg_color, 0.4);
background-color: alpha(@theme_selected_bg_color, 0.05);
box-shadow: inherit;
text-shadow: inherit;
}*/
#workspaces {
padding: 0;
border-radius: 0;
}
#workspaces button {
margin: 8px 2px 8px 0px;
padding: 0;
outline: none;
border-radius: 4px;
background-color: alpha(@theme_selected_bg_color, 0.05);
}
#workspaces button:last-child {
margin-right: 0;
}
#workspaces button.empty,
#workspaces button.active.empty {
color: inherit;
}
#workspaces button.active {}
#workspaces button.visible {
background-color: alpha(@theme_selected_bg_color, 0.1);
}
#workspaces button.urgent {
color: #cc3436;
}
#workspaces button:hover {
background-color: alpha(@theme_selected_bg_color, 0.05);
box-shadow: inherit;
text-shadow: inherit;
}
@@ -175,54 +263,86 @@ window#waybar {
#pulseaudio.muted {
color: #cc3436;
}
#battery.charging {
color: #2dcc36;
}
#battery.warning:not(.charging) {
color: #e6e600;
}
#battery.critical:not(.charging) {
color: #cc3436;
}
#temperature.critical {
color: #cc3436;
}
#idle_inhibitor {
padding-right: 14px;
background-color:alpha(@theme_selected_fg_color, 0.3);
}
#idle_inhibitor.activated {
color: alpha(@theme_selected_bg_color, 0.9);
}
#indicators {
padding-right: 5px;
padding-left: 5px;
border-radius: 0;
}
/**
* TASKBAR
**/
#taskbar {
font-size: 8px;
background: transparent;
margin: 0 0 0 5px;
opacity: 1;
padding: 0;
border-radius: 0;
}
#taskbar.empty {
opacity: 0;
}
#taskbar button {
border-bottom: 2px solid alpha(@borders, 0.9);
padding:6px 10px 3px 10px;
background: transparent;
padding: 3px 10px 3px 10px;
transition: 100ms border ease-in-out;
margin-left:4px;
border-radius: 0;
font-size: 8px;
}
#taskbar button:first-child {
margin-left:0;
#taskbar button:not(:first-child) {
border-radius: 0px;
}
#taskbar button:first-child {}
#taskbar button:last-child {}
#taskbar button:last-child:first-child {}
#taskbar button.empty {
opacity: 0;
}
#taskbar button:hover {
background-color:alpha(@theme_selected_bg_color, 0.2);
}
#taskbar button.active {
background-color: alpha(@theme_selected_bg_color, 0.1);
border-bottom: 2px solid @borders;
}
#taskbar button.active {
background-color: alpha(@theme_selected_bg_color, 0.05);
opacity: 1;
}
menu {
border-radius: 4px;
}
menuitem {
border-radius: 4px;
}
+19
View File
@@ -0,0 +1,19 @@
#!/usr/bin/env bash
for i in {1..5}
do
text=$(curl -s "https://wttr.in/$1?format=1")
if [[ $? == 0 ]]
then
text=$(echo "$text" | sed -E "s/\s+/ /g")
tooltip=$(curl -s "https://wttr.in/$1?format=4")
if [[ $? == 0 ]]
then
tooltip=$(echo "$tooltip" | sed -E "s/\s+/ /g")
tooltip="${tooltip//+/ }"
echo "{\"text\":\"$text\", \"tooltip\":\"$tooltip\"}"
exit
fi
fi
sleep 2
done
echo "{\"text\":\"error\", \"tooltip\":\"error\"}"
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

+14 -4
View File
@@ -1,13 +1,23 @@
[Settings]
folder = /home/dom/Pictures/Wallpaper
fill = Fill
folder = ~/Pictures/Wallpaper
fill = fill
sort = name
backend = swaybg
backend = swww
color = #241F31
language = en
subfolders = True
wallpaper = /home/dom/Pictures/Wallpaper/MonarchOS.png
wallpaper = ~/Pictures/Wallpaper/1586853771_daniel-leone-v7datklzzaw-unsplash-modded.jpg
monitors = All
swww_transition = any
swww_transition_type = any
swww_transition_step = 90
swww_transition_angle = 0
swww_transition_duration = 2
post_command =
show_hidden = False
show_gifs_only = False
number_of_columns = 3
show_transition_options = True
swww_transition_fps = 60
use_xdg_state = False
+36
View File
@@ -0,0 +1,36 @@
{
"label" : "lock",
"action" : "sleep .5 && hyprlock",
"text" : "Lock",
"keybind" : "l"
}
{
"label" : "hibernate",
"action" : "systemctl hibernate",
"text" : "Hibernate",
"keybind" : "h"
}
{
"label" : "logout",
"action" : "hyprctl dispatch exit",
"text" : "Logout",
"keybind" : "e"
}
{
"label" : "shutdown",
"action" : "systemctl poweroff",
"text" : "Shutdown",
"keybind" : "s"
}
{
"label" : "suspend",
"action" : "systemctl suspend",
"text" : "Suspend",
"keybind" : "u"
}
{
"label" : "reboot",
"action" : "systemctl reboot",
"text" : "Reboot",
"keybind" : "r"
}
+46
View File
@@ -0,0 +1,46 @@
* {
background-image: none;
}
window {
background-color: rgba(30, 30, 46, 0.9);
}
button {
color: #acb0d0;
background-color: rgba(24, 24, 37, 1);
border-radius: 10px;
border: 0;
background-repeat: no-repeat;
background-position: center;
background-size: 20%;
outline-style: none;
}
button:focus, button:active, button:hover {
background-color: rgba(17, 17, 27, 1);
outline-style: none;
border: none;
}
#lock {
background-image: image(url("/usr/share/wlogout/icons/lock.png"), url("/usr/local/share/wlogout/icons/lock.png"));
}
#logout {
background-image: image(url("/usr/share/wlogout/icons/logout.png"), url("/usr/local/share/wlogout/icons/logout.png"));
}
#suspend {
background-image: image(url("/usr/share/wlogout/icons/suspend.png"), url("/usr/local/share/wlogout/icons/suspend.png"));
}
#hibernate {
background-image: image(url("/usr/share/wlogout/icons/hibernate.png"), url("/usr/local/share/wlogout/icons/hibernate.png"));
}
#shutdown {
background-image: image(url("/usr/share/wlogout/icons/shutdown.png"), url("/usr/local/share/wlogout/icons/shutdown.png"));
}
#reboot {
background-image: image(url("/usr/share/wlogout/icons/reboot.png"), url("/usr/local/share/wlogout/icons/reboot.png"));
}
+2 -2
View File
@@ -1,5 +1,5 @@
Net/ThemeName "Catppuccin-Mocha-Standard-Lavender-Dark"
Net/IconThemeName "Flatery-Dark"
Net/ThemeName "catppuccin-mocha-lavender-standard+default"
Net/IconThemeName "Tela-circle-purple-dark"
Gtk/CursorThemeName "Sweet-cursors"
Net/EnableEventSounds 1
EnableInputFeedbackSounds 0
+21
View File
@@ -0,0 +1,21 @@
// Zed keymap
//
// For information on binding keys, see the Zed
// documentation: https://zed.dev/docs/key-bindings
//
// To see the default key bindings run `zed: open default keymap`
// from the command palette.
[
{
"context": "Workspace",
"bindings": {
// "shift shift": "file_finder::Toggle"
}
},
{
"context": "Editor",
"bindings": {
// "j k": ["workspace::SendKeystrokes", "escape"]
}
}
]
+54
View File
@@ -0,0 +1,54 @@
// Zed settings
//
// For information on how to configure Zed, see the Zed
// documentation: https://zed.dev/docs/configuring-zed
//
// To see all of Zed's default settings without changing your
// custom settings, run `zed: open default settings` from the
// command palette (cmd-shift-p / ctrl-shift-p)
{
"cursor_shape": "block",
"ui_font_size": 14,
"ui_font_family": "JetBrainsMono Nerd Font",
"ui_font_features": {
"calt": true
},
"buffer_font_family": "JetBrainsMono Nerd Font",
"buffer_font_size": 12,
"theme": {
"mode": "system",
"light": "Catppuccin Mocha",
"dark": "Catppuccin Mocha"
},
"telemetry": {
"diagnostics": false,
"metrics": false
},
"terminal": {
"shell": {
"program": "zsh"
},
"env": {
"LANG": "de_DE.UTF-8",
"LC_ALL": "de_DE.UTF-8"
}
},
"show_inline_completions": false,
"features": {
"inline_completion_provider": "none"
},
"toolbar": {
"quick_actions": false
},
"assistant": {
"enabled": false,
"button": false,
"version": "2"
},
"chat_panel": {
"button": false
},
"collaboration_panel": {
"button": false
}
}
+106 -107
View File
@@ -15,7 +15,7 @@ BOLD=$(tput bold)
NORMAL=$(tput sgr0)
clear
LOG="install.log"
MONARCHOS_DIR=$PWD
HYPRMOONARCH_DIR=$PWD
@@ -23,12 +23,11 @@ set -e
function pkg_inst () {
log "Checking if $1 is installed..."
IS_INSTALLED=$(pacman -Q | grep $1)
if [[ -z "$IS_INSTALLED" ]]; then
if pacman -Qs $1; then
log "Found $IS_INSTALLED ...skipping"
else
log "$1 not found. Installing..."
paru -S $1 2>&1 | tee -a $LOG
else
log "Found $IS_INSTALLED ...skipping"
fi
}
@@ -57,30 +56,6 @@ function inst_ufw {
fi
}
function inst_configs {
echo "-"
echo "Overwrite some ${BOLD}configs${NORMAL}"
echo "alacritty, dunst, btop, lsd"
echo -n "${BOLD}Continue?${NORMAL} (Y/N) "
read confirm_configs
if [[ $confirm_configs == "Y" ]];
then
cp -Rf $MOONARCH_DIR/home/config/alacritty $HOME/.config/alacritty
chown $USER:$USER $HOME/.config/alacritty
cp -Rf $MOONARCH_DIR/home/config/dunst $HOME/.config/dunst
chown $USER:$USER $HOME/.config/dunst
cp -Rf $MOONARCH_DIR/home/config/btop $HOME/.config/btop
chown $USER:$USER $HOME/.config/btop
cp -Rf $MOONARCH_DIR/home/config/lsd $HOME/.config/lsd
chown $USER:$USER $HOME/.config/lsd
fi
}
function inst_zsh {
echo "-"
echo "Installing ${BOLD}ZSH${NORMAL}"
@@ -89,16 +64,21 @@ function inst_zsh {
read confirm_zsh
if [[ $confirm_zsh == "Y" ]];
then
declare -a pkg_list=(zsh)
declare -a pkg_list=(zsh oh-my-zsh)
for key in "${pkg_list[@]}"
do
pkg_inst $key
done
sudo install -C $MOONARCH_DIR/home/.zshrc $HOME/.zshrc
sudo mkdir -p $HOME/.zsh/
git clone https://github.com/zsh-users/zsh-autosuggestions $HOME/.zsh/zsh-autosuggestions
cp -rf $HYPRMOONARCH_DIR/home/.zshrc $HOME/.zshrc
chown $USER:$USER $HOME/.zshrc
sudo git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
sudo git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
sudo git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
chsh -s /usr/bin/zsh
cp -rf $HYPRMOONARCH_DIR/home/.p10k.zsh $HOME/.p10k.zsh
fi
}
@@ -112,14 +92,23 @@ function inst_basic_pkgs {
if [[ $confirm_basics == "Y" ]];
then
declare -a pkg_list=(jq dunst network-manager-applet alarm-clock-applet man-db hardinfo networkmanager-openvpn udisks2 plocate vim alacritty gettext-hostname neovim lsd alsa-utils ponymix btop powertop polkit lxsession timeshift timeshift-autosnap pcmanfm librewolf)
declare -a pkg_list=(jq network-manager-applet alarm-clock-applet man-db hardinfo networkmanager-openvpn udisks2 plocate vim alacritty gettext-hostname neovim lsd alsa-utils ponymix btop powertop polkit polkit-gnome timeshift timeshift-autosnap pcmanfm librewolf-bin fzf)
for key in "${pkg_list[@]}"
do
pkg_inst $key
done
cp $MOONARCH_DIR/usr/local/bin/volnote /usr/local/bin
sudo cp $HYPRMOONARCH_DIR/usr/local/bin/volnote /usr/local/bin
cp -Rf $HYPRMOONARCH_DIR/home/config/alacritty $HOME/.config/alacritty
chown $USER:$USER $HOME/.config/alacritty
cp -Rf $HYPRMOONARCH_DIR/home/config/btop $HOME/.config/btop
chown $USER:$USER $HOME/.config/btop
cp -Rf $HYPRMOONARCH_DIR/home/config/lsd $HOME/.config/lsd
chown $USER:$USER $HOME/.config/lsd
paru -S informant
sudo informant read --all
@@ -132,7 +121,9 @@ function inst_paru {
echo "Installing AUR helper ${BOLD}paru${NORMAL}?"
echo "${BOLD}paru${NORMAL} is mandatory."
if ! type paru > /dev/null; then
if command -v paru > /dev/null 2>&1; then
echo "${BOLD}paru ${NORMAL}already installed. Skipping..."
else
echo -n "${BOLD}Continue?${NORMAL} (Y/N) "
read confirm_paru 2>&1 | tee -a $LOG
if [[ $confirm_paru == "Y" ]];
@@ -140,12 +131,13 @@ function inst_paru {
sudo pacman -Syu --needed base-devel 2>&1 | tee -a $LOG
sudo pacman -Syu rustup 2>&1 | tee -a $LOG
rustup default stable 2>&1 | tee -a $LOG
rustup update
mkdir $MOONARCH_DIR/.cache
git clone https://aur.archlinux.org/paru.git $MOONARCH_DIR/.cache/paru-git
cd $MOONARCH_DIR/.cache/paru-git
rm -rf $HYPRMOONARCH_DIR/.cache/paru-git
git clone https://aur.archlinux.org/paru.git $HYPRMOONARCH_DIR/.cache/paru-git
cd $HYPRMOONARCH_DIR/.cache/paru-git
makepkg -si
cd $MOONARCH_DIR
cd $HYPRMOONARCH_DIR
git pull
@@ -156,9 +148,6 @@ function inst_paru {
echo "exiting"
exit 1
fi
else
echo "${BOLD}paru ${NORMAL}already installed. Skipping..."
fi
}
@@ -218,35 +207,13 @@ function inst_noise_supr {
done
mkdir -p $HOME/.config/pipewire/pipewire.conf.d/
cp -f $MOONARCH_DIR/home/config/pipewire/pipewire.conf.d/99-input-denoising.conf $HOME/.config/pipewire/pipewire.conf.d/99-input-denoising.conf
cp -f $HYPRMOONARCH_DIR/home/config/pipewire/pipewire.conf.d/99-input-denoising.conf $HOME/.config/pipewire/pipewire.conf.d/99-input-denoising.conf
systemctl restart --user pipewire.service
fi
}
function inst_resources {
echo "-"
echo "Installing ${BOLD}Resources Monitor${NORMAL} [AUR: resources]"
echo -n "${BOLD}Continue?${NORMAL} (Y/N) "
read confirm_resources
if [[ $confirm_resources == "Y" ]];
then
declare -a pkg_list=(resources)
for key in "${pkg_list[@]}"
do
pkg_inst $key
done
DESKFILE="/usr/share/applications/net.nokyan.Resources.desktop"
if test -f "$DESKFILE"; then
cp -f $DESKFILE $HOME/.local/share/applications
sed -i "s|Exec=resources|Exec=env GTK_THEME=:dark resources|g" $HOME/.local/share/applications/net.nokyan.Resources.desktop
fi
fi
}
function inst_clamav {
echo "-"
echo "Installing ClamAV - Anti-Virus Scanner with freshclam and fangfrisch"
@@ -268,7 +235,7 @@ function inst_clamav {
if command -v nemo &> /dev/null
then
cp -Rf $MONARCHOS_DIR/usr/share/nemo/actions/clamscan.nemo_action /usr/share/nemo/actions
cp -Rf $HYPRMOONARCH_DIR/usr/share/nemo/actions/clamscan.nemo_action /usr/share/nemo/actions
fi
fi
@@ -282,37 +249,39 @@ function set_gui {
read confirm_gui
if [[ $confirm_gui == "Y" ]];
then
declare -a pkg_list=(celluloid playerctl audacious font-manager viewnior thunar tumbler ffmpegthumbnailer pavucontrol viewnior ttf-hack-nerd ttf-joypixels sweet-cursor-theme-git catppuccin-gtk-theme-mocha flatery-icon-theme-git)
declare -a pkg_list=(celluloid playerctl audacious font-manager viewnior tumbler ffmpegthumbnailer pavucontrol ttf-hack-nerd ttf-joypixels sweet-cursor-theme-git catppuccin-gtk-theme-mocha flatery-icon-theme-git)
for key in "${pkg_list[@]}"
do
pkg_inst $key
done
cp -Rf $MOONARCH_DIR/home/config/gtk-3.0 $HOME/.config/gtk-3.0
cp -Rf $HYPRMOONARCH_DIR/home/config/gtk-3.0 $HOME/.config/gtk-3.0
chown $USER:$USER $HOME/.config/gtk-3.0
cp -Rf $MOONARCH_DIR/home/config/gtk-4.0 $HOME/.config/gtk-4.0
cp -Rf $HYPRMOONARCH_DIR/home/config/gtk-4.0 $HOME/.config/gtk-4.0
chown $USER:$USER $HOME/.config/gtk-4.0
install $MOONARCH_DIR/home/config/gtk-3.0/settings.ini $HOME/.config/gtk-3.0/settings.ini
install $MOONARCH_DIR/home/config/gtk-4.0/settings.ini $HOME/.config/gtk-4.0/settings.ini
install $HYPRMOONARCH_DIR/home/config/gtk-3.0/settings.ini $HOME/.config/gtk-3.0/settings.ini
install $HYPRMOONARCH_DIR/home/config/gtk-4.0/settings.ini $HOME/.config/gtk-4.0/settings.ini
gsettings set org.gnome.desktop.interface gtk-theme "Catppuccin-Mocha-Standard-Lavender-Dark"
gsettings set org.gnome.desktop.interface gtk-theme "catppuccin-mocha-lavender-standard+default-dark"
gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'
gsettings set org.gnome.desktop.interface cursor-theme Sweet-cursors
gsettings set org.cinnamon.desktop.default-applications.terminal exec alacritty
xdg-mime default pcmanfm.desktop inode/directory
#gsettings set org.cinnamon.desktop.default-applications.terminal exec alacritty
sudo mkdir -p /usr/local/share/fonts/
sudo install -C $MOONARCH_DIR/usr/local/share/fonts/MonarchOS.ttf /usr/local/share/fonts/MonarchOS.ttf
sudo install -C $MOONARCH_DIR/usr/local/share/fonts/Icomoon-Feather.ttf /usr/local/share/fonts/Icomoon-Feather.ttf
sudo install -C $MOONARCH_DIR/etc/fonts/local.conf /etc/fonts/local.conf
sudo install -C $HYPRMOONARCH_DIR/usr/local/share/fonts/MonarchOS.ttf /usr/local/share/fonts/MonarchOS.ttf
sudo install -C $HYPRMOONARCH_DIR/usr/local/share/fonts/Icomoon-Feather.ttf /usr/local/share/fonts/Icomoon-Feather.ttf
sudo install -C $HYPRMOONARCH_DIR/etc/fonts/local.conf /etc/fonts/local.conf
fc-cache -f
WALLPAPER_DIR=$HOME/Pictures/Wallpaper
if [ ! -d "$WALLPAPER_DIR" ]; then
mkdir -p $WALLPAPER_DIR
fi
install -C $MOONARCH_DIR/home/Pictures/Wallpaper/MonarchOS.png $WALLPAPER_DIR/MonarchOS.png
install -C $HYPRMOONARCH_DIR/home/Pictures/Wallpaper/MonarchOS.png $WALLPAPER_DIR/MonarchOS.png
fi
}
@@ -329,8 +298,14 @@ function inst_rofi {
pkg_inst $key
done
cp -Rf $MOONARCH_DIR/home/config/rofi $HOME/.config/rofi
cp -Rf $HYPRMOONARCH_DIR/home/config/rofi $HOME/.config/rofi
chown $USER:$USER $HOME/.config/rofi
sudo cp -Rf $HYPRMOONARCH_DIR/usr/share/settings-menu /usr/share/settings-menu
cargo install --git=https://github.com/nate-sys/hypr-empty
cp -Rf $HYPRMOONARCH_DIR/home/config/hypr-empty $HOME/.config/hypr-empty
fi
}
@@ -371,7 +346,7 @@ function inst_screenshot {
pkg_inst $key
done
cp -f $MOONARCH_DIR/usr/local/bin/hyprm-screenshot /usr/local/bin/
sudo cp -Rf $HYPRMOONARCH_DIR/usr/local/bin/hyprm-screenshot /usr/local/bin/
fi
}
@@ -382,28 +357,41 @@ function inst_hypr {
read confirm_hypr
if [[ $confirm_hypr == "Y" ]];
then
declare -a pkg_list=(wayland xorg-xwayland hyprland swaybg waypaper-git xdg-desktop-portal-hyprland wdisplays waybar nwg-look cliphist swaylock-effects wlogout)
declare -a pkg_list=(wayland hyprland hypridle hyprlock hyprcursor hyprkeys hyprpicker swww waypaper xdg-desktop-portal-hyprland wdisplays waybar nwg-look cliphist wlogout swayosd hyprlock waybar-module-pacman-updates swaync)
for key in "${pkg_list[@]}"
do
pkg_inst $key
done
sudo cp -Rf $MOONARCH_DIR/etc/wlogout /etc/
sudo cp -Rf $HYPRMOONARCH_DIR/etc/wlogout/style.css /etc/wlogout/style.css
sudo cp -Rf $HYPRMOONARCH_DIR/etc/wlogout/layout /etc/wlogout/layout
cp -Rf $MOONARCH_DIR/home/config/hypr $HOME/.config/hypr
cp -Rf $HYPRMOONARCH_DIR/home/config/swaync $HOME/.config/swaync
chown $USER:$USER $HOME/.config/swaync
cp -Rf $HYPRMOONARCH_DIR/home/config/hypr $HOME/.config/hypr
chown $USER:$USER $HOME/.config/hypr
cp -Rf $MOONARCH_DIR/home/config/waybar $HOME/.config/waybar
cp -Rf $HYPRMOONARCH_DIR/home/config/waybar $HOME/.config/waybar
chown $USER:$USER $HOME/.config/waybar
cp -Rf $MOONARCH_DIR/home/config/swaylock $HOME/.config/swaylock
chown $USER:$USER $HOME/.config/swaylock
if [ -z "$HYPRLAND_INSTANCE_SIGNATURE" ]
then
log "Hyprland not running, can't set cursor"
else
hyprctl setcursor Sweet-cursors 16
fi
cp -Rf $MOONARCH_DIR/home/config/waypaper $HOME/.config/waypaper
cp -Rf $HYPRMOONARCH_DIR/home/config/waypaper $HOME/.config/waypaper
chown -R $USER:$USER $HOME/.config/waypaper
sed -i "s|USERNAME|${USER}|g" $HOME/.config/waypaper/config.ini
if [ -z "$HYPRLAND_INSTANCE_SIGNATURE" ]
then
log "Hyprland not running, can't set wallpaper"
else
swww-daemon &
swww img $WALLPAPER_DIR/MonarchOS.png
fi
fi
}
function inst_bspwm {
@@ -419,16 +407,16 @@ function inst_bspwm {
pkg_inst $key
done
cp -Rf $MOONARCH_DIR/home/config/bspwm $HOME/.config/bspwm
cp -Rf $HYPRMOONARCH_DIR/home/config/bspwm $HOME/.config/bspwm
chown $USER:$USER $HOME/.config/bspwm
cp -Rf $MOONARCH_DIR/home/config/sxhkd $HOME/.config/sxhkd
cp -Rf $HYPRMOONARCH_DIR/home/config/sxhkd $HOME/.config/sxhkd
chown $USER:$USER $HOME/.config/sxhkd
cp -Rf $MOONARCH_DIR/home/config/picom $HOME/.config/picom
cp -Rf $HYPRMOONARCH_DIR/home/config/picom $HOME/.config/picom
chown $USER:$USER $HOME/.config/picom
cp -Rf $MOONARCH_DIR/home/config/polybar $HOME/.config/polybar
cp -Rf $HYPRMOONARCH_DIR/home/config/polybar $HOME/.config/polybar
chown $USER:$USER $HOME/.config/polybar
fi
}
@@ -446,7 +434,7 @@ function inst_conky {
pkg_inst $key
done
cp -Rf $MOONARCH_DIR/home/config/conky $HOME/.config/conky
cp -Rf $HYPRMOONARCH_DIR/home/config/conky $HOME/.config/conky
chown $USER:$USER $HOME/.config/conkys
fi
}
@@ -458,24 +446,34 @@ function inst_sddm {
read confirm_sddm
if [[ $confirm_sddm == "Y" ]];
then
declare -a pkg_list=(sddm qt5-quickcontrols qt5-graphicaleffects)
declare -a pkg_list=(sddm qt5-quickcontrols qt5-graphicaleffects qt6-svg qt6-declarative)
for key in "${pkg_list[@]}"
do
pkg_inst $key
done
printf "clear package cache"
rm -rf $HOME/.cache/Elegant-sddm-monarch
printf "clone sddm theme"
git clone https://gitea.nevaforget.de/dom/Elegant-sddm-monarch/ $HOME/.cache/Elegant-sddm-monarch
printf "copy sddm theme to destination"
sudo cp -rf $HOME/.cache/Elegant-sddm-monarch/Elegant /usr/share/sddm/themes/monarch
printf "set current sddm theme"
sudo sed -i "s/^Current=.*/Current=monarch/g" /etc/sddm.conf
log "REMEMBER: this will fail if you don't disable any other display manager before"
printf "set default user image"
sudo cp -f $MOONARCH_DIR/usr/share/sddm/faces/.face /usr/share/sddm/faces/.face
cp -f $MOONARCH_DIR/usr/share/sddm/faces/.face $HOME/.face
# log "clear package cache"
# rm -rf $HOME/.cache/Elegant-sddm-monarch
# log "clone sddm theme"
# git clone https://gitea.nevaforget.de/dom/Elegant-sddm-monarch/ $HOME/.cache/Elegant-sddm-monarch
# log "copy sddm theme to destination"
# sudo cp -rf $HOME/.cache/Elegant-sddm-monarch/Elegant /usr/share/sddm/themes/monarch
# log "set current sddm theme"
# sudo cp -rf /usr/lib/sddm/sddm.conf.d/default.conf /etc/sddm.conf
# sudo sed -i "s/^Current=.*/Current=monarch/g" /etc/sddm.conf
log "set default user image"
sudo cp -f $HYPRMOONARCH_DIR/usr/share/sddm/faces/.face /usr/share/sddm/faces/.face
cp -f $HYPRMOONARCH_DIR/usr/share/sddm/faces/.face $HOME/.face
cd $HYPRMOONARCH_DIR/.cache
wget --unlink https://github.com/catppuccin/sddm/releases/download/v1.0.0/catppuccin-mocha.zip
sudo unzip catppuccin-mocha.zip -d /usr/share/sddm/themes/
cd $HYPRMOONARCH_DIR
sudo sed -i "s/^Current=.*/Current=catppuccin-mocha/g" /etc/sddm.conf
sudo systemctl enable sddm
fi
@@ -509,7 +507,9 @@ function log () {
function init {
rm $LOG
rm -f $LOG
mkdir $HYPRMOONARCH_DIR/.cache
log "Installation start\n"
@@ -531,9 +531,8 @@ function init {
inst_ufw
inst_clamav
inst_noise_supr
inst_resources
inst_configs
inst_bluet
inst_screenshot
inst_code
Executable
+345
View File
@@ -0,0 +1,345 @@
#!/usr/bin/env bash
if [ "$(id -u)" -eq 0 ]; then
printf "Don't run this script as root!"
exit 1
else
printf "not root"
fi
GREEN="$(tput setaf 2)[OK]$(tput sgr0)"
RED="$(tput setaf 1)[ERROR]$(tput sgr0)"
YELLOW="$(tput setaf 3)[NOTE]$(tput sgr0)"
CAT="$(tput setaf 6)[ACTION]$(tput sgr0)"
BOLD=$(tput bold)
NORMAL=$(tput sgr0)
clear
LOG="install.log"
HYPRMOONARCH_DIR=$PWD
set -e
function pkg_inst () {
log "Checking if $1 is installed..."
if pacman -Qs $1; then
log "Found $IS_INSTALLED ...skipping"
else
log "$1 not found. Installing..."
paru -S $1 2>&1 | tee -a $LOG
fi
}
function inst_paru {
echo "-"
echo "Installing AUR helper ${BOLD}paru${NORMAL}?"
echo "${BOLD}paru${NORMAL} is mandatory."
if command -v paru > /dev/null 2>&1; then
echo "${BOLD}paru ${NORMAL}already installed. Skipping..."
else
echo -n "${BOLD}Continue?${NORMAL} (Y/N) "
read confirm_paru
if [[ $confirm_paru == "Y" ]];
then
sudo pacman -Syu --needed base-devel 2>&1 | tee -a $LOG
sudo pacman -Syu rust 2>&1 | tee -a $LOG
rm -rf $HYPRMOONARCH_DIR/.cache/paru-git
git clone https://aur.archlinux.org/paru.git $HYPRMOONARCH_DIR/.cache/paru-git
cd $HYPRMOONARCH_DIR/.cache/paru-git
makepkg -si
cd $HYPRMOONARCH_DIR
git pull
mkdir -p $HOME/.local/bin
echo 'PATH="$HOME/.local/bin:$PATH"' | sudo tee -a /etc/environment >/dev/null
else
echo "exiting"
exit 1
fi
fi
}
function inst_sddm {
echo "-"
echo "Installing SDDM - Display/Login Manager"
declare -a pkg_list=(sddm qt6-5compat qt6-declarative qt6-svg sddm)
for key in "${pkg_list[@]}"
do
pkg_inst $key
done
sddm --example-config > $HYPRMOONARCH_DIR/.cache/sddm.conf
sudo mv $HYPRMOONARCH_DIR/.cache/sddm.conf /etc/sddm.conf
echo "set default user image"
sudo cp -f $HYPRMOONARCH_DIR/usr/share/sddm/faces/.face /usr/share/sddm/faces/.face
cp -f $HYPRMOONARCH_DIR/usr/share/sddm/faces/.face $HOME/.face
cd $HYPRMOONARCH_DIR/.cache
# wget --unlink https://github.com/catppuccin/sddm/releases/download/v1.0.0/catppuccin-mocha.zip
# sudo unzip catppuccin-mocha.zip -d /usr/share/sddm/themes/
rm -rf moonarch-sddm
git clone https://gitea.moonarch.de/nevaforget/moonarch-sddm.git
sudo cp -Rf moonarch-sddm /usr/share/sddm/themes/
sudo rm -rf /usr/share/sddm/themes/moonarch-sddm/.git
sudo sed -i "s/^Current=.*/Current=moonarch-sddm/g" /etc/sddm.conf
#sudo systemctl disable display-manager
sudo systemctl enable sddm
cd $HYPRMOONARCH_DIR
}
function inst_pkgs {
log "-"
log "Installing ${BOLD}Arch packages.${NORMAL}"
log "This includes all neccessary dependencies. You definitely want this."
log "${BOLD}Continue?${NORMAL} (Y/N) "
read confirm_basics
log "$confirm_basics"
if [[ $confirm_basics == "Y" ]];
then
declare -a pkg_list=(wayland stow jq network-manager-applet alarm-clock-applet xarchiver man-db hardinfo networkmanager-openvpn udisks2 plocate vim alacritty gettext-hostname lsd alsa-utils ponymix btop timeshift timeshift-autosnap newaita-reborn-icons-git waterfox fzf unzip hyprland hypridle hyprlock hyprcursor hyprkeys hyprpicker swww waypaper xdg-desktop-portal-hyprland wdisplays waybar nwg-look cliphist wlogout hyprlock waybar-module-pacman-updates-git ufw zsh oh-my-zsh noise-suppression-for-voice grim satty-bin slurp dunst sweet-cursors-hyprcursor-git catppuccin-gtk-theme-mocha rofi cmake meson cpio pkg-config ttf-ubuntu-nerd ttf-hack-nerd ttf-jetbrains-mono-nerd hyprsysteminfo qt5-styleplugins qt6gtk2 qt5gtk2 hyprpolkitagent hyprshade cpupower fd)
for key in "${pkg_list[@]}"
do
pkg_inst $key
done
sudo cp -Rf $HYPRMOONARCH_DIR/usr/local/bin/* /usr/local/bin/
pkg_inst "informant"
sudo informant read --all
#$(getent group informant) ] || groupadd informant
#sudo usermod -a -G informant $USER
fi
cd $HYPRMOONARCH_DIR
}
function inst_bluet {
echo "-"
echo "Installing ${BOLD}Bluetooth${NORMAL} Support"
echo -n "${BOLD}Continue?${NORMAL} (Y/N) "
read confirm_bluet
if [[ $confirm_bluet == "Y" ]];
then
declare -a pkg_list=(bluez bluez-utils-compat blueberry)
for key in "${pkg_list[@]}"
do
pkg_inst $key
done
sudo systemctl start bluetooth.service
sudo systemctl enable bluetooth.service
fi
cd $HYPRMOONARCH_DIR
}
function inst_filemanager {
echo "-"
echo "Installing ${BOLD}File-Manager${NORMAL} (PCManFM)"
echo -n "${BOLD}Continue?${NORMAL} (Y/N) "
read confirm_filemanager
if [[ $confirm_filemanager == "Y" ]];
then
declare -a pkg_list=(pcmanfm-gtk3 evince ffmpegthumbnailer libgsf)
for key in "${pkg_list[@]}"
do
pkg_inst $key
done
$(getent group storage) ] || groupadd storage
sudo usermod -a -G storage $USER
fi
cd $HYPRMOONARCH_DIR
}
function inst_davfs {
echo "-"
echo "Installing ${BOLD}WebDAV / davfs2${NORMAL} support, including file-manager support"
echo -n "${BOLD}Continue?${NORMAL} (Y/N) "
read confirm_davfs
if [[ $confirm_davfs == "Y" ]];
then
declare -a pkg_list=(davfs2 gvfs gvfs-dnssd)
for key in "${pkg_list[@]}"
do
pkg_inst $key
done
if [ $(getent group admin) ]; then
sudo usermod -a -G davfs2 $USER
fi
fi
cd $HYPRMOONARCH_DIR
}
function inst_clamav {
echo "-"
echo "Installing ClamAV - Anti-Virus Scanner with freshclam and fangfrisch"
echo -n "${BOLD}Continue?${NORMAL} (Y/N) "
read confirm_clamav
if [[ $confirm_clamav == "Y" ]];
then
declare -a pkg_list=(clamav python-fangfrisch)
for key in "${pkg_list[@]}"
do
pkg_inst $key
done
sudo systemctl start clamav-daemon.service
sudo systemctl enable clamav-daemon.service
sudo freshclam
sudo -u clamav /usr/bin/fangfrisch --conf /etc/fangfrisch/fangfrisch.conf initdb
sudo systemctl enable fangfrisch.timer
if command -v nemo &> /dev/null
then
cp -Rf $HYPRMOONARCH_DIR/usr/share/nemo/actions/clamscan.nemo_action /usr/share/nemo/actions
fi
fi
cd $HYPRMOONARCH_DIR
}
function rebooter {
echo "-"
echo "I recommend to reboot at this point. But you should at least log out and in again."
echo -n "${BOLD}Continue with Reboot?${NORMAL} (Y/N) "
read confirm_rebot
if [[ $confirm_rebot == "Y" ]];
then
sudo reboot
fi
}
function setup {
# ZSH
log "Cloning ZSH Plugins..."
sudo rm -rf ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
sudo git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
log "Done... zsh-autosuggestions"
sudo rm -rf ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
sudo git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
log "Done... zsh-syntax-highlighting"
sudo rm -rf ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
sudo git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
log "Done... powerlevel10k"
chsh -s /usr/bin/zsh
log "Done... Set zsh as default shell"
# GUI
log "Set up GUI Themes"
gsettings set org.gnome.desktop.interface gtk-theme "Catppuccin-Mocha-Standard-Lavender-Dark"
log "Setting cursor theme"
hyprctl setcursor Sweet-cursors-hyprcursor 32
log "Done... Window decorations"
gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'
log "Done... Set color-scheme to prefer-dark"
rm -rf $HYPRMOONARCH_DIR/.cache/Sweet-cursors
git clone https://gitea.moonarch.de/nevaforget/Sweet-cursors $HYPRMOONARCH_DIR/.cache/Sweet-cursors
cp -R $HYPRMOONARCH_DIR/.cache/Sweet-cursors /usr/share/icons/Sweet-cursors
gsettings set org.gnome.desktop.interface cursor-theme Sweet-cursors
log "Done... Set a sweet cursor"
# Extra Font
log "Installing extra fonts"
sudo mkdir -p /usr/local/share/fonts/
sudo install -C $HYPRMOONARCH_DIR/usr/local/share/fonts/MonarchOS.ttf /usr/local/share/fonts/MonarchOS.ttf
sudo install -C $HYPRMOONARCH_DIR/usr/local/share/fonts/Icomoon-Feather.ttf /usr/local/share/fonts/Icomoon-Feather.ttf
sudo install -C $HYPRMOONARCH_DIR/etc/fonts/local.conf /etc/fonts/local.conf
fc-cache -f
# Shared things
cp -R $HYPRMOONARCH_DIR/usr/share/* /usr/share/
cp -R $HYPRMOONARCH_DIR/usr/local/* /usr/local/
# Wallpaper
log "Installing wallpapers"
WALLPAPER_DIR=$HOME/Pictures/Wallpaper
if [ ! -d "$WALLPAPER_DIR" ]; then
mkdir -p $WALLPAPER_DIR
fi
cp -Rf $HYPRMOONARCH_DIR/home/Pictures/Wallpaper/* $WALLPAPER_DIR/
log "Set up default wallpaper"
#waypaper --wallpaper $WALLPAPER_DIR/1586853771_daniel-leone-v7datklzzaw-unsplash-modded.jpg
swww img $WALLPAPER_DIR/1586853771_daniel-leone-v7datklzzaw-unsplash-modded.jpg
# dotfiles
log "Time to stow things up... Installing dotfiles"
rm -rf $HOME/.config/hypr
cp -R $HYPRMOONARCH_DIR/home/config/ $HOME/.hyprm/.config/
cp -R $HYPRMOONARCH_DIR/home/.bashrc $HOME/.hyprm/.bashrc
cp -R $HYPRMOONARCH_DIR/home/.zshrc $HOME/.hyprm/.zshrc
cp -R $HYPRMOONARCH_DIR/home/.p10k.zsh $HOME/.hyprm/.p10k.zsh
cd $HOME/.hyprm/
stow --adopt .
cd $HYPRMOONARCH_DIR
}
function log () {
ts=$(date +"%H:%M:%S")
printf "$ts $1\n" | tee -a $LOG
}
function init {
rm -f $LOG
mkdir -p $HYPRMOONARCH_DIR/.cache
mkdir -p $HOME/.hyprm
log "Installation start\n"
inst_paru
type paru >/dev/null 2>&1 || { echo >&2 "I require paru but it's not installed. Aborting."; exit 1; }
inst_pkgs
inst_sddm
setup
inst_bluet
inst_clamav
inst_davfs
sudo gtk-update-icon-cache -f -t /usr/share/icons
rebooter
}
printf "#####################################\n"
printf "$(tput setaf 2)Welcome to MoonArch. Feel free.\n@version 1.0\n$(tput sgr0)"
printf "#####################################\n"
printf "\n"
printf "$(tput setaf 1)Don't run this script as ROOT!\n$(tput sgr0)"
printf "\n"
printf "${YELLOW} ${BOLD}This will clear and overwrite some config files\nand this can not be reverted. No Backups are created!\n "
printf "\n"
echo -n "${BOLD}Continue?${NORMAL} (Y/N) "
read confirm
if [[ $confirm == "Y" ]];
then
init
else
echo "Goodbye sweet butterfly"
exit 1
fi
+21
View File
@@ -0,0 +1,21 @@
#!/bin/bash
## author moonarch.de
## date 2024-08-16
## loop battery devices and send notification on low percentage
NOTIFY_AT_PERCENTAGE=20
ICON="/usr/share/icons/Tela-purple-dark/symbolic/status/battery-empty-symbolic.svg"
for d in $(upower -e);
do
DEVICE_DATA=$(upower -i "$d");
PERCENTAGE=$(echo $DEVICE_DATA | grep -Po '(?<=(percentage: )).*(?= icon)')
PER_INT=$(echo "${PERCENTAGE//%}")
DEVICE_NAME=$(echo $DEVICE_DATA | grep -Po '(?<=(model: )).*(?= serial)')
if [ ! -z $DEVICE_NAME ] && [ $PER_INT -lt $NOTIFY_AT_PERCENTAGE ]; then
notify-send -t 5000 -e "Low battery $DEVICE_NAME $PER_INT%" -i "$ICON" -h string:x-canonical-private-synchronous:battery -h int:value:"$PER_INT" -u critical
fi
done
+20
View File
@@ -0,0 +1,20 @@
#!/usr/bin/env bash
sleep 0.2
value=($(cat /sys/class/leds/input*::capslock/brightness | cut -f1 -d,))
# echo ${value[2]}
if [ ${value[2]} == 1 ];
then
icon_name="/usr/share/icons/Tela-purple-dark/symbolic/status/capslock-enabled-symbolic.svg"
output="caps lock on"
else
icon_name="/usr/share/icons/Tela-purple-dark/symbolic/status/capslock-disabled-symbolic.svg"
output="caps lock off"
fi
#notify-send -t 600 -i $icon_name -r 555 $output
# dunstify "$output" -i "$icon_name" -t 600 --replace=555 -h boolean:value:"${value[2]}" -u low
notify-send -e "$output" -i "$icon_name" -h string:x-canonical-private-synchronous:state -h boolean:value:"${value[2]}" -r 555
+343
View File
@@ -0,0 +1,343 @@
# The MIT License (MIT)
#
# Copyright (c) 2024 Junegunn Choi
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
# shellcheck disable=SC2039
[[ $0 = - ]] && return
__fzf_git_color() {
if [[ -n $NO_COLOR ]]; then
echo never
elif [[ $# -gt 0 ]] && [[ -n $FZF_GIT_PREVIEW_COLOR ]]; then
echo "$FZF_GIT_PREVIEW_COLOR"
else
echo "${FZF_GIT_COLOR:-always}"
fi
}
__fzf_git_cat() {
if [[ -n $FZF_GIT_CAT ]]; then
echo "$FZF_GIT_CAT"
return
fi
# Sometimes bat is installed as batcat
_fzf_git_bat_options="--style='${BAT_STYLE:-full}' --color=$(__fzf_git_color .) --pager=never"
if command -v batcat > /dev/null; then
echo "batcat $_fzf_git_bat_options"
elif command -v bat > /dev/null; then
echo "bat $_fzf_git_bat_options"
else
echo cat
fi
}
__fzf_git_pager() {
local pager
pager="${FZF_GIT_PAGER:-${GIT_PAGER:-$(git config --get core.pager 2>/dev/null)}}"
echo "${pager:-cat}"
}
if [[ $1 = --list ]]; then
shift
if [[ $# -eq 1 ]]; then
branches() {
git branch "$@" --sort=-committerdate --sort=-HEAD --format=$'%(HEAD) %(color:yellow)%(refname:short) %(color:green)(%(committerdate:relative))\t%(color:blue)%(subject)%(color:reset)' --color=$(__fzf_git_color) | column -ts$'\t'
}
refs() {
git for-each-ref "$@" --sort=-creatordate --sort=-HEAD --color=$(__fzf_git_color) --format=$'%(if:equals=refs/remotes)%(refname:rstrip=-2)%(then)%(color:magenta)remote-branch%(else)%(if:equals=refs/heads)%(refname:rstrip=-2)%(then)%(color:brightgreen)branch%(else)%(if:equals=refs/tags)%(refname:rstrip=-2)%(then)%(color:brightcyan)tag%(else)%(if:equals=refs/stash)%(refname:rstrip=-2)%(then)%(color:brightred)stash%(else)%(color:white)%(refname:rstrip=-2)%(end)%(end)%(end)%(end)\t%(color:yellow)%(refname:short) %(color:green)(%(creatordate:relative))\t%(color:blue)%(subject)%(color:reset)' | column -ts$'\t'
}
hashes() {
git log --date=short --format="%C(green)%C(bold)%cd %C(auto)%h%d %s (%an)" --graph --color=$(__fzf_git_color) "$@" $LIST_OPTS
}
case "$1" in
branches)
echo 'CTRL-O (open in browser) ALT-A (show all branches)'
echo 'ALT-H (list commit hashes)'
branches
;;
all-branches)
echo 'CTRL-O (open in browser)'
branches -a
;;
hashes)
echo 'CTRL-O (open in browser) CTRL-D (diff)'
echo 'CTRL-S (toggle sort) ALT-A (show all hashes)'
hashes
;;
all-hashes)
echo 'CTRL-O (open in browser) CTRL-D (diff)'
echo 'CTRL-S (toggle sort)'
hashes --all
;;
refs)
echo 'CTRL-O (open in browser) ALT-E (examine in editor) ALT-A (show all refs)'
refs --exclude='refs/remotes'
;;
all-refs)
echo 'CTRL-O (open in browser) ALT-E (examine in editor)'
refs
;;
*) exit 1 ;;
esac
elif [[ $# -gt 1 ]]; then
set -e
branch=$(git rev-parse --abbrev-ref HEAD 2> /dev/null)
if [[ $branch = HEAD ]]; then
branch=$(git describe --exact-match --tags 2> /dev/null || git rev-parse --short HEAD)
fi
# Only supports GitHub for now
case "$1" in
commit)
hash=$(grep -o "[a-f0-9]\{7,\}" <<< "$2")
path=/commit/$hash
;;
branch|remote-branch)
branch=$(sed 's/^[* ]*//' <<< "$2" | cut -d' ' -f1)
remote=$(git config branch."${branch}".remote || echo 'origin')
branch=${branch#$remote/}
path=/tree/$branch
;;
remote)
remote=$2
path=/tree/$branch
;;
file) path=/blob/$branch/$(git rev-parse --show-prefix)$2 ;;
tag) path=/releases/tag/$2 ;;
*) exit 1 ;;
esac
remote=${remote:-$(git config branch."${branch}".remote || echo 'origin')}
remote_url=$(git remote get-url "$remote" 2> /dev/null || echo "$remote")
if [[ $remote_url =~ ^git@ ]]; then
url=${remote_url%.git}
url=${url#git@}
url=https://${url/://}
elif [[ $remote_url =~ ^http ]]; then
url=${remote_url%.git}
fi
case "$(uname -s)" in
Darwin) open "$url$path" ;;
*) xdg-open "$url$path" ;;
esac
exit 0
fi
fi
if [[ $- =~ i ]] || [[ $1 = --run ]]; then # ----------------------------------
# Redefine this function to change the options
_fzf_git_fzf() {
fzf --height 50% --tmux 90%,70% \
--layout reverse --multi --min-height 20+ --border \
--no-separator --header-border horizontal \
--border-label-pos 2 \
--color 'label:blue' \
--preview-window 'right,50%' --preview-border line \
--bind 'ctrl-/:change-preview-window(down,50%|hidden|)' "$@"
}
_fzf_git_check() {
git rev-parse HEAD > /dev/null 2>&1 && return
[[ -n $TMUX ]] && tmux display-message "Not in a git repository"
return 1
}
__fzf_git=${BASH_SOURCE[0]:-${(%):-%x}}
__fzf_git=$(readlink -f "$__fzf_git" 2> /dev/null || /usr/bin/ruby --disable-gems -e 'puts File.expand_path(ARGV.first)' "$__fzf_git" 2> /dev/null)
_fzf_git_files() {
_fzf_git_check || return
local root query
root=$(git rev-parse --show-toplevel)
[[ $root != "$PWD" ]] && query='!../ '
(git -c color.status=$(__fzf_git_color) status --short --no-branch
git ls-files "$root" | grep -vxFf <(git status -s | grep '^[^?]' | cut -c4-; echo :) | sed 's/^/ /') |
_fzf_git_fzf -m --ansi --nth 2..,.. \
--border-label '📁 Files ' \
--header 'CTRL-O (open in browser) ALT-E (open in editor)' \
--bind "ctrl-o:execute-silent:bash \"$__fzf_git\" --list file {-1}" \
--bind "alt-e:execute:${EDITOR:-vim} {-1} > /dev/tty" \
--query "$query" \
--preview "git diff --no-ext-diff --color=$(__fzf_git_color .) -- {-1} | $(__fzf_git_pager); $(__fzf_git_cat) {-1}" "$@" |
cut -c4- | sed 's/.* -> //'
}
_fzf_git_branches() {
_fzf_git_check || return
bash "$__fzf_git" --list branches |
_fzf_git_fzf --ansi \
--border-label '🌲 Branches ' \
--header-lines 2 \
--tiebreak begin \
--preview-window down,border-top,40% \
--color hl:underline,hl+:underline \
--no-hscroll \
--bind 'ctrl-/:change-preview-window(down,70%|hidden|)' \
--bind "ctrl-o:execute-silent:bash \"$__fzf_git\" --list branch {}" \
--bind "alt-a:change-border-label(🌳 All branches)+reload:bash \"$__fzf_git\" --list all-branches" \
--bind "alt-h:become:LIST_OPTS=\$(cut -c3- <<< {} | cut -d' ' -f1) bash \"$__fzf_git\" --run hashes" \
--preview "git log --oneline --graph --date=short --color=$(__fzf_git_color .) --pretty='format:%C(auto)%cd %h%d %s' \$(cut -c3- <<< {} | cut -d' ' -f1) --" "$@" |
sed 's/^\* //' | awk '{print $1}' # Slightly modified to work with hashes as well
}
_fzf_git_tags() {
_fzf_git_check || return
git tag --sort -version:refname |
_fzf_git_fzf --preview-window right,70% \
--border-label '📛 Tags ' \
--header 'CTRL-O (open in browser)' \
--bind "ctrl-o:execute-silent:bash \"$__fzf_git\" --list tag {}" \
--preview "git show --color=$(__fzf_git_color .) {} | $(__fzf_git_pager)" "$@"
}
_fzf_git_hashes() {
_fzf_git_check || return
bash "$__fzf_git" --list hashes |
_fzf_git_fzf --ansi --no-sort --bind 'ctrl-s:toggle-sort' \
--border-label '🍡 Hashes ' \
--header-lines 2 \
--bind "ctrl-o:execute-silent:bash \"$__fzf_git\" --list commit {}" \
--bind "ctrl-d:execute:grep -o '[a-f0-9]\{7,\}' <<< {} | head -n 1 | xargs git diff --color=$(__fzf_git_color) > /dev/tty" \
--bind "alt-a:change-border-label(🍇 All hashes)+reload:bash \"$__fzf_git\" --list all-hashes" \
--color hl:underline,hl+:underline \
--preview "grep -o '[a-f0-9]\{7,\}' <<< {} | head -n 1 | xargs git show --color=$(__fzf_git_color .) | $(__fzf_git_pager)" "$@" |
awk 'match($0, /[a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9]*/) { print substr($0, RSTART, RLENGTH) }'
}
_fzf_git_remotes() {
_fzf_git_check || return
git remote -v | awk '{print $1 "\t" $2}' | uniq |
_fzf_git_fzf --tac \
--border-label '📡 Remotes ' \
--header 'CTRL-O (open in browser)' \
--bind "ctrl-o:execute-silent:bash \"$__fzf_git\" --list remote {1}" \
--preview-window right,70% \
--preview "git log --oneline --graph --date=short --color=$(__fzf_git_color .) --pretty='format:%C(auto)%cd %h%d %s' '{1}/$(git rev-parse --abbrev-ref HEAD)' --" "$@" |
cut -d$'\t' -f1
}
_fzf_git_stashes() {
_fzf_git_check || return
git stash list | _fzf_git_fzf \
--border-label '🥡 Stashes ' \
--header 'CTRL-X (drop stash)' \
--bind 'ctrl-x:reload(git stash drop -q {1}; git stash list)' \
-d: --preview "git show --color=$(__fzf_git_color .) {1} | $(__fzf_git_pager)" "$@" |
cut -d: -f1
}
_fzf_git_lreflogs() {
_fzf_git_check || return
git reflog --color=$(__fzf_git_color) --format="%C(blue)%gD %C(yellow)%h%C(auto)%d %gs" | _fzf_git_fzf --ansi \
--border-label '📒 Reflogs ' \
--preview "git show --color=$(__fzf_git_color .) {1} | $(__fzf_git_pager)" "$@" |
awk '{print $1}'
}
_fzf_git_each_ref() {
_fzf_git_check || return
bash "$__fzf_git" --list refs | _fzf_git_fzf --ansi \
--nth 2,2.. \
--tiebreak begin \
--border-label '☘️ Each ref ' \
--header-lines 1 \
--preview-window down,border-top,40% \
--color hl:underline,hl+:underline \
--no-hscroll \
--bind 'ctrl-/:change-preview-window(down,70%|hidden|)' \
--bind "ctrl-o:execute-silent:bash \"$__fzf_git\" --list {1} {2}" \
--bind "alt-e:execute:${EDITOR:-vim} <(git show {2}) > /dev/tty" \
--bind "alt-a:change-border-label(🍀 Every ref)+reload:bash \"$__fzf_git\" --list all-refs" \
--preview "git log --oneline --graph --date=short --color=$(__fzf_git_color .) --pretty='format:%C(auto)%cd %h%d %s' {2} --" "$@" |
awk '{print $2}'
}
_fzf_git_worktrees() {
_fzf_git_check || return
git worktree list | _fzf_git_fzf \
--border-label '🌴 Worktrees ' \
--header 'CTRL-X (remove worktree)' \
--bind 'ctrl-x:reload(git worktree remove {1} > /dev/null; git worktree list)' \
--preview "
git -c color.status=$(__fzf_git_color .) -C {1} status --short --branch
echo
git log --oneline --graph --date=short --color=$(__fzf_git_color .) --pretty='format:%C(auto)%cd %h%d %s' {2} --
" "$@" |
awk '{print $1}'
}
fi # --------------------------------------------------------------------------
if [[ $1 = --run ]]; then
shift
type=$1
shift
eval "_fzf_git_$type" "$@"
elif [[ $- =~ i ]]; then # ------------------------------------------------------
if [[ -n "${BASH_VERSION:-}" ]]; then
__fzf_git_init() {
bind -m emacs-standard '"\er": redraw-current-line'
bind -m emacs-standard '"\C-z": vi-editing-mode'
bind -m vi-command '"\C-z": emacs-editing-mode'
bind -m vi-insert '"\C-z": emacs-editing-mode'
local o c
for o in "$@"; do
c=${o:0:1}
bind -m emacs-standard '"\C-g\C-'$c'": " \C-u \C-a\C-k`_fzf_git_'$o'`\e\C-e\C-y\C-a\C-y\ey\C-h\C-e\er \C-h"'
bind -m vi-command '"\C-g\C-'$c'": "\C-z\C-g\C-'$c'\C-z"'
bind -m vi-insert '"\C-g\C-'$c'": "\C-z\C-g\C-'$c'\C-z"'
bind -m emacs-standard '"\C-g'$c'": " \C-u \C-a\C-k`_fzf_git_'$o'`\e\C-e\C-y\C-a\C-y\ey\C-h\C-e\er \C-h"'
bind -m vi-command '"\C-g'$c'": "\C-z\C-g'$c'\C-z"'
bind -m vi-insert '"\C-g'$c'": "\C-z\C-g'$c'\C-z"'
done
}
elif [[ -n "${ZSH_VERSION:-}" ]]; then
__fzf_git_join() {
local item
while read item; do
echo -n "${(q)item} "
done
}
__fzf_git_init() {
local m o
for o in "$@"; do
eval "fzf-git-$o-widget() { local result=\$(_fzf_git_$o | __fzf_git_join); zle reset-prompt; LBUFFER+=\$result }"
eval "zle -N fzf-git-$o-widget"
for m in emacs vicmd viins; do
eval "bindkey -M $m '^g^${o[1]}' fzf-git-$o-widget"
eval "bindkey -M $m '^g${o[1]}' fzf-git-$o-widget"
done
done
}
fi
__fzf_git_init files branches tags remotes hashes stashes lreflogs each_ref worktrees
fi # --------------------------------------------------------------------------
+24
View File
@@ -0,0 +1,24 @@
#!/usr/bin/env bash
set -euo pipefail
readonly ENABLED=''
readonly DISABLED=''
dbus-monitor path='/org/freedesktop/Notifications',interface='org.freedesktop.DBus.Properties',member='PropertiesChanged' --profile |
while read -r _; do
PAUSED="$(dunstctl is-paused)"
if [ "$PAUSED" == 'false' ]; then
CLASS="enabled"
TEXT="$ENABLED"
TOOLTIP="Notifications are on"
else
CLASS="disabled"
TEXT="$DISABLED"
TOOLTIP="Notifications are off"
COUNT="$(dunstctl count waiting)"
if [ "$COUNT" != '0' ]; then
TEXT="$DISABLED ($COUNT)"
fi
fi
printf '{"text": "%s", "class": "%s", "tooltip": "%s"}\n' "$TEXT" "$CLASS" "$TOOLTIP"
done
+17
View File
@@ -0,0 +1,17 @@
#!/usr/bin/env bash
CURRENT_LANG=$(echo $LANG| cut -d. -f1)
TRANSL_FILE=~/.config/$CURRENT_LANG
echo $TRANSL_FILE
while IFS="," read -r rec_column1 rec_column2 rec_column3 rec_column4
do
echo "Displaying Record-$rec_column1"
echo "Quantity: $rec_column2"
echo "Price: $rec_column3"
echo "Value: $rec_column4"
echo ""
done < <(tail -n +2 $TRANSL_FILE)

Some files were not shown because too many files have changed in this diff Show More