mirror of
https://github.com/ItsDrike/dotfiles.git
synced 2025-09-13 02:30:04 +00:00
Compare commits
10 commits
4e89803237
...
bd6db330d9
Author | SHA1 | Date | |
---|---|---|---|
bd6db330d9 | |||
0b24842857 | |||
618cb513f3 | |||
2967e9af89 | |||
140e5695fd | |||
00e17d36cc | |||
2da24e5549 | |||
362bb08620 | |||
2fa9c01bcc | |||
e78b421565 |
166 changed files with 2550 additions and 6097 deletions
|
@ -122,7 +122,6 @@ umount /mnt
|
|||
|
||||
```bash
|
||||
mount -o subvol=root,noatime,lazytime,commit=120,compress=zstd:1 /dev/mapper/cryptfs /mnt
|
||||
mount --mkdir -o subvol=snapshots,noatime,lazytime,commit=120,compress=zstd:1 /dev/mapper/cryptfs /mnt/snapshots
|
||||
mount --mkdir -o subvol=home,noatime,lazytime,commit=120,compress=zstd:5 /dev/mapper/cryptfs /mnt/data
|
||||
mount --mkdir -o noatime,lazytime,commit=120,compress=zstd:1 /dev/mapper/cryptfs /mnt/.btrfs
|
||||
mount --mkdir -o subvol=swap /dev/mapper/cryptfs /mnt/swap
|
||||
|
@ -166,10 +165,10 @@ cd ~/dots
|
|||
./install_root.sh
|
||||
```
|
||||
|
||||
Enter a fish shell for a better experience
|
||||
Enter the ZSH shell for a better experience
|
||||
|
||||
```bash
|
||||
fish
|
||||
zsh
|
||||
```
|
||||
|
||||
Create non-privileged user
|
||||
|
@ -181,7 +180,6 @@ install -o itsdrike -g itsdrike -d /home/itsdrike
|
|||
mv ~/dots /home/itsdrike
|
||||
chown -R itsdrike:itsdrike /home/itsdrike/dots
|
||||
passwd itsdrike
|
||||
chsh -s /usr/bin/zsh itsdrike
|
||||
su -l itsdrike
|
||||
fish
|
||||
```
|
||||
|
@ -200,6 +198,13 @@ exit
|
|||
su -l itsdrike
|
||||
```
|
||||
|
||||
Setup neovim
|
||||
|
||||
```bash
|
||||
git clone https://github.com/ItsDrike/lazyvim ~/.config/nvim
|
||||
nvim --headless "+Lazy! sync" +qa
|
||||
```
|
||||
|
||||
## Fstab adjustments
|
||||
|
||||
Finally, we'll want to make some slight modifications to `/etc/fstab` file, so
|
||||
|
@ -226,7 +231,6 @@ they're way too permissive. This is how I like to structure my fstab:
|
|||
# /dev/mapper/cryptfs LABEL=FS UUID=bffc7a62-0c7e-4aa9-b10e-fd68bac477e0
|
||||
/dev/mapper/cryptfs / btrfs rw,noatime,lazytime,compress=zstd:1,ssd,space_cache=v2,commit=120,discard=async,subvol=/root 0 1
|
||||
/dev/mapper/cryptfs /data btrfs rw,noatime,lazytime,compress=zstd:5,ssd,space_cache=v2,commit=120,discard=async,subvol=/data 0 2
|
||||
/dev/mapper/cryptfs /snapshots btrfs rw,noatime,lazytime,compress=zstd:1,ssd,space_cache=v2,commit=120,discard=async,subvol=/snapshots 0 2
|
||||
/dev/mapper/cryptfs /swap btrfs rw,subvol=/swap 0 0
|
||||
/dev/mapper/cryptfs /.btrfs btrfs rw,noatime,lazytime,compress=zstd:1,ssd,space_cache=v2,commit=120,discard=async 0 2
|
||||
|
||||
|
|
|
@ -104,6 +104,13 @@ script_name="$0"
|
|||
shell="$(getent passwd "$USER" | awk -F: '{print $NF}')"
|
||||
command=("$@")
|
||||
|
||||
# This syntax might be a bit confusing at first. It works as follows:
|
||||
# 1. Replace this wrapper process with the user's login shell (through exec)
|
||||
# 2. The shell is told to run 'exec $@' replacing itself with another process
|
||||
# 3. The $@ in the exec above referrs to the arguments passed the shell (after -c '...')
|
||||
# 4. "$script_name" is passed to the shell as $0 (process name), not included in $@
|
||||
# 5. The ${command[@]} matches the $@ which this script was called with
|
||||
# -> The command passed into this script as args is ran within the user's shell
|
||||
exec "$shell" -c 'exec "$@"' "$script_name" "${command[@]}"
|
||||
```
|
||||
|
||||
|
@ -150,3 +157,5 @@ command = "tuigreet --time --remember --remember-user-session --asterisks --gree
|
|||
# in the `video` group.
|
||||
user = "greeter"
|
||||
```
|
||||
|
||||
Do note that if you're using UWSM, you'll want to run `uwsm start hyprland.desktop` instead of directly running `Hyprland`.
|
||||
|
|
|
@ -1,815 +0,0 @@
|
|||
# Configuration for Alacritty, the GPU enhanced terminal emulator.
|
||||
|
||||
# Import additional configuration files
|
||||
#
|
||||
# Imports are loaded in order, skipping all missing files, with the importing
|
||||
# file being loaded last. If a field is already present in a previous import, it
|
||||
# will be replaced.
|
||||
#
|
||||
# All imports must either be absolute paths starting with `/`, or paths relative
|
||||
# to the user's home directory starting with `~/`.
|
||||
#import:
|
||||
# - /path/to/alacritty.yml
|
||||
|
||||
# Any items in the `env` entry below will be added as
|
||||
# environment variables. Some entries may override variables
|
||||
# set by alacritty itself.
|
||||
#env:
|
||||
# TERM variable
|
||||
#
|
||||
# This value is used to set the `$TERM` environment variable for
|
||||
# each instance of Alacritty. If it is not present, alacritty will
|
||||
# check the local terminfo database and use `alacritty` if it is
|
||||
# available, otherwise `xterm-256color` is used.
|
||||
#TERM: alacritty
|
||||
|
||||
window:
|
||||
# Window dimensions (changes require restart)
|
||||
#
|
||||
# Number of lines/columns (not pixels) in the terminal. The number of columns
|
||||
# must be at least `2`, while using a value of `0` for columns and lines will
|
||||
# fall back to the window manager's recommended size.
|
||||
#dimensions:
|
||||
# columns: 0
|
||||
# lines: 0
|
||||
|
||||
# Window position (changes require restart)
|
||||
#
|
||||
# Specified in number of pixels.
|
||||
# If the position is not set, the window manager will handle the placement.
|
||||
#position:
|
||||
# x: 0
|
||||
# y: 0
|
||||
|
||||
# Window padding (changes require restart)
|
||||
#
|
||||
# Blank space added around the window in pixels. This padding is scaled
|
||||
# by DPI and the specified value is always added at both opposing sides.
|
||||
padding:
|
||||
x: 6
|
||||
y: 6
|
||||
|
||||
# Background opacity
|
||||
#
|
||||
# Window opacity as a floating point number from `0.0` to `1.0`.
|
||||
# The value `0.0` is completely transparent and `1.0` is opaque.
|
||||
opacity: 0.9
|
||||
|
||||
# Spread additional padding evenly around the terminal content.
|
||||
#dynamic_padding: false
|
||||
|
||||
# Window decorations
|
||||
#
|
||||
# Values for `decorations`:
|
||||
# - full: Borders and title bar
|
||||
# - none: Neither borders nor title bar
|
||||
#
|
||||
# Values for `decorations` (macOS only):
|
||||
# - transparent: Title bar, transparent background and title bar buttons
|
||||
# - buttonless: Title bar, transparent background and no title bar buttons
|
||||
#decorations: full
|
||||
|
||||
# Startup Mode (changes require restart)
|
||||
#
|
||||
# Values for `startup_mode`:
|
||||
# - Windowed
|
||||
# - Maximized
|
||||
# - Fullscreen
|
||||
#
|
||||
# Values for `startup_mode` (macOS only):
|
||||
# - SimpleFullscreen
|
||||
#startup_mode: Windowed
|
||||
|
||||
# Window title
|
||||
#title: Alacritty
|
||||
|
||||
# Allow terminal applications to change Alacritty's window title.
|
||||
#dynamic_title: true
|
||||
|
||||
# Window class (Linux/BSD only):
|
||||
#class:
|
||||
# Application instance name
|
||||
#instance: Alacritty
|
||||
# General application class
|
||||
#general: Alacritty
|
||||
|
||||
# GTK theme variant (Linux/BSD only)
|
||||
#
|
||||
# Override the variant of the GTK theme. Commonly supported values are `dark`
|
||||
# and `light`. Set this to `None` to use the default theme variant.
|
||||
#gtk_theme_variant: None
|
||||
|
||||
scrolling:
|
||||
# Maximum number of lines in the scrollback buffer.
|
||||
# Specifying '0' will disable scrolling.
|
||||
history: 10000
|
||||
|
||||
# Scrolling distance multiplier.
|
||||
#multiplier: 3
|
||||
|
||||
# Font configuration
|
||||
font:
|
||||
# Normal (roman) font face
|
||||
normal:
|
||||
# Font family
|
||||
#
|
||||
# Default:
|
||||
# - (macOS) Menlo
|
||||
# - (Linux/BSD) monospace
|
||||
# - (Windows) Consolas
|
||||
family: JetBrains Mono
|
||||
#family: Comic Mono
|
||||
#family: Source Code Pro
|
||||
|
||||
# The `style` can be specified to pick a specific face.
|
||||
style: Medium
|
||||
|
||||
# Bold font face
|
||||
#bold:
|
||||
# Font family
|
||||
#
|
||||
# If the bold family is not specified, it will fall back to the
|
||||
# value specified for the normal font.
|
||||
#family: monospace
|
||||
#family: Source Code Pro
|
||||
|
||||
# The `style` can be specified to pick a specific face.
|
||||
#style: Bold
|
||||
|
||||
# Italic font face
|
||||
#italic:
|
||||
# Font family
|
||||
#
|
||||
# If the italic family is not specified, it will fall back to the
|
||||
# value specified for the normal font.
|
||||
#family: monospace
|
||||
#family: Source Code Pro
|
||||
|
||||
# The `style` can be specified to pick a specific face.
|
||||
#style: Italic
|
||||
|
||||
# Bold italic font face
|
||||
#bold_italic:
|
||||
# Font family
|
||||
#
|
||||
# If the bold italic family is not specified, it will fall back to the
|
||||
# value specified for the normal font.
|
||||
#family: monospace
|
||||
|
||||
# The `style` can be specified to pick a specific face.
|
||||
#style: Bold Italic
|
||||
|
||||
# Point size
|
||||
size: 11.0
|
||||
|
||||
# Offset is the extra space around each character. `offset.y` can be thought
|
||||
# of as modifying the line spacing, and `offset.x` as modifying the letter
|
||||
# spacing.
|
||||
#offset:
|
||||
# x: 0
|
||||
# y: 0
|
||||
|
||||
# Glyph offset determines the locations of the glyphs within their cells with
|
||||
# the default being at the bottom. Increasing `x` moves the glyph to the
|
||||
# right, increasing `y` moves the glyph upward.
|
||||
#glyph_offset:
|
||||
# x: 0
|
||||
# y: 0
|
||||
|
||||
# Thin stroke font rendering (macOS only)
|
||||
#
|
||||
# Thin strokes are suitable for retina displays, but for non-retina screens
|
||||
# it is recommended to set `use_thin_strokes` to `false`.
|
||||
#use_thin_strokes: true
|
||||
|
||||
# If `true`, bold text is drawn using the bright color variants.
|
||||
draw_bold_text_with_bright_colors: false
|
||||
|
||||
# Colors (Tomorrow Night)
|
||||
colors:
|
||||
# Default colors
|
||||
primary:
|
||||
background: "#191919"
|
||||
foreground: "#d8dee9"
|
||||
#background: '#1d1f21'
|
||||
#foreground: '#c5c8c6'
|
||||
|
||||
# Bright and dim foreground colors
|
||||
#
|
||||
# The dimmed foreground color is calculated automatically if it is not
|
||||
# present. If the bright foreground color is not set, or
|
||||
# `draw_bold_text_with_bright_colors` is `false`, the normal foreground
|
||||
# color will be used.
|
||||
#dim_foreground: '#828482'
|
||||
#bright_foreground: '#eaeaea'
|
||||
|
||||
# Cursor colors
|
||||
#
|
||||
# Colors which should be used to draw the terminal cursor.
|
||||
#
|
||||
# Allowed values are CellForeground and CellBackground, which reference the
|
||||
# affected cell, or hexadecimal colors like #ff00ff.
|
||||
#cursor:
|
||||
# text: CellBackground
|
||||
# cursor: CellForeground
|
||||
|
||||
# Vi mode cursor colors
|
||||
#
|
||||
# Colors for the cursor when the vi mode is active.
|
||||
#
|
||||
# Allowed values are CellForeground and CellBackground, which reference the
|
||||
# affected cell, or hexadecimal colors like #ff00ff.
|
||||
#vi_mode_cursor:
|
||||
# text: CellBackground
|
||||
# cursor: CellForeground
|
||||
|
||||
# Search colors
|
||||
#
|
||||
# Colors used for the search bar and match highlighting.
|
||||
#search:
|
||||
# Allowed values are CellForeground and CellBackground, which reference the
|
||||
# affected cell, or hexadecimal colors like #ff00ff.
|
||||
#matches:
|
||||
# foreground: '#000000'
|
||||
# background: '#ffffff'
|
||||
#focused_match:
|
||||
# foreground: CellBackground
|
||||
# background: CellForeground
|
||||
|
||||
#bar:
|
||||
# background: '#c5c8c6'
|
||||
# foreground: '#1d1f21'
|
||||
|
||||
# Line indicator
|
||||
#
|
||||
# Color used for the indicator displaying the position in history during
|
||||
# search and vi mode.
|
||||
#
|
||||
# By default, these will use the opposing primary color.
|
||||
#line_indicator:
|
||||
# foreground: None
|
||||
# background: None
|
||||
|
||||
# Selection colors
|
||||
#
|
||||
# Colors which should be used to draw the selection area.
|
||||
#
|
||||
# Allowed values are CellForeground and CellBackground, which reference the
|
||||
# affected cell, or hexadecimal colors like #ff00ff.
|
||||
#selection:
|
||||
# text: CellBackground
|
||||
# background: CellForeground
|
||||
|
||||
# Normal colors
|
||||
normal:
|
||||
#black: '#191919'
|
||||
black: "#46494d"
|
||||
red: "#b02626"
|
||||
green: "#40a62f"
|
||||
yellow: "#f2e635"
|
||||
blue: "#314ad0"
|
||||
magenta: "#b30ad0"
|
||||
cyan: "#32d0fc"
|
||||
white: "#acadb1"
|
||||
|
||||
# Bright colors
|
||||
bright:
|
||||
black: "#666666"
|
||||
red: "#ce2727"
|
||||
green: "#47c930"
|
||||
yellow: "#fff138"
|
||||
blue: "#2e4bea"
|
||||
magenta: "#cc15ed"
|
||||
cyan: "#54d9ff"
|
||||
white: "#dbdbdb"
|
||||
|
||||
# Dim colors
|
||||
dim:
|
||||
black: "#676f78"
|
||||
red: "#b55454"
|
||||
green: "#78a670"
|
||||
yellow: "#faf380"
|
||||
blue: "#707fd0"
|
||||
magenta: "#c583d0"
|
||||
cyan: "#8adaf1"
|
||||
white: "#e0e3e7"
|
||||
|
||||
# Indexed Colors
|
||||
#
|
||||
# The indexed colors include all colors from 16 to 256.
|
||||
# When these are not set, they're filled with sensible defaults.
|
||||
#
|
||||
# Example:
|
||||
# `- { index: 16, color: '#ff00ff' }`
|
||||
#
|
||||
#indexed_colors: []
|
||||
# Bell
|
||||
#
|
||||
# The bell is rung every time the BEL control character is received.
|
||||
#bell:
|
||||
# Visual Bell Animation
|
||||
#
|
||||
# Animation effect for flashing the screen when the visual bell is rung.
|
||||
#
|
||||
# Values for `animation`:
|
||||
# - Ease
|
||||
# - EaseOut
|
||||
# - EaseOutSine
|
||||
# - EaseOutQuad
|
||||
# - EaseOutCubic
|
||||
# - EaseOutQuart
|
||||
# - EaseOutQuint
|
||||
# - EaseOutExpo
|
||||
# - EaseOutCirc
|
||||
# - Linear
|
||||
#animation: EaseOutExpo
|
||||
|
||||
# Duration of the visual bell flash in milliseconds. A `duration` of `0` will
|
||||
# disable the visual bell animation.
|
||||
#duration: 0
|
||||
|
||||
# Visual bell animation color.
|
||||
#color: '#ffffff'
|
||||
|
||||
# Bell Command
|
||||
#
|
||||
# This program is executed whenever the bell is rung.
|
||||
#
|
||||
# When set to `command: None`, no command will be executed.
|
||||
#
|
||||
# Example:
|
||||
# command:
|
||||
# program: notify-send
|
||||
# args: ["Hello, World!"]
|
||||
#
|
||||
#command: None
|
||||
|
||||
#selection:
|
||||
# This string contains all characters that are used as separators for
|
||||
# "semantic words" in Alacritty.
|
||||
#semantic_escape_chars: ",│`|:\"' ()[]{}<>\t"
|
||||
|
||||
# When set to `true`, selected text will be copied to the primary clipboard.
|
||||
#save_to_clipboard: false
|
||||
|
||||
#cursor:
|
||||
# Cursor style
|
||||
#style:
|
||||
# Cursor shape
|
||||
#
|
||||
# Values for `shape`:
|
||||
# - ▇ Block
|
||||
# - _ Underline
|
||||
# - | Beam
|
||||
#shape: Block
|
||||
|
||||
# Cursor blinking state
|
||||
#
|
||||
# Values for `blinking`:
|
||||
# - Never: Prevent the cursor from ever blinking
|
||||
# - Off: Disable blinking by default
|
||||
# - On: Enable blinking by default
|
||||
# - Always: Force the cursor to always blink
|
||||
#blinking: Off
|
||||
|
||||
# Vi mode cursor style
|
||||
#
|
||||
# If the vi mode cursor style is `None` or not specified, it will fall back to
|
||||
# the style of the active value of the normal cursor.
|
||||
#
|
||||
# See `cursor.style` for available options.
|
||||
#vi_mode_style: None
|
||||
|
||||
# Cursor blinking interval in milliseconds.
|
||||
#blink_interval: 750
|
||||
|
||||
# If this is `true`, the cursor will be rendered as a hollow box when the
|
||||
# window is not focused.
|
||||
#unfocused_hollow: true
|
||||
|
||||
# Thickness of the cursor relative to the cell width as floating point number
|
||||
# from `0.0` to `1.0`.
|
||||
#thickness: 0.15
|
||||
|
||||
# Live config reload (changes require restart)
|
||||
#live_config_reload: true
|
||||
|
||||
# Shell
|
||||
#
|
||||
# You can set `shell.program` to the path of your favorite shell, e.g.
|
||||
# `/bin/fish`. Entries in `shell.args` are passed unmodified as arguments to the
|
||||
# shell.
|
||||
#
|
||||
# Default:
|
||||
# - (macOS) /bin/bash --login
|
||||
# - (Linux/BSD) user login shell
|
||||
# - (Windows) powershell
|
||||
#shell:
|
||||
# program: /bin/bash
|
||||
# args:
|
||||
# - --login
|
||||
|
||||
# Startup directory
|
||||
#
|
||||
# Directory the shell is started in. If this is unset, or `None`, the working
|
||||
# directory of the parent process will be used.
|
||||
#working_directory: None
|
||||
|
||||
# Send ESC (\x1b) before characters when alt is pressed.
|
||||
#alt_send_esc: true
|
||||
|
||||
#mouse:
|
||||
# Click settings
|
||||
#
|
||||
# The `double_click` and `triple_click` settings control the time
|
||||
# alacritty should wait for accepting multiple clicks as one double
|
||||
# or triple click.
|
||||
#double_click: { threshold: 300 }
|
||||
#triple_click: { threshold: 300 }
|
||||
|
||||
# If this is `true`, the cursor is temporarily hidden when typing.
|
||||
#hide_when_typing: false
|
||||
|
||||
#url:
|
||||
# URL launcher
|
||||
#
|
||||
# This program is executed when clicking on a text which is recognized as a
|
||||
# URL. The URL is always added to the command as the last parameter.
|
||||
#
|
||||
# When set to `launcher: None`, URL launching will be disabled completely.
|
||||
#
|
||||
# Default:
|
||||
# - (macOS) open
|
||||
# - (Linux/BSD) xdg-open
|
||||
# - (Windows) explorer
|
||||
#launcher:
|
||||
# program: xdg-open
|
||||
# args: []
|
||||
|
||||
# URL modifiers
|
||||
#
|
||||
# These are the modifiers that need to be held down for opening URLs when
|
||||
# clicking on them. The available modifiers are documented in the key
|
||||
# binding section.
|
||||
#modifiers: None
|
||||
|
||||
# Mouse bindings
|
||||
#
|
||||
# Mouse bindings are specified as a list of objects, much like the key
|
||||
# bindings further below.
|
||||
#
|
||||
# To trigger mouse bindings when an application running within Alacritty
|
||||
# captures the mouse, the `Shift` modifier is automatically added as a
|
||||
# requirement.
|
||||
#
|
||||
# Each mouse binding will specify a:
|
||||
#
|
||||
# - `mouse`:
|
||||
#
|
||||
# - Middle
|
||||
# - Left
|
||||
# - Right
|
||||
# - Numeric identifier such as `5`
|
||||
#
|
||||
# - `action` (see key bindings)
|
||||
#
|
||||
# And optionally:
|
||||
#
|
||||
# - `mods` (see key bindings)
|
||||
#mouse_bindings:
|
||||
# - { mouse: Middle, action: PasteSelection }
|
||||
|
||||
# Key bindings
|
||||
#
|
||||
# Key bindings are specified as a list of objects. For example, this is the
|
||||
# default paste binding:
|
||||
#
|
||||
# `- { key: V, mods: Control|Shift, action: Paste }`
|
||||
#
|
||||
# Each key binding will specify a:
|
||||
#
|
||||
# - `key`: Identifier of the key pressed
|
||||
#
|
||||
# - A-Z
|
||||
# - F1-F24
|
||||
# - Key0-Key9
|
||||
#
|
||||
# A full list with available key codes can be found here:
|
||||
# https://docs.rs/glutin/*/glutin/event/enum.VirtualKeyCode.html#variants
|
||||
#
|
||||
# Instead of using the name of the keys, the `key` field also supports using
|
||||
# the scancode of the desired key. Scancodes have to be specified as a
|
||||
# decimal number. This command will allow you to display the hex scancodes
|
||||
# for certain keys:
|
||||
#
|
||||
# `showkey --scancodes`.
|
||||
#
|
||||
# Then exactly one of:
|
||||
#
|
||||
# - `chars`: Send a byte sequence to the running application
|
||||
#
|
||||
# The `chars` field writes the specified string to the terminal. This makes
|
||||
# it possible to pass escape sequences. To find escape codes for bindings
|
||||
# like `PageUp` (`"\x1b[5~"`), you can run the command `showkey -a` outside
|
||||
# of tmux. Note that applications use terminfo to map escape sequences back
|
||||
# to keys. It is therefore required to update the terminfo when changing an
|
||||
# escape sequence.
|
||||
#
|
||||
# - `action`: Execute a predefined action
|
||||
#
|
||||
# - ToggleViMode
|
||||
# - SearchForward
|
||||
# Start searching toward the right of the search origin.
|
||||
# - SearchBackward
|
||||
# Start searching toward the left of the search origin.
|
||||
# - Copy
|
||||
# - Paste
|
||||
# - IncreaseFontSize
|
||||
# - DecreaseFontSize
|
||||
# - ResetFontSize
|
||||
# - ScrollPageUp
|
||||
# - ScrollPageDown
|
||||
# - ScrollHalfPageUp
|
||||
# - ScrollHalfPageDown
|
||||
# - ScrollLineUp
|
||||
# - ScrollLineDown
|
||||
# - ScrollToTop
|
||||
# - ScrollToBottom
|
||||
# - ClearHistory
|
||||
# Remove the terminal's scrollback history.
|
||||
# - Hide
|
||||
# Hide the Alacritty window.
|
||||
# - Minimize
|
||||
# Minimize the Alacritty window.
|
||||
# - Quit
|
||||
# Quit Alacritty.
|
||||
# - ToggleFullscreen
|
||||
# - SpawnNewInstance
|
||||
# Spawn a new instance of Alacritty.
|
||||
# - ClearLogNotice
|
||||
# Clear Alacritty's UI warning and error notice.
|
||||
# - ClearSelection
|
||||
# Remove the active selection.
|
||||
# - ReceiveChar
|
||||
# - None
|
||||
#
|
||||
# - Vi mode exclusive actions:
|
||||
#
|
||||
# - Open
|
||||
# Open URLs at the cursor location with the launcher configured in
|
||||
# `url.launcher`.
|
||||
# - ToggleNormalSelection
|
||||
# - ToggleLineSelection
|
||||
# - ToggleBlockSelection
|
||||
# - ToggleSemanticSelection
|
||||
# Toggle semantic selection based on `selection.semantic_escape_chars`.
|
||||
#
|
||||
# - Vi mode exclusive cursor motion actions:
|
||||
#
|
||||
# - Up
|
||||
# One line up.
|
||||
# - Down
|
||||
# One line down.
|
||||
# - Left
|
||||
# One character left.
|
||||
# - Right
|
||||
# One character right.
|
||||
# - First
|
||||
# First column, or beginning of the line when already at the first column.
|
||||
# - Last
|
||||
# Last column, or beginning of the line when already at the last column.
|
||||
# - FirstOccupied
|
||||
# First non-empty cell in this terminal row, or first non-empty cell of
|
||||
# the line when already at the first cell of the row.
|
||||
# - High
|
||||
# Top of the screen.
|
||||
# - Middle
|
||||
# Center of the screen.
|
||||
# - Low
|
||||
# Bottom of the screen.
|
||||
# - SemanticLeft
|
||||
# Start of the previous semantically separated word.
|
||||
# - SemanticRight
|
||||
# Start of the next semantically separated word.
|
||||
# - SemanticLeftEnd
|
||||
# End of the previous semantically separated word.
|
||||
# - SemanticRightEnd
|
||||
# End of the next semantically separated word.
|
||||
# - WordLeft
|
||||
# Start of the previous whitespace separated word.
|
||||
# - WordRight
|
||||
# Start of the next whitespace separated word.
|
||||
# - WordLeftEnd
|
||||
# End of the previous whitespace separated word.
|
||||
# - WordRightEnd
|
||||
# End of the next whitespace separated word.
|
||||
# - Bracket
|
||||
# Character matching the bracket at the cursor's location.
|
||||
# - SearchNext
|
||||
# Beginning of the next match.
|
||||
# - SearchPrevious
|
||||
# Beginning of the previous match.
|
||||
# - SearchStart
|
||||
# Start of the match to the left of the vi mode cursor.
|
||||
# - SearchEnd
|
||||
# End of the match to the right of the vi mode cursor.
|
||||
#
|
||||
# - Search mode exclusive actions:
|
||||
# - SearchFocusNext
|
||||
# Move the focus to the next search match.
|
||||
# - SearchFocusPrevious
|
||||
# Move the focus to the previous search match.
|
||||
# - SearchConfirm
|
||||
# - SearchCancel
|
||||
# - SearchClear
|
||||
# Reset the search regex.
|
||||
# - SearchDeleteWord
|
||||
# Delete the last word in the search regex.
|
||||
# - SearchHistoryPrevious
|
||||
# Go to the previous regex in the search history.
|
||||
# - SearchHistoryNext
|
||||
# Go to the next regex in the search history.
|
||||
#
|
||||
# - macOS exclusive actions:
|
||||
# - ToggleSimpleFullscreen
|
||||
# Enter fullscreen without occupying another space.
|
||||
#
|
||||
# - Linux/BSD exclusive actions:
|
||||
#
|
||||
# - CopySelection
|
||||
# Copy from the selection buffer.
|
||||
# - PasteSelection
|
||||
# Paste from the selection buffer.
|
||||
#
|
||||
# - `command`: Fork and execute a specified command plus arguments
|
||||
#
|
||||
# The `command` field must be a map containing a `program` string and an
|
||||
# `args` array of command line parameter strings. For example:
|
||||
# `{ program: "alacritty", args: ["-e", "vttest"] }`
|
||||
#
|
||||
# And optionally:
|
||||
#
|
||||
# - `mods`: Key modifiers to filter binding actions
|
||||
#
|
||||
# - Command
|
||||
# - Control
|
||||
# - Option
|
||||
# - Super
|
||||
# - Shift
|
||||
# - Alt
|
||||
#
|
||||
# Multiple `mods` can be combined using `|` like this:
|
||||
# `mods: Control|Shift`.
|
||||
# Whitespace and capitalization are relevant and must match the example.
|
||||
#
|
||||
# - `mode`: Indicate a binding for only specific terminal reported modes
|
||||
#
|
||||
# This is mainly used to send applications the correct escape sequences
|
||||
# when in different modes.
|
||||
#
|
||||
# - AppCursor
|
||||
# - AppKeypad
|
||||
# - Search
|
||||
# - Alt
|
||||
# - Vi
|
||||
#
|
||||
# A `~` operator can be used before a mode to apply the binding whenever
|
||||
# the mode is *not* active, e.g. `~Alt`.
|
||||
#
|
||||
# Bindings are always filled by default, but will be replaced when a new
|
||||
# binding with the same triggers is defined. To unset a default binding, it can
|
||||
# be mapped to the `ReceiveChar` action. Alternatively, you can use `None` for
|
||||
# a no-op if you do not wish to receive input characters for that binding.
|
||||
#
|
||||
# If the same trigger is assigned to multiple actions, all of them are executed
|
||||
# in the order they were defined in.
|
||||
#key_bindings:
|
||||
#- { key: Paste, action: Paste }
|
||||
#- { key: Copy, action: Copy }
|
||||
#- { key: L, mods: Control, action: ClearLogNotice }
|
||||
#- { key: L, mods: Control, mode: ~Vi|~Search, chars: "\x0c" }
|
||||
#- { key: PageUp, mods: Shift, mode: ~Alt, action: ScrollPageUp, }
|
||||
#- { key: PageDown, mods: Shift, mode: ~Alt, action: ScrollPageDown }
|
||||
#- { key: Home, mods: Shift, mode: ~Alt, action: ScrollToTop, }
|
||||
#- { key: End, mods: Shift, mode: ~Alt, action: ScrollToBottom }
|
||||
|
||||
# Vi Mode
|
||||
#- { key: Space, mods: Shift|Control, mode: Vi|~Search, action: ScrollToBottom }
|
||||
#- { key: Space, mods: Shift|Control, mode: ~Search, action: ToggleViMode }
|
||||
#- { key: Escape, mode: Vi|~Search, action: ClearSelection }
|
||||
#- { key: I, mode: Vi|~Search, action: ScrollToBottom }
|
||||
#- { key: I, mode: Vi|~Search, action: ToggleViMode }
|
||||
#- { key: C, mods: Control, mode: Vi|~Search, action: ToggleViMode }
|
||||
#- { key: Y, mods: Control, mode: Vi|~Search, action: ScrollLineUp }
|
||||
#- { key: E, mods: Control, mode: Vi|~Search, action: ScrollLineDown }
|
||||
#- { key: G, mode: Vi|~Search, action: ScrollToTop }
|
||||
#- { key: G, mods: Shift, mode: Vi|~Search, action: ScrollToBottom }
|
||||
#- { key: B, mods: Control, mode: Vi|~Search, action: ScrollPageUp }
|
||||
#- { key: F, mods: Control, mode: Vi|~Search, action: ScrollPageDown }
|
||||
#- { key: U, mods: Control, mode: Vi|~Search, action: ScrollHalfPageUp }
|
||||
#- { key: D, mods: Control, mode: Vi|~Search, action: ScrollHalfPageDown }
|
||||
#- { key: Y, mode: Vi|~Search, action: Copy }
|
||||
#- { key: Y, mode: Vi|~Search, action: ClearSelection }
|
||||
#- { key: Copy, mode: Vi|~Search, action: ClearSelection }
|
||||
#- { key: V, mode: Vi|~Search, action: ToggleNormalSelection }
|
||||
#- { key: V, mods: Shift, mode: Vi|~Search, action: ToggleLineSelection }
|
||||
#- { key: V, mods: Control, mode: Vi|~Search, action: ToggleBlockSelection }
|
||||
#- { key: V, mods: Alt, mode: Vi|~Search, action: ToggleSemanticSelection }
|
||||
#- { key: Return, mode: Vi|~Search, action: Open }
|
||||
#- { key: K, mode: Vi|~Search, action: Up }
|
||||
#- { key: J, mode: Vi|~Search, action: Down }
|
||||
#- { key: H, mode: Vi|~Search, action: Left }
|
||||
#- { key: L, mode: Vi|~Search, action: Right }
|
||||
#- { key: Up, mode: Vi|~Search, action: Up }
|
||||
#- { key: Down, mode: Vi|~Search, action: Down }
|
||||
#- { key: Left, mode: Vi|~Search, action: Left }
|
||||
#- { key: Right, mode: Vi|~Search, action: Right }
|
||||
#- { key: Key0, mode: Vi|~Search, action: First }
|
||||
#- { key: Key4, mods: Shift, mode: Vi|~Search, action: Last }
|
||||
#- { key: Key6, mods: Shift, mode: Vi|~Search, action: FirstOccupied }
|
||||
#- { key: H, mods: Shift, mode: Vi|~Search, action: High }
|
||||
#- { key: M, mods: Shift, mode: Vi|~Search, action: Middle }
|
||||
#- { key: L, mods: Shift, mode: Vi|~Search, action: Low }
|
||||
#- { key: B, mode: Vi|~Search, action: SemanticLeft }
|
||||
#- { key: W, mode: Vi|~Search, action: SemanticRight }
|
||||
#- { key: E, mode: Vi|~Search, action: SemanticRightEnd }
|
||||
#- { key: B, mods: Shift, mode: Vi|~Search, action: WordLeft }
|
||||
#- { key: W, mods: Shift, mode: Vi|~Search, action: WordRight }
|
||||
#- { key: E, mods: Shift, mode: Vi|~Search, action: WordRightEnd }
|
||||
#- { key: Key5, mods: Shift, mode: Vi|~Search, action: Bracket }
|
||||
#- { key: Slash, mode: Vi|~Search, action: SearchForward }
|
||||
#- { key: Slash, mods: Shift, mode: Vi|~Search, action: SearchBackward }
|
||||
#- { key: N, mode: Vi|~Search, action: SearchNext }
|
||||
#- { key: N, mods: Shift, mode: Vi|~Search, action: SearchPrevious }
|
||||
|
||||
# Search Mode
|
||||
#- { key: Return, mode: Search|Vi, action: SearchConfirm }
|
||||
#- { key: Escape, mode: Search, action: SearchCancel }
|
||||
#- { key: C, mods: Control, mode: Search, action: SearchCancel }
|
||||
#- { key: U, mods: Control, mode: Search, action: SearchClear }
|
||||
#- { key: W, mods: Control, mode: Search, action: SearchDeleteWord }
|
||||
#- { key: P, mods: Control, mode: Search, action: SearchHistoryPrevious }
|
||||
#- { key: N, mods: Control, mode: Search, action: SearchHistoryNext }
|
||||
#- { key: Up, mode: Search, action: SearchHistoryPrevious }
|
||||
#- { key: Down, mode: Search, action: SearchHistoryNext }
|
||||
#- { key: Return, mode: Search|~Vi, action: SearchFocusNext }
|
||||
#- { key: Return, mods: Shift, mode: Search|~Vi, action: SearchFocusPrevious }
|
||||
|
||||
# (Windows, Linux, and BSD only)
|
||||
#- { key: V, mods: Control|Shift, mode: ~Vi, action: Paste }
|
||||
#- { key: C, mods: Control|Shift, action: Copy }
|
||||
#- { key: F, mods: Control|Shift, mode: ~Search, action: SearchForward }
|
||||
#- { key: B, mods: Control|Shift, mode: ~Search, action: SearchBackward }
|
||||
#- { key: C, mods: Control|Shift, mode: Vi|~Search, action: ClearSelection }
|
||||
#- { key: Insert, mods: Shift, action: PasteSelection }
|
||||
#- { key: Key0, mods: Control, action: ResetFontSize }
|
||||
#- { key: Equals, mods: Control, action: IncreaseFontSize }
|
||||
#- { key: Plus, mods: Control, action: IncreaseFontSize }
|
||||
#- { key: NumpadAdd, mods: Control, action: IncreaseFontSize }
|
||||
#- { key: Minus, mods: Control, action: DecreaseFontSize }
|
||||
#- { key: NumpadSubtract, mods: Control, action: DecreaseFontSize }
|
||||
|
||||
# (Windows only)
|
||||
#- { key: Return, mods: Alt, action: ToggleFullscreen }
|
||||
|
||||
# (macOS only)
|
||||
#- { key: K, mods: Command, mode: ~Vi|~Search, chars: "\x0c" }
|
||||
#- { key: K, mods: Command, mode: ~Vi|~Search, action: ClearHistory }
|
||||
#- { key: Key0, mods: Command, action: ResetFontSize }
|
||||
#- { key: Equals, mods: Command, action: IncreaseFontSize }
|
||||
#- { key: Plus, mods: Command, action: IncreaseFontSize }
|
||||
#- { key: NumpadAdd, mods: Command, action: IncreaseFontSize }
|
||||
#- { key: Minus, mods: Command, action: DecreaseFontSize }
|
||||
#- { key: NumpadSubtract, mods: Command, action: DecreaseFontSize }
|
||||
#- { key: V, mods: Command, action: Paste }
|
||||
#- { key: C, mods: Command, action: Copy }
|
||||
#- { key: C, mods: Command, mode: Vi|~Search, action: ClearSelection }
|
||||
#- { key: H, mods: Command, action: Hide }
|
||||
#- { key: M, mods: Command, action: Minimize }
|
||||
#- { key: Q, mods: Command, action: Quit }
|
||||
#- { key: W, mods: Command, action: Quit }
|
||||
#- { key: N, mods: Command, action: SpawnNewInstance }
|
||||
#- { key: F, mods: Command|Control, action: ToggleFullscreen }
|
||||
#- { key: F, mods: Command, mode: ~Search, action: SearchForward }
|
||||
#- { key: B, mods: Command, mode: ~Search, action: SearchBackward }
|
||||
|
||||
#debug:
|
||||
# Display the time it takes to redraw each frame.
|
||||
#render_timer: false
|
||||
|
||||
# Keep the log file after quitting Alacritty.
|
||||
#persistent_logging: false
|
||||
|
||||
# Log level
|
||||
#
|
||||
# Values for `log_level`:
|
||||
# - Off
|
||||
# - Error
|
||||
# - Warn
|
||||
# - Info
|
||||
# - Debug
|
||||
# - Trace
|
||||
#log_level: Warn
|
||||
|
||||
# Print all received window events.
|
||||
#print_events: false
|
1
home/.config/code-flags.conf
Normal file
1
home/.config/code-flags.conf
Normal file
|
@ -0,0 +1 @@
|
|||
--ozone-platform-hint=auto
|
1
home/.config/codium-flags.conf
Normal file
1
home/.config/codium-flags.conf
Normal file
|
@ -0,0 +1 @@
|
|||
--ozone-platform-hint=auto
|
|
@ -1,500 +0,0 @@
|
|||
[global]
|
||||
|
||||
### Display ###
|
||||
|
||||
# Which monitor should the notifications be shown on
|
||||
monitor = 0
|
||||
|
||||
# Display notification on focused monitor. Possible modes are:
|
||||
# mouse: follow mouse pointer
|
||||
# keyboard: follow window with keyboard focus
|
||||
# none: don't follow anything
|
||||
#
|
||||
# "keyboard" needs a window manager that exports the
|
||||
# _NET_ACTIVE_WINDOW property.
|
||||
# This should be the case for almost all modern window managers.
|
||||
#
|
||||
# If this option is set to mouse or keyboard, the monitor option
|
||||
# will be ignored.
|
||||
follow = mouse
|
||||
|
||||
### Geometry ###
|
||||
|
||||
# Dynamic width from 0 to 300
|
||||
# width = (0, 300)
|
||||
# constant width of 300
|
||||
# width = 300
|
||||
width = 270
|
||||
|
||||
# The dynamic height of a single notification, excluding the frame.
|
||||
height = (0, 300)
|
||||
|
||||
# Position the notification in the top right corner
|
||||
origin = top-right
|
||||
|
||||
# Offset from the origin
|
||||
offset = 30x30
|
||||
|
||||
# Scale factor. It is auto-detected if value is 0.
|
||||
scale = 0
|
||||
|
||||
# Maximum number of notifications (0 means no limit)
|
||||
notification_limit = 10
|
||||
|
||||
### Progress bar ###
|
||||
|
||||
# Turn on the progress bar. It appears when a progress hint is passed
|
||||
# with for example dunstify -h int:value:12
|
||||
progress_bar = true
|
||||
|
||||
# Set the progress bar height. This includes the frame, so make sure
|
||||
# it's at least twice as big as the frame width.
|
||||
progress_bar_height = 30
|
||||
|
||||
# Set the frame width of the progress bar
|
||||
progress_bar_frame_width = 1
|
||||
|
||||
# Set the minimum width for the progress bar
|
||||
progress_bar_min_width = 150
|
||||
|
||||
# Set the maximum width for the progress bar
|
||||
progress_bar_max_width = 300
|
||||
|
||||
# Corner radius for the progress bar. 0 disables rounded corners.
|
||||
progress_bar_corner_radius = 0
|
||||
|
||||
# Define which corners to round when drawing the progress bar. If progress_bar_corner_radius
|
||||
# is set to 0 this option will be ignored.
|
||||
progress_bar_corners = all
|
||||
|
||||
# Corner radius for the icon image.
|
||||
icon_corner_radius = 0
|
||||
|
||||
# Define which corners to round when drawing the icon image. If icon_corner_radius
|
||||
# is set to 0 this option will be ignored.
|
||||
icon_corners = all
|
||||
|
||||
# Show how many messages are currently hidden (because of
|
||||
# notification_limit).
|
||||
indicate_hidden = yes
|
||||
|
||||
# The transparency of the window. Range: [0; 100].
|
||||
# This option will only work if a compositing window manager is
|
||||
# present (e.g. xcompmgr, compiz, picom, etc.). (X11 only)
|
||||
transparency = 20
|
||||
|
||||
# Draw a line of "separator_height" pixel height between two
|
||||
# notifications.
|
||||
# Set to 0 to disable.
|
||||
# If gap_size is greater than 0, this setting will be ignored.
|
||||
separator_height = 2
|
||||
|
||||
# Padding between text and separator.
|
||||
padding = 10
|
||||
|
||||
# Horizontal padding
|
||||
horizontal_padding = 10
|
||||
|
||||
# Padding between text and icon.
|
||||
text_icon_padding = 0
|
||||
|
||||
# Defines width in pixels of fram around the notification window.
|
||||
# Set to 0 to disable.
|
||||
frame_width = 3
|
||||
|
||||
# Defines color of the frame around the notification window
|
||||
frame_color = "#27292c";
|
||||
|
||||
# Size of gap to display between notifications - requires a compositor.
|
||||
# If value is greater than 0, separator_height will be ignored and a border
|
||||
# of size frame_width will be drawn around each notification instead.
|
||||
# Click events on gaps do not currently propagate to applications below.
|
||||
gap_size = 0
|
||||
|
||||
# Define a color for the separator.
|
||||
# possible values are:
|
||||
# * auto: dunst tries to find a color fitting to the background;
|
||||
# * foreground: use the same color as the foreground;
|
||||
# * frame: use the same color as the frame;
|
||||
# * anything else will be interpreted as a X color.
|
||||
separator_color = frame
|
||||
|
||||
# Sort type.
|
||||
# possible values are:
|
||||
# * id: sort by id
|
||||
# * urgency_ascending: sort by urgency (low then normal then critical)
|
||||
# * urgency_descending: sort by urgency (critical then normal then low)
|
||||
# * update: sort by update (most recent always at the top)
|
||||
sort = yes
|
||||
|
||||
# Don't remove messages, if the user is idle (no mouse or keyboard input)
|
||||
# for longer than idle_threshold seconds.
|
||||
# Set to 0 to disable.
|
||||
# A client can set the 'transient' hint to bypass this. See the rules
|
||||
# section for how to disable this if necessary
|
||||
idle_threshold = 120
|
||||
|
||||
### Text ###
|
||||
|
||||
font = JetBrains Mono 11
|
||||
|
||||
# The spacing between lines. If the height is smaller than the
|
||||
# font height, it will get raised to the font height.
|
||||
line_height = 0
|
||||
|
||||
# Possible values are:
|
||||
# full: Allow a small subset of html markup in notifications:
|
||||
# <b>bold</b>
|
||||
# <i>italic</i>
|
||||
# <s>strikethrough</s>
|
||||
# <u>underline</u>
|
||||
#
|
||||
# For a complete reference see
|
||||
# <https://docs.gtk.org/Pango/pango_markup.html>.
|
||||
#
|
||||
# strip: This setting is provided for compatibility with some broken
|
||||
# clients that send markup even though it's not enabled on the
|
||||
# server. Dunst will try to strip the markup but the parsing is
|
||||
# simplistic so using this option outside of matching rules for
|
||||
# specific applications *IS GREATLY DISCOURAGED*.
|
||||
#
|
||||
# no: Disable markup parsing, incoming notifications will be treated as
|
||||
# plain text. Dunst will not advertise that it has the body-markup
|
||||
# capability if this is set as a global setting.
|
||||
#
|
||||
# It's important to note that markup inside the format option will be parsed
|
||||
# regardless of what this is set to.
|
||||
markup = full
|
||||
|
||||
# The format of the message. Possible variables are:
|
||||
# %a appname
|
||||
# %s summary
|
||||
# %b body
|
||||
# %i iconname (including its path)
|
||||
# %I iconname (without its path)
|
||||
# %p progress value if set ([ 0%] to [100%]) or nothing
|
||||
# %n progress value if set without any extra characters
|
||||
# %% Literal %
|
||||
# Markup is allowed
|
||||
format = "<b>%a - %s</b>\n%b"
|
||||
|
||||
# Alignment of the message text.
|
||||
# Possible values are "left", "center" and "right".
|
||||
alignment = left
|
||||
|
||||
# Vertical alignment of message text and icon.
|
||||
# Possible values are "top", "center" and "bottom".
|
||||
vertical_alignment = center
|
||||
|
||||
# Wrap longer sentences which don't fit into the horizonal size
|
||||
# of the noticication. If set to no, longer sententences will be truncated
|
||||
word_wrap = yes
|
||||
|
||||
# Show age of message if message is older than show_age_threshold
|
||||
# seconds.
|
||||
# Set to -1 to disable.
|
||||
show_age_threshold = 60
|
||||
|
||||
# Specify where to make an ellipsis in long lines.
|
||||
# Possible values are "start", "middle" and "end".
|
||||
ellipsize = middle
|
||||
|
||||
# Ignore newlines '\n' in notifications.
|
||||
ignore_newline = no
|
||||
|
||||
# Merge multiple notifications with the same content
|
||||
stack_duplicates = true
|
||||
|
||||
# Hide the count of merged notifications with the same content
|
||||
hide_duplicate_count = false
|
||||
|
||||
# Display indicators for URLs (U) and actions (A)
|
||||
show_indicators = yes
|
||||
|
||||
### Icons ###
|
||||
|
||||
# Recursive icon lookup. You can set a single theme, instead of having to
|
||||
# define all lookup paths.
|
||||
enable_recursive_icon_lookup = true
|
||||
|
||||
# Set icon theme (only used for recursive icon lookup)
|
||||
# You can also set multiple icon themes, with the leftmost one being used first.
|
||||
# icon_theme = "Adwaita, breeze"
|
||||
icon_theme = Papirus-Dark, Adwaita
|
||||
|
||||
# Align icons left/right/off
|
||||
icon_position = left
|
||||
|
||||
# Scale small icons up to this size, set to 0 to disable. Helpful
|
||||
# for e.g. small files or high-dpi screens. In case of conflict,
|
||||
# max_icon_size takes precedence over this.
|
||||
min_icon_size = 0
|
||||
|
||||
# Scale larger icons down to this size, set to 0 to disable
|
||||
max_icon_size = 32
|
||||
|
||||
# Paths to default icons (only necessary when not using recursive icon lookup)
|
||||
#icon_path = /usr/share/icons/hicolor/16x16/status/:/usr/share/icons/hicolor/16x16/devices/:/usr/share/icons/hicolor/16x16/apps/
|
||||
|
||||
### History ###
|
||||
|
||||
# Should a notification popped up from history be sticky or timeout
|
||||
# as if it would normally do.
|
||||
sticky_history = yes
|
||||
|
||||
# Maximum amount of notifications kept in history
|
||||
history_length = 20
|
||||
|
||||
### Misc/Advanced ###
|
||||
|
||||
# dmenu path
|
||||
dmenu = /usr/local/bin/dmenu -p dunst:
|
||||
|
||||
# Browser for opening urls in content menu
|
||||
browser = /usr/bin/xdg-open
|
||||
|
||||
# Always run rule-defined scripts, even if the notification is suppressed
|
||||
always_run_script = true
|
||||
|
||||
# Define the title of the windows spawned by dunst
|
||||
title = Dunst
|
||||
|
||||
# Define the class of the windows spawned by dunst
|
||||
class = Dunst
|
||||
|
||||
# Define the corner radius of the notification window
|
||||
# in pixel size. If the radius is 0, you have no rounded
|
||||
# corners.
|
||||
# The radius will be automatically lowered if it exceeds half of the
|
||||
# notification height to avoid clipping text and/or icons.
|
||||
corner_radius = 0
|
||||
|
||||
# Define which corners to round when drawing the window. If the corner radius
|
||||
# is set to 0 this option will be ignored.
|
||||
#
|
||||
# Comma-separated list of the corners. The accepted corner values are bottom-right,
|
||||
# bottom-left, top-right, top-left, top, bottom, left, right or all.
|
||||
corners = all
|
||||
|
||||
# Ignore the dbus closeNotification message.
|
||||
# Useful to enforce the timeout set by dunst configuration. Without this
|
||||
# parameter, an application may close the notification sent before the
|
||||
# user defined timeout.
|
||||
ignore_dbusclose = false
|
||||
|
||||
### Wayland ###
|
||||
# These settings are Wayland-specific. They have no effect when using X11
|
||||
|
||||
# Uncomment this if you want to let notications appear under fullscreen
|
||||
# applications (default: overlay)
|
||||
# layer = top
|
||||
|
||||
# Set this to true to use X11 output on Wayland.
|
||||
force_xwayland = false
|
||||
|
||||
### Legacy ###
|
||||
|
||||
# Use the Xinerama extension instead of RandR for multi-monitor support.
|
||||
# This setting is provided for compatibility with older nVidia drivers that
|
||||
# do not support RandR and using it on systems that support RandR is highly
|
||||
# discouraged.
|
||||
#
|
||||
# By enabling this setting dunst will not be able to detect when a monitor
|
||||
# is connected or disconnected which might break follow mode if the screen
|
||||
# layout changes.
|
||||
force_xinerama = false
|
||||
|
||||
### Mouse ###
|
||||
|
||||
# Defines list of actions for each mouse event
|
||||
# Possible values are:
|
||||
# * none: Don't do anything.
|
||||
# * do_action: Invoke the action determined by the action_name rule. If there is no
|
||||
# such action, open the context menu.
|
||||
# * open_url: If the notification has exactly one url, open it. If there are multiple
|
||||
# ones, open the context menu.
|
||||
# * close_current: Close current notification.
|
||||
# * close_all: Close all notifications.
|
||||
# * context: Open context menu for the notification.
|
||||
# * context_all: Open context menu for all notifications.
|
||||
# These values can be strung together for each mouse event, and
|
||||
# will be executed in sequence.
|
||||
mouse_left_click = do_action, open_url, close_current
|
||||
mouse_middle_click = context
|
||||
mouse_right_click = close_current
|
||||
|
||||
# Experimental features that may or may not work correctly. Do not expect them
|
||||
# to have a consistent behaviour across releases.
|
||||
[experimental]
|
||||
# Calculate the dpi to use on a per-monitor basis.
|
||||
# If this setting is enabled the Xft.dpi value will be ignored and instead
|
||||
# dunst will attempt to calculate an appropriate dpi value for each monitor
|
||||
# using the resolution and physical size. This might be useful in setups
|
||||
# where there are multiple screens with very different dpi values.
|
||||
per_monitor_dpi = false
|
||||
|
||||
[urgency_low]
|
||||
highlight = "#fe6c5a"
|
||||
background = "#1e2137fa"
|
||||
frame_color = "#27292c"
|
||||
foreground = "#ffffff"
|
||||
|
||||
timeout = 5
|
||||
|
||||
# Icon for notifications with low urgency, uncomment to enable
|
||||
#default_icon = /path/to/icon
|
||||
|
||||
[urgency_normal]
|
||||
highlight = "#fe6c5a"
|
||||
background = "#141c21fa"
|
||||
frame_color = "#27292c"
|
||||
foreground = "#ffffffff"
|
||||
|
||||
timeout = 10
|
||||
|
||||
# Icon for notifications with normal urgency, uncomment to enable
|
||||
#default_icon = /path/to/icon
|
||||
|
||||
[urgency_critical]
|
||||
highlight = "#fe6c5a"
|
||||
background = "#dd130ddd"
|
||||
frame_color = "#27292c"
|
||||
foreground = "#ffffffff"
|
||||
|
||||
timeout = 0
|
||||
override_pause_level = 60
|
||||
|
||||
icon = arbt
|
||||
|
||||
# Icon for notifications with critical urgency, uncomment to enable
|
||||
#icon = /path/to/icon
|
||||
|
||||
|
||||
# Every section that isn't one of the above is interpreted as a rules to
|
||||
# override settings for certain messages.
|
||||
#
|
||||
# Messages can be matched by
|
||||
# appname (discouraged, see desktop_entry)
|
||||
# body
|
||||
# category
|
||||
# desktop_entry
|
||||
# icon
|
||||
# match_transient
|
||||
# msg_urgency
|
||||
# stack_tag
|
||||
# summary
|
||||
#
|
||||
# and you can override the
|
||||
# background
|
||||
# foreground
|
||||
# format
|
||||
# frame_color
|
||||
# fullscreen
|
||||
# new_icon
|
||||
# set_stack_tag
|
||||
# set_transient
|
||||
# set_category
|
||||
# timeout
|
||||
# urgency
|
||||
# icon_position
|
||||
# skip_display
|
||||
# history_ignore
|
||||
# action_name
|
||||
# word_wrap
|
||||
# ellipsize
|
||||
# alignment
|
||||
# hide_text
|
||||
# override_pause_level
|
||||
#
|
||||
# Shell-like globbing will get expanded.
|
||||
#
|
||||
# Instead of the appname filter, it's recommended to use the desktop_entry filter.
|
||||
# GLib based applications export their desktop-entry name. In comparison to the appname,
|
||||
# the desktop-entry won't get localized.
|
||||
#
|
||||
# You can also allow a notification to appear even when paused. Notification will appear whenever notification's override_pause_level >= dunst's paused level.
|
||||
# This can be used to set partial pause modes, where more urgent notifications get through, but less urgent stay paused. To do that, you can override the following in the rules:
|
||||
# override_pause_level = X
|
||||
|
||||
# SCRIPTING
|
||||
# You can specify a script that gets run when the rule matches by
|
||||
# setting the "script" option.
|
||||
# The script will be called as follows:
|
||||
# script appname summary body icon urgency
|
||||
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
|
||||
#
|
||||
# NOTE: It might be helpful to run dunst -print in a terminal in order
|
||||
# to find fitting options for rules.
|
||||
|
||||
# Disable the transient hint so that idle_threshold cannot be bypassed from the
|
||||
# client
|
||||
#[transient_disable]
|
||||
# match_transient = yes
|
||||
# set_transient = no
|
||||
#
|
||||
# Make the handling of transient notifications more strict by making them not
|
||||
# be placed in history.
|
||||
#[transient_history_ignore]
|
||||
# match_transient = yes
|
||||
# history_ignore = yes
|
||||
|
||||
# fullscreen values
|
||||
# show: show the notifications, regardless if there is a fullscreen window opened
|
||||
# delay: displays the new notification, if there is no fullscreen window active
|
||||
# If the notification is already drawn, it won't get undrawn.
|
||||
# pushback: same as delay, but when switching into fullscreen, the notification will get
|
||||
# withdrawn from screen again and will get delayed like a new notification
|
||||
#[fullscreen_delay_everything]
|
||||
# fullscreen = delay
|
||||
#[fullscreen_show_critical]
|
||||
# msg_urgency = critical
|
||||
# fullscreen = show
|
||||
|
||||
#[espeak]
|
||||
# summary = "*"
|
||||
# script = dunst_espeak.sh
|
||||
|
||||
#[script-test]
|
||||
# summary = "*script*"
|
||||
# script = dunst_test.sh
|
||||
|
||||
#[ignore]
|
||||
# # This notification will not be displayed
|
||||
# summary = "foobar"
|
||||
# skip_display = true
|
||||
|
||||
#[history-ignore]
|
||||
# # This notification will not be saved in history
|
||||
# summary = "foobar"
|
||||
# history_ignore = yes
|
||||
|
||||
#[skip-display]
|
||||
# # This notification will not be displayed, but will be included in the history
|
||||
# summary = "foobar"
|
||||
# skip_display = yes
|
||||
|
||||
#[signed_on]
|
||||
# appname = Pidgin
|
||||
# summary = "*signed on*"
|
||||
# urgency = low
|
||||
#
|
||||
#[signed_off]
|
||||
# appname = Pidgin
|
||||
# summary = *signed off*
|
||||
# urgency = low
|
||||
#
|
||||
#[says]
|
||||
# appname = Pidgin
|
||||
# summary = *says*
|
||||
# urgency = critical
|
||||
#
|
||||
#[twitter]
|
||||
# appname = Pidgin
|
||||
# summary = *twitter.com*
|
||||
# urgency = normal
|
||||
#
|
||||
#[stack-volumes]
|
||||
# appname = "some_volume_notifiers"
|
||||
# set_stack_tag = "volume"
|
||||
#
|
||||
# vim: ft=cfg
|
1
home/.config/electron-flags.conf
Normal file
1
home/.config/electron-flags.conf
Normal file
|
@ -0,0 +1 @@
|
|||
--ozone-platform-hint=auto
|
|
@ -1,43 +0,0 @@
|
|||
$rosewater: #f5e0dc;
|
||||
$flamingo: #f2cdcd;
|
||||
$pink: #f5c2e7;
|
||||
$mauve: #cba6f7;
|
||||
$red: #f38ba8;
|
||||
$maroon: #eba0ac;
|
||||
$peach: #fab387;
|
||||
$yellow: #f9e2af;
|
||||
$gold: #efcb10;
|
||||
$green: #a6e3a1;
|
||||
$lime: #78db32;
|
||||
$teal: #94e2d5;
|
||||
$sky: #89dceb;
|
||||
$sapphire: #74c7ec;
|
||||
$blue: #89b4fa;
|
||||
$lavender: #b4befe;
|
||||
$orange: #ffa500;
|
||||
|
||||
$text: #cdd6f4;
|
||||
$subtext1: #bac2de;
|
||||
$subtext0: #a6adc8;
|
||||
$overlay2: #9399b2;
|
||||
$overlay1: #7f849c;
|
||||
$overlay0: #6c7086;
|
||||
|
||||
$surface2: #585b70;
|
||||
$surface1: #45475a;
|
||||
$surface0: #313244;
|
||||
|
||||
$base-a: rgba(30, 30, 40, 0.65);
|
||||
$base: rgba(30, 30, 40, 1);
|
||||
$base1-a: rgba(49, 50, 68, 0.85);
|
||||
$base1: rgba(49, 50, 68, 1);
|
||||
$mantle: #181825;
|
||||
$crust: #11111b;
|
||||
|
||||
$fg: $text;
|
||||
$bg-a: $base-a;
|
||||
$bg: $base;
|
||||
$bg1: $base1;
|
||||
$bg1-a: $base1-a;
|
||||
$border: #28283d;
|
||||
$shadow: $crust;
|
|
@ -1,55 +0,0 @@
|
|||
@keyframes blink {
|
||||
0%{
|
||||
opacity: 0;
|
||||
}
|
||||
50%{
|
||||
opacity: 0.7;
|
||||
}
|
||||
100%{
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
// .unplugged.low {
|
||||
// color: #0000ff;
|
||||
// }
|
||||
|
||||
.battery {
|
||||
|
||||
.icon, .icon label {
|
||||
font-family: "Material Symbols Outlined";
|
||||
|
||||
.extra, .extra label {
|
||||
font-family: "Font Awesome 6 Free";
|
||||
}
|
||||
}
|
||||
|
||||
.critical {
|
||||
.unplugged {
|
||||
color: #f00;
|
||||
.extra { animation: blink 1.2s linear infinite; }
|
||||
}
|
||||
|
||||
.plugged {
|
||||
.icon { color: $orange }
|
||||
.extra { color: $green; }
|
||||
}
|
||||
}
|
||||
|
||||
.normal {
|
||||
.unplugged {
|
||||
.icon { color: $orange }
|
||||
}
|
||||
.plugged {
|
||||
.icon { color: $green; }
|
||||
}
|
||||
}
|
||||
|
||||
.full {
|
||||
.icon { color: $green; }
|
||||
.extra { color: $lime; }
|
||||
}
|
||||
|
||||
.extra { margin-right: 5px; }
|
||||
.icon { margin-right: 5px; }
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
.bitcoin {
|
||||
.icon { margin-right: 6px; color: $gold; }
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
.clock {
|
||||
// color: $sapphire;
|
||||
.icon { margin-right: 6px; color: $sapphire; }
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
.cpu {
|
||||
.icon { color: $lime; }
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
.gammarelay {
|
||||
.icon {
|
||||
color: $peach;
|
||||
margin-left: 2px;
|
||||
margin-right: 2px;
|
||||
}
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
.kernel {
|
||||
.icon { color: $lavender; }
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
.memory {
|
||||
.icon { color: $maroon; }
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
.uptime {
|
||||
.icon { color: $green; }
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
.volume {
|
||||
.icon { color: $peach; }
|
||||
.speaker {
|
||||
.icon {
|
||||
margin-left: 8px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
.window_name {
|
||||
font-family: "Monaspace Krypton";
|
||||
font-size: 1.4rem;
|
||||
}
|
|
@ -1,29 +0,0 @@
|
|||
.workspaces {
|
||||
background-color: $bg1-a;
|
||||
border-radius: 25px;
|
||||
|
||||
.icon,
|
||||
.icon label {
|
||||
font-family: "JetBrainsMono Nerd Font", "Material Symbols Outlined";
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
.value {
|
||||
margin: 0 10px;
|
||||
}
|
||||
|
||||
.focused {
|
||||
// text-decoration: underline;
|
||||
// text-decoration-color: red;
|
||||
// text-decoration-style: double;
|
||||
color: $fg;
|
||||
}
|
||||
|
||||
.active {
|
||||
color: #bbb;
|
||||
}
|
||||
|
||||
.inactive {
|
||||
color: #555;
|
||||
}
|
||||
}
|
|
@ -1,32 +0,0 @@
|
|||
.calendar-win {
|
||||
@include window;
|
||||
background-color: $bg;
|
||||
border: 1px solid $border;
|
||||
color: $fg;
|
||||
padding: .2em;
|
||||
}
|
||||
|
||||
calendar {
|
||||
padding: 5px;
|
||||
|
||||
:selected {
|
||||
color: $mauve;
|
||||
}
|
||||
|
||||
.header {
|
||||
color: $subtext1;
|
||||
}
|
||||
|
||||
.highlight {
|
||||
color: $maroon;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.button {
|
||||
color: $sapphire;
|
||||
}
|
||||
|
||||
:indeterminate {
|
||||
color: $overlay0;
|
||||
}
|
||||
}
|
|
@ -1,46 +0,0 @@
|
|||
.radio-menu-box {
|
||||
@include window;
|
||||
background-color: $bg;
|
||||
border: 1px solid $border;
|
||||
color: $text;
|
||||
font-family: "Jost *", "JetBrains Mono", "Font Awesome 6 Free", sans-serif;
|
||||
|
||||
.icon, .icon label {
|
||||
font-family: "Material Symbols Outlined";
|
||||
font-size: 1.15rem;
|
||||
}
|
||||
|
||||
.text-row {
|
||||
margin: 1rem 1.5rem 0;
|
||||
|
||||
.title { font-size: 1.2rem; }
|
||||
}
|
||||
|
||||
.element-row {
|
||||
margin: .5rem .7rem;
|
||||
|
||||
label {
|
||||
font-size: 1rem;
|
||||
margin: 0 .1rem;
|
||||
}
|
||||
}
|
||||
|
||||
.element {
|
||||
@include rounding;
|
||||
background-color: $surface0;
|
||||
margin: .3rem;
|
||||
|
||||
button {
|
||||
@include rounding;
|
||||
padding: .5rem;
|
||||
|
||||
label {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background-color: $overlay0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,114 +0,0 @@
|
|||
@import "css/colors";
|
||||
|
||||
@mixin rounding {
|
||||
border-radius: 16px;
|
||||
}
|
||||
|
||||
@mixin window {
|
||||
border: 1px solid $border;
|
||||
box-shadow: 0 2px 3px $shadow;
|
||||
margin: 5px 5px 10px;
|
||||
@include rounding;
|
||||
}
|
||||
|
||||
* {
|
||||
all: unset;
|
||||
transition: 200ms ease;
|
||||
}
|
||||
|
||||
@import "css/windows/calendar";
|
||||
@import "css/windows/radio_menu";
|
||||
@import "css/modules/clock";
|
||||
@import "css/modules/volume";
|
||||
@import "css/modules/bitcoin";
|
||||
@import "css/modules/cpu";
|
||||
@import "css/modules/memory";
|
||||
@import "css/modules/uptime";
|
||||
@import "css/modules/kernel";
|
||||
@import "css/modules/battery";
|
||||
@import "css/modules/workspaces";
|
||||
@import "css/modules/gammarelay";
|
||||
@import "css/modules/window_name";
|
||||
|
||||
.bar {
|
||||
background-color: $bg-a;
|
||||
color: $fg;
|
||||
|
||||
font-family: "JetBrains Mono";
|
||||
|
||||
label {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
// TODO: Use percentages (for some reason it fails now)
|
||||
min-width: 1900px;
|
||||
}
|
||||
|
||||
tooltip {
|
||||
background: $bg;
|
||||
border: 1px solid $border;
|
||||
border-radius: 8px;
|
||||
|
||||
label {
|
||||
font-size: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
.icon,
|
||||
.icon label {
|
||||
font-family: "Font Awesome 6 Free", "Material Symbols Outlined";
|
||||
}
|
||||
|
||||
.module {
|
||||
margin: 0 5px;
|
||||
}
|
||||
|
||||
.separ {
|
||||
color: $surface0;
|
||||
font-size: 1.5rem;
|
||||
padding-bottom: 2px;
|
||||
}
|
||||
|
||||
scale trough {
|
||||
background-color: $bg1-a;
|
||||
border-radius: 24px;
|
||||
margin: 0 1rem;
|
||||
min-height: 10px;
|
||||
min-width: 70px;
|
||||
}
|
||||
|
||||
.tray {
|
||||
margin-right: 12px;
|
||||
}
|
||||
|
||||
menu {
|
||||
background: $bg1;
|
||||
border-bottom-left-radius: 12px;
|
||||
border-bottom-right-radius: 12px;
|
||||
border: 2px solid rgba($crust, 0.5);
|
||||
padding: 0.5rem 0;
|
||||
}
|
||||
|
||||
menu menu {
|
||||
border-top-left-radius: 12px;
|
||||
border-top-right-radius: 12px;
|
||||
}
|
||||
|
||||
menu > menuitem {
|
||||
padding: 0.4em 1rem;
|
||||
background: transparent;
|
||||
transition: 0.2s ease background;
|
||||
}
|
||||
|
||||
menu > menuitem:hover {
|
||||
background: rgba($overlay1, 0.4);
|
||||
}
|
||||
|
||||
menu > menuitem check:checked ~ label {
|
||||
color: $bg1-a;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
menubar > menuitem {
|
||||
margin-left: 0.6rem;
|
||||
}
|
|
@ -1,94 +0,0 @@
|
|||
(defvar terminal "kitty -e")
|
||||
|
||||
(include "./modules/variables.yuck")
|
||||
|
||||
(include "./modules/clock.yuck")
|
||||
(include "./modules/volume.yuck")
|
||||
(include "./modules/bitcoin.yuck")
|
||||
(include "./modules/cpu.yuck")
|
||||
(include "./modules/memory.yuck")
|
||||
(include "./modules/uptime.yuck")
|
||||
; (include "./modules/kernel.yuck")
|
||||
(include "./modules/battery.yuck")
|
||||
(include "./modules/window_name.yuck")
|
||||
(include "./modules/workspaces.yuck")
|
||||
(include "./modules/gammarelay.yuck")
|
||||
|
||||
(include "./windows/calendar.yuck")
|
||||
(include "./windows/radio-menu.yuck")
|
||||
|
||||
(defwidget sep []
|
||||
(label :class "separ module" :text "|"))
|
||||
|
||||
(defwidget left []
|
||||
(box
|
||||
:space-evenly false
|
||||
:halign "start"
|
||||
(gammarelay_module)
|
||||
(sep)
|
||||
(window_name_module)
|
||||
))
|
||||
|
||||
(defwidget right []
|
||||
(box
|
||||
:space-evenly false
|
||||
:halign "end"
|
||||
; (kernel_module)
|
||||
; (sep)
|
||||
(volume_module)
|
||||
(sep)
|
||||
(battery_module)
|
||||
(sep)
|
||||
(bitcoin_module)
|
||||
(sep)
|
||||
(cpu_module)
|
||||
(sep)
|
||||
(memory_module)
|
||||
(sep)
|
||||
; (uptime_module)
|
||||
; (sep)
|
||||
(clock_module)
|
||||
(sep)
|
||||
(systray
|
||||
:pack-direction "left"
|
||||
:class "module tray"
|
||||
)
|
||||
))
|
||||
|
||||
(defwidget center []
|
||||
(box
|
||||
:space-evenly false
|
||||
:halign "center"
|
||||
(workspaces_module)
|
||||
))
|
||||
|
||||
(defwidget bar []
|
||||
(centerbox
|
||||
:class "bar"
|
||||
:orientation "horizontal"
|
||||
(left)
|
||||
(center)
|
||||
(right)))
|
||||
|
||||
(defwindow bar0
|
||||
:monitor 0
|
||||
:geometry (geometry :x "0%"
|
||||
:y "0%"
|
||||
:width: "100%"
|
||||
:height "32px"
|
||||
:anchor "top center")
|
||||
:stacking "fg"
|
||||
:exclusive true
|
||||
(bar))
|
||||
|
||||
|
||||
(defwindow bar1
|
||||
:monitor 1
|
||||
:geometry (geometry :x "0%"
|
||||
:y "0%"
|
||||
:width: "100%"
|
||||
:height "32px"
|
||||
:anchor "top center")
|
||||
:stacking "fg"
|
||||
:exclusive true
|
||||
(bar))
|
|
@ -1,24 +0,0 @@
|
|||
(defwidget battery_module []
|
||||
(eventbox
|
||||
:class "module battery"
|
||||
|
||||
(box
|
||||
:class {battery.critical ? "critical" : battery.full ? "full" : "normal"}
|
||||
(box
|
||||
:space-evenly false
|
||||
:class {battery.plugged ? "plugged" : "unplugged" }
|
||||
|
||||
(box
|
||||
:class "icon"
|
||||
:space-evenly false
|
||||
|
||||
(label
|
||||
:class "extra"
|
||||
:text {battery.extra_icon})
|
||||
(label
|
||||
:text {battery.capacity_icon}))
|
||||
(label
|
||||
:class "value"
|
||||
:text "${battery.percent}%"
|
||||
)
|
||||
))))
|
|
@ -1,14 +0,0 @@
|
|||
(defwidget bitcoin_module []
|
||||
(eventbox
|
||||
:onclick "bitcoin | xargs -I{} ${EWW_CMD} update bitcoin={}"
|
||||
:class "module bitcoin"
|
||||
|
||||
(box
|
||||
:space-evenly false
|
||||
|
||||
(label
|
||||
:class "icon"
|
||||
:text "")
|
||||
(label :text {bitcoin}))
|
||||
)
|
||||
)
|
|
@ -1,18 +0,0 @@
|
|||
(defwidget clock_module []
|
||||
|
||||
(eventbox
|
||||
:tooltip {time.day}
|
||||
:class "module clock"
|
||||
:onclick "${EWW_CMD} open --toggle calendar"
|
||||
|
||||
(box
|
||||
:space-evenly false
|
||||
|
||||
(label
|
||||
:class "icon"
|
||||
:text "")
|
||||
(label
|
||||
:class "value"
|
||||
:text "${time.date} ${time.hour}:${time.minute}")
|
||||
)))
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
(defwidget cpu_module []
|
||||
(eventbox
|
||||
:class "module cpu"
|
||||
|
||||
(box
|
||||
:space-evenly false
|
||||
|
||||
(label
|
||||
:class "icon"
|
||||
:text " ")
|
||||
(label
|
||||
:class "value"
|
||||
:text "${round(EWW_CPU.avg,2)}%"
|
||||
)
|
||||
)))
|
|
@ -1,41 +0,0 @@
|
|||
(defwidget gammarelay_module []
|
||||
(box
|
||||
:class "module gammarelay"
|
||||
|
||||
(eventbox
|
||||
:onscroll "scripts/gammarelay temperature scroll {}"
|
||||
:onclick "scripts/gammarelay temperature set toggle"
|
||||
:onrightclick "scripts/gammarelay temperature set off"
|
||||
:tooltip "${temperature} K"
|
||||
:class "temperature"
|
||||
(box
|
||||
(label
|
||||
:class "icon"
|
||||
:text "")
|
||||
))
|
||||
|
||||
(eventbox
|
||||
:onscroll "scripts/gammarelay brightness scroll {}"
|
||||
:onclick "scripts/gammarelay brightness set toggle"
|
||||
:onrightclick "scripts/gammarelay brightness set off"
|
||||
:tooltip "${brightness}%"
|
||||
:class "brightness"
|
||||
(box
|
||||
(label
|
||||
:class "icon"
|
||||
:text "")
|
||||
))
|
||||
|
||||
; (eventbox
|
||||
; :onscroll "scripts/gammarelay gamma scroll {}"
|
||||
; :onclick "scripts/gammarelay gamma set toggle"
|
||||
; :onrightclick "scripts/gammarelay gamma set off"
|
||||
; :tooltip "${gamma}%"
|
||||
; :class "gamma"
|
||||
; :valign "top"
|
||||
; (box
|
||||
; (label
|
||||
; :class "icon"
|
||||
; :text "γ")
|
||||
; ))
|
||||
))
|
|
@ -1,15 +0,0 @@
|
|||
(defwidget kernel_module []
|
||||
(eventbox
|
||||
:class "module kernel"
|
||||
|
||||
(box
|
||||
:space-evenly false
|
||||
|
||||
(label
|
||||
:class "icon"
|
||||
:text " ")
|
||||
(label
|
||||
:class "value"
|
||||
:text {kernel}
|
||||
)
|
||||
)))
|
|
@ -1,15 +0,0 @@
|
|||
(defwidget memory_module []
|
||||
(eventbox
|
||||
:class "module memory"
|
||||
|
||||
(box
|
||||
:space-evenly false
|
||||
|
||||
(label
|
||||
:class "icon"
|
||||
:text " ")
|
||||
(label
|
||||
:class "value"
|
||||
:text "${round(EWW_RAM.used_mem / 1000000000,1)}G: ${round(EWW_RAM.used_mem_perc,0)}%"
|
||||
)
|
||||
)))
|
|
@ -1,3 +0,0 @@
|
|||
(deflisten nightlight
|
||||
:initial `{"running": false,"temperature": 0}`
|
||||
`scripts/nightlight --state`)
|
|
@ -1,15 +0,0 @@
|
|||
(defwidget uptime_module []
|
||||
(eventbox
|
||||
:class "module uptime"
|
||||
|
||||
(box
|
||||
:space-evenly false
|
||||
|
||||
(label
|
||||
:class "icon"
|
||||
:text " ")
|
||||
(label
|
||||
:class "value"
|
||||
:text {uptime}
|
||||
)
|
||||
)))
|
|
@ -1,60 +0,0 @@
|
|||
(defpoll time
|
||||
:interval "5s"
|
||||
:initial '{"date": "01 Jan", "hour": "00", "minute": "00", "day": "Monday"}'
|
||||
`date +'{"date": "%d %b", "hour": "%H", "minute": "%M", "day": "%A"}'`)
|
||||
|
||||
(deflisten volume
|
||||
:initial '{ "speaker_vol": "100", "speaker_mute": false, "speaker_icon": "", "microphone_mute": false, "microphone_vol": "100", "microphone_icon": "" }'
|
||||
`scripts/volume loop`)
|
||||
|
||||
(deflisten window_name
|
||||
:initial `{"class":"","name":"","formatted_name":""}`
|
||||
`scripts/window_name`)
|
||||
|
||||
(deflisten workspaces
|
||||
:initial `[{"id": 1,"name": "N/A","monitor": "N/A","windows": 1,"hasfullscreen": false,"lastwindow": "N/A","lastwindowtitle": "N/A","format_name": "N/A","active": true}]`
|
||||
`scripts/workspaces --loop`)
|
||||
|
||||
(defpoll battery
|
||||
:interval "1s"
|
||||
:initial '{"percent":"0","plugged":"false","status":"N/A","capacity_icon":"","extra_icon":"","manufacturer":"N/A","model_name":"N/A","technology":"N/A","energy_now":"0","enerfy_full":"0","enerfy_full_design":"0","cycle_count":"0","critical":"false","full":"false"}'
|
||||
`scripts/battery`)
|
||||
|
||||
(defpoll uptime
|
||||
:interval "1m"
|
||||
:initial 'N/A'
|
||||
`uptime -p | sed \\
|
||||
-e 's/^up //' \\
|
||||
-e 's/ years\\?,\\?/y/' \\
|
||||
-e 's/ months\\?,\\?/m/' \\
|
||||
-e 's/ weeks\\?,\\?/w/' \\
|
||||
-e 's/ days\\?,\\?/d/' \\
|
||||
-e 's/ hours\\?,\\?/h/' \\
|
||||
-e 's/ minutes\\?,\\?/m/' \\
|
||||
-e 's/ seconds\\?,\\?/s/' \\
|
||||
| cut -d' ' -f-2`)
|
||||
|
||||
(defpoll bitcoin
|
||||
:interval "5m"
|
||||
:initial "$N/A"
|
||||
`bitcoin`)
|
||||
|
||||
; TODO: Figure out how to store this one-time
|
||||
(defpoll kernel
|
||||
:interval "10000h"
|
||||
:initial 'N/A'
|
||||
; `uname -r | sed -r 's/(.+)-arch(.+)/\\1/'`
|
||||
`uname -r`)
|
||||
|
||||
(deflisten temperature `scripts/gammarelay temperature watch`)
|
||||
(deflisten brightness `scripts/gammarelay brightness watch`)
|
||||
(deflisten gamma `scripts/gammarelay gamma watch`)
|
||||
|
||||
(defpoll net
|
||||
:interval "3s"
|
||||
:initial '{"essid":"N/A","icon":"","state":"unknown","signal":"0"}'
|
||||
`scripts/net status`)
|
||||
(defpoll bluetooth
|
||||
:interval "3s"
|
||||
:initial '{"icon":"","status":"unknown","name":"","mac":"","battery":""}'
|
||||
`scripts/bluetooth status`)
|
|
@ -1,40 +0,0 @@
|
|||
(defvar mic_rev false)
|
||||
|
||||
(defwidget volume_module []
|
||||
(box
|
||||
:class "module volume"
|
||||
:space-evenly false
|
||||
|
||||
(eventbox
|
||||
:onscroll "scripts/volume setvol SOURCE 0.5 {}"
|
||||
:onclick "scripts/volume togglemute SOURCE"
|
||||
:onrightclick "${terminal} pulsemixer &"
|
||||
:onhover "${EWW_CMD} update mic_rev=true"
|
||||
:onhoverlost "${EWW_CMD} update mic_rev=false"
|
||||
:class "microphone"
|
||||
(box
|
||||
(label
|
||||
:class "icon"
|
||||
:text {volume.microphone_icon})
|
||||
(label
|
||||
:visible {mic_rev && !volume.microphone_mute}
|
||||
:class "value"
|
||||
:text "${volume.microphone_vol}%")
|
||||
))
|
||||
|
||||
(eventbox
|
||||
:onscroll "scripts/volume setvol SINK 0.5 {}"
|
||||
:onclick "scripts/volume togglemute SINK"
|
||||
:onrightclick "${terminal} pulsemixer &"
|
||||
:class "speaker"
|
||||
(box
|
||||
(label
|
||||
:class "icon"
|
||||
:text {volume.speaker_icon})
|
||||
(label
|
||||
:visible {!volume.speaker_mute}
|
||||
:class "value"
|
||||
:text "${volume.speaker_vol}%")
|
||||
))
|
||||
|
||||
))
|
|
@ -1,11 +0,0 @@
|
|||
; Consider making the window name clickable, opening up a full window that's showing
|
||||
; the selected window details (class, unformatted name, and perhaps even more, like
|
||||
; xwayland status, ...)
|
||||
(defwidget window_name_module []
|
||||
(box
|
||||
:class "module window_name"
|
||||
|
||||
(label
|
||||
:class "value"
|
||||
:text "${window_name.formatted_name}")
|
||||
))
|
|
@ -1,21 +0,0 @@
|
|||
; (defwidget sep []
|
||||
; (label :class "separ module" :text "|"))
|
||||
|
||||
|
||||
; Consider making the window name clickable, opening up a full window that's showing
|
||||
; the selected window details (class, unformatted name, and perhaps even more, like
|
||||
; xwayland status, ...)
|
||||
(defwidget workspaces_module []
|
||||
(box
|
||||
:class "module workspaces"
|
||||
|
||||
(for workspace in workspaces
|
||||
(eventbox
|
||||
:class {workspace.active ? 'focused' : workspace.windows > 0 ? 'active' : 'inactive'}
|
||||
:onclick `scripts/workspaces --switch ${workspace.id}`
|
||||
|
||||
(label
|
||||
:class "value icon"
|
||||
:text {workspace.format_name}))
|
||||
)
|
||||
))
|
|
@ -1,11 +0,0 @@
|
|||
[flake8]
|
||||
max-line-length=119
|
||||
extend-ignore=E203
|
||||
extend-select=B902,B904
|
||||
exclude=.venv,.git,.cache
|
||||
ignore=
|
||||
ANN002, # *args annotation
|
||||
ANN003, # **kwargs annotation
|
||||
ANN101, # self param annotation
|
||||
ANN102, # cls param annotation
|
||||
ANN204, # return type annotation for special methods
|
|
@ -1,85 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# shellcheck source=include
|
||||
source "./scripts/include"
|
||||
|
||||
# $BATTERY and $ADAPTER env vars can be set manually, being the names of the
|
||||
# devices (in /sys/class/power_supply/) i.e. BATTERY=BAT0 ADAPTER=ADP0
|
||||
# or, if left unset, they will be automatically picked.
|
||||
|
||||
CAPACITY_ICONS=("" "" "" "" "" "" "" "" "" "")
|
||||
CHARGING_ICON=""
|
||||
DISCHARGING_ICON=""
|
||||
FULL_ICON="" # Plugged in, but no longer charging (fully charged)
|
||||
CRITICAL_ICON=""
|
||||
CRITICAL_PERCENTAGE=15
|
||||
|
||||
if [ -z "$BATTERY" ]; then
|
||||
# shellcheck disable=SC2010
|
||||
BATTERY="$(\ls -t /sys/class/power_supply | grep "BAT" | head -n 1)"
|
||||
fi
|
||||
|
||||
if [ -z "$ADAPTER" ]; then
|
||||
# shellcheck disable=SC2010
|
||||
ADAPTER="$(\ls -t /sys/class/power_supply | grep -E "ADP|AC" | head -n 1)"
|
||||
fi
|
||||
|
||||
get_bat_info() {
|
||||
cat /sys/class/power_supply/"$BATTERY"/"$1"
|
||||
}
|
||||
|
||||
get_adp_info() {
|
||||
cat /sys/class/power_supply/"$ADAPTER"/"$1"
|
||||
}
|
||||
|
||||
manufacturer="$(get_bat_info manufacturer)"
|
||||
model_name="$(get_bat_info model_name)"
|
||||
technology="$(get_bat_info technology)"
|
||||
energy_now="$(get_bat_info energy_now)"
|
||||
energy_full="$(get_bat_info energy_full)"
|
||||
energy_full_design="$(get_bat_info energy_full_design)"
|
||||
cycle_count="$(get_bat_info cycle_count)"
|
||||
|
||||
capacity="$(get_bat_info capacity)"
|
||||
status="$(get_bat_info status)"
|
||||
[ "$(get_adp_info online)" -eq 1 ] && adp_connected="true" || adp_connected="false"
|
||||
|
||||
# Quick overrides to showcase how battery works
|
||||
# capacity=100
|
||||
# adp_connected="true"
|
||||
# status="Charging"
|
||||
# status="Not charging"
|
||||
# status="Discharging"
|
||||
|
||||
full="false"
|
||||
capacity_icon="$(pick_icon "$capacity" 0 100 "${CAPACITY_ICONS[@]}")"
|
||||
|
||||
if [ "$status" = "Not charging" ] || [ "$status" = "Full" ] && [ "$adp_connected" = "true" ]; then
|
||||
extra_icon="$FULL_ICON"
|
||||
full="true"
|
||||
elif [ "$status" = "Discharging" ] && [ "$capacity" -le "$CRITICAL_PERCENTAGE" ]; then
|
||||
extra_icon="$CRITICAL_ICON"
|
||||
elif [ "$status" = "Discharging" ]; then
|
||||
extra_icon="$DISCHARGING_ICON"
|
||||
elif [ "$status" = "Charging" ]; then
|
||||
extra_icon="$CHARGING_ICON"
|
||||
fi
|
||||
|
||||
[ "$capacity" -le "$CRITICAL_PERCENTAGE" ] && critical="true" || critical="false"
|
||||
|
||||
jq -n -c --monochrome-output \
|
||||
--arg percent "$capacity" \
|
||||
--arg plugged "$adp_connected" \
|
||||
--arg status "$status" \
|
||||
--arg capacity_icon "$capacity_icon" \
|
||||
--arg extra_icon "$extra_icon" \
|
||||
--arg manufacturer "$manufacturer" \
|
||||
--arg model_name "$model_name" \
|
||||
--arg technology "$technology" \
|
||||
--arg energy_now "$energy_now" \
|
||||
--arg energy_full "$energy_full" \
|
||||
--arg energy_full_design "$energy_full_design" \
|
||||
--arg cycle_count "$cycle_count" \
|
||||
--arg critical "$critical" \
|
||||
--arg full "$full" \
|
||||
'$ARGS.named'
|
|
@ -1,85 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
ICON_IDLE=""
|
||||
ICON_CONNECTED=""
|
||||
ICON_OFF=""
|
||||
|
||||
toggle() {
|
||||
status=$(rfkill -J | jq -r '.rfkilldevices[] | select(.type == "bluetooth") | .soft' | head -1)
|
||||
|
||||
if [ "$status" = "unblocked" ]; then
|
||||
rfkill block bluetooth
|
||||
else
|
||||
rfkill unblock bluetooth
|
||||
if ! systemctl -q is-active bluetooth.service; then
|
||||
# This will use polkit for privillege elevation
|
||||
systemctl start bluetooth
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
get_report() {
|
||||
status=$(rfkill -J | jq -r '.rfkilldevices[] | select(.type == "bluetooth") | .soft' | head -1)
|
||||
if [ "$status" = "blocked" ] || ! systemctl -q is-active bluetooth.service || ! command -v bluetoothctl >/dev/null 2>&1; then
|
||||
jq -n -c --monochrome-output \
|
||||
--arg icon "$ICON_OFF" \
|
||||
--arg status "unknown" \
|
||||
--arg name "" \
|
||||
--arg mac "" \
|
||||
--arg battery "" \
|
||||
'$ARGS.named'
|
||||
|
||||
return
|
||||
fi
|
||||
|
||||
status="$(bluetoothctl show)"
|
||||
|
||||
powered="$(echo "$status" | grep Powered | cut -d' ' -f 2-)"
|
||||
if [ "$powered" != "yes" ]; then
|
||||
jq -n -c --monochrome-output \
|
||||
--arg icon "$ICON_OFF" \
|
||||
--arg status "unpowered" \
|
||||
--arg name "" \
|
||||
--arg mac "" \
|
||||
--arg battery "" \
|
||||
'$ARGS.named'
|
||||
|
||||
return
|
||||
fi
|
||||
|
||||
status="$(bluetoothctl info)"
|
||||
if [ "$status" == "Missing device address argument" ]; then
|
||||
jq -n -c --monochrome-output \
|
||||
--arg icon "$ICON_IDLE" \
|
||||
--arg status "idle" \
|
||||
--arg name "" \
|
||||
--arg mac "" \
|
||||
--arg battery "" \
|
||||
'$ARGS.named'
|
||||
|
||||
return
|
||||
fi
|
||||
|
||||
name="$(echo "$status" | grep Name | cut -d' ' -f 2-)"
|
||||
mac="$(echo "$status" | head -1 | awk '{print $2}' | tr ':' '_')"
|
||||
|
||||
if [ "$(echo "$status" | grep Percentage)" != "" ] && command -v upower >/dev/null 2>&1; then
|
||||
battery="$(upower -i /org/freedesktop/UPower/devices/headset_dev_"$mac" | grep percentage | awk '{print $2}' | cut -f 1 -d '%')%"
|
||||
else
|
||||
battery=""
|
||||
fi
|
||||
|
||||
jq -n -c --monochrome-output \
|
||||
--arg icon "$ICON_CONNECTED" \
|
||||
--arg status "connected" \
|
||||
--arg name "$name" \
|
||||
--arg mac "$mac" \
|
||||
--arg battery "$battery" \
|
||||
'$ARGS.named'
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
"status") get_report ;;
|
||||
"toggle") toggle ;;
|
||||
*) >&2 echo "Invalid usage, argument '$1' not recognized."; exit 1 ;;
|
||||
esac
|
|
@ -1,82 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
if [ "$1" = "temperature" ]; then
|
||||
watch_cmd="{t}"
|
||||
update_cmd="UpdateTemperature"
|
||||
update_signature="n"
|
||||
set_cmd="Temperature"
|
||||
set_signature="q"
|
||||
default_val=6500
|
||||
click_val=4500
|
||||
scroll_change=100
|
||||
cmp_op="<"
|
||||
|
||||
elif [ "$1" = "brightness" ]; then
|
||||
watch_cmd="{bp}"
|
||||
update_cmd="UpdateBrightness"
|
||||
update_signature="d"
|
||||
set_cmd="Brightness"
|
||||
set_signature="d"
|
||||
default_val=1
|
||||
click_val=0.8
|
||||
scroll_change=0.02
|
||||
cmp_op="<"
|
||||
|
||||
elif [ "$1" = "gamma" ]; then
|
||||
watch_cmd="{g}"
|
||||
update_cmd="UpdateGamma"
|
||||
update_signature="d"
|
||||
set_cmd="Gamma"
|
||||
set_signature="d"
|
||||
default_val=1
|
||||
click_val=1.1
|
||||
scroll_change=0.02
|
||||
cmp_op=">"
|
||||
|
||||
else
|
||||
>&2 echo "Invalid option, first argument must be one of: temperature, brightness, gamma"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$2" = "watch" ]; then
|
||||
exec wl-gammarelay-rs watch "$watch_cmd"
|
||||
|
||||
elif [ "$2" = "get" ]; then
|
||||
exec busctl --user get-property rs.wl-gammarelay / rs.wl.gammarelay "$set_cmd" | cut -d' ' -f2
|
||||
|
||||
elif [ "$2" = "scroll" ]; then
|
||||
if [ "$3" = "up" ]; then
|
||||
sign="+"
|
||||
elif [ "$3" = "down" ]; then
|
||||
sign="-"
|
||||
else
|
||||
>&2 echo "Invalid sign, second argument must be one of: up, down"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
exec busctl --user -- call rs.wl-gammarelay / rs.wl.gammarelay "$update_cmd" "$update_signature" ${sign}${scroll_change}
|
||||
|
||||
elif [ "$2" = "set" ]; then
|
||||
mode="$3"
|
||||
if [ "$mode" = "toggle" ]; then
|
||||
cur_val="$(busctl --user get-property rs.wl-gammarelay / rs.wl.gammarelay "$set_cmd" | cut -d' ' -f2)"
|
||||
if [ "$(echo "$cur_val $cmp_op $default_val" | bc -l)" = "1" ]; then
|
||||
mode="off"
|
||||
else
|
||||
mode="on"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$mode" = "on" ]; then
|
||||
exec busctl --user -- set-property rs.wl-gammarelay / rs.wl.gammarelay "$set_cmd" "$set_signature" "$click_val"
|
||||
elif [ "$mode" = "off" ]; then
|
||||
exec busctl --user -- set-property rs.wl-gammarelay / rs.wl.gammarelay "$set_cmd" "$set_signature" "$default_val"
|
||||
else
|
||||
>&2 echo "Invalid mode, third argument, must be one of: toggle, on, off"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
else
|
||||
>&2 echo "Invalid operation, second argument must be one of: watch, scroll, set"
|
||||
exit 1
|
||||
fi
|
|
@ -1,50 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# $1: Current number
|
||||
# $2: Range minimum
|
||||
# $3: Range maximum
|
||||
# $4-: Icons as individual arguments
|
||||
pick_icon() {
|
||||
cur="$1"
|
||||
min="$2"
|
||||
max="$3"
|
||||
shift 3
|
||||
icons=("$@")
|
||||
|
||||
index="$(echo "($cur-$min)/(($max-$min)/${#icons[@]})" | bc)"
|
||||
|
||||
# Print the picked icon, handling overflows/underflows, i.e. if our index is <0 or >len(icons)
|
||||
if [ "$index" -ge "${#icons[@]}" ]; then
|
||||
index=-1
|
||||
elif [ "$index" -lt 0 ]; then
|
||||
index=0
|
||||
fi
|
||||
|
||||
echo "${icons[index]}"
|
||||
}
|
||||
|
||||
# Will block and listen to the hyprland socket messages and output them
|
||||
# Generally used like: hyprland_ipc | while read line; do handle $line; done
|
||||
# Read <https://wiki.hyprland.org/IPC/> for output format and available events
|
||||
# Note: requires openbsd version of netcat.
|
||||
# $1 - Optional event to listen for (no event filtering will be done if not provided)
|
||||
hyprland_ipc() {
|
||||
if [ -z "$HYPRLAND_INSTANCE_SIGNATURE" ]; then
|
||||
>&2 echo "Hyprland is not running, IPC not available"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
SOCKET_PATH="${XDG_RUNTIME_DIR:-/run/user/$UID}/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock"
|
||||
#SOCKET_PATH="/tmp/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock"
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
nc -U "$SOCKET_PATH" | while read -r test; do
|
||||
echo "$test"
|
||||
done
|
||||
else
|
||||
nc -U "$SOCKET_PATH" | while read -r test; do
|
||||
# shellcheck disable=SC2016
|
||||
echo "$test" | grep --line-buffered -E "^$1>>" | stdbuf -oL awk -F '>>' '{print $2}'
|
||||
done
|
||||
fi
|
||||
}
|
|
@ -1,52 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# shellcheck source=include
|
||||
source "./scripts/include"
|
||||
|
||||
STRENGTH_ICONS=("" "" "" "" "" "")
|
||||
DISCONNECTED_ICON=""
|
||||
WIFI_OFF=""
|
||||
|
||||
toggle() {
|
||||
status=$(rfkill -J | jq -r '.rfkilldevices[] | select(.type == "wlan") | .soft' | head -1)
|
||||
|
||||
if [ "$status" = "unblocked" ]; then
|
||||
rfkill block wlan
|
||||
else
|
||||
rfkill unblock wlan
|
||||
fi
|
||||
}
|
||||
|
||||
get_report() {
|
||||
connection_details="$(nmcli -t -f NAME,TYPE,DEVICE connection show --active | grep wireless | head -n1)"
|
||||
essid="$(echo $connection_details | cut -d':' -f1)"
|
||||
device="$(echo $connection_details | cut -d':' -f3)"
|
||||
if [ -n "$device" ]; then
|
||||
state="$(nmcli -t -f DEVICE,STATE device status | grep "$device" | head -n1 | cut -d':' -f2)"
|
||||
signal="$(nmcli -t -f in-use,signal dev wifi | grep "\*" | cut -d':' -f2)"
|
||||
else
|
||||
state="unknown"
|
||||
signal="0"
|
||||
fi
|
||||
|
||||
if [ "$state" = "disconnected" ] ; then
|
||||
icon="$DISCONNECTED_ICON"
|
||||
elif [ "$state" = "unknown" ]; then
|
||||
icon="$WIFI_OFF"
|
||||
else
|
||||
icon="$(pick_icon "$signal" 0 100 "${STRENGTH_ICONS[@]}")"
|
||||
fi
|
||||
|
||||
jq -n -c --monochrome-output \
|
||||
--arg essid "$essid" \
|
||||
--arg icon "$icon" \
|
||||
--arg state "$state" \
|
||||
--arg signal "$signal" \
|
||||
'$ARGS.named'
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
"toggle") toggle ;;
|
||||
"status") get_report ;;
|
||||
*) >&2 echo "Invalid usage, argument '$1' not recognized."; exit 1 ;;
|
||||
esac
|
|
@ -1,12 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# shellcheck source=include
|
||||
source "./scripts/include"
|
||||
|
||||
# Consider usning a file as a flag for whether nightlight is on or off
|
||||
# as we might be in transition state and just killing the program might
|
||||
# not be enough.
|
||||
|
||||
if [ "$1" = "toggle" ]; then
|
||||
gammastep -x
|
||||
fi
|
|
@ -1,12 +0,0 @@
|
|||
[tool.black]
|
||||
line-length = 119
|
||||
extend-exclude = "^/.cache"
|
||||
|
||||
[tool.isort]
|
||||
profile = "black"
|
||||
line_length = 119
|
||||
atomic = true
|
||||
order_by_type = false
|
||||
case_sensitive = true
|
||||
combine_as_imports = true
|
||||
skip = [".venv", ".git", ".cache"]
|
|
@ -1,35 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
MOUNTPOINTS=("/" "/mnt/ext")
|
||||
|
||||
data="$(df -H)"
|
||||
|
||||
as_json() {
|
||||
mountpoint="$1"
|
||||
res="$2"
|
||||
arr_res=($res)
|
||||
|
||||
jq -n -c --monochrome-output \
|
||||
--arg mountpoint "$mountpoint" \
|
||||
--arg size "${arr_res[0]}" \
|
||||
--arg used "${arr_res[1]}" \
|
||||
--arg avail "${arr_res[2]}" \
|
||||
--arg percent "${arr_res[3]}" \
|
||||
'$ARGS.named'
|
||||
}
|
||||
|
||||
output_json="[]"
|
||||
for mountpoint in "${MOUNTPOINTS[@]}"; do
|
||||
res="$(echo "$data" | awk -v m="$mountpoint" '$6 == m {print $2 " " $3 " " $4 " " $5}')"
|
||||
out="$(as_json "$mountpoint" "$res")"
|
||||
|
||||
# echo "$output_json $out" | jq -c -s
|
||||
|
||||
jq --argjson arr1 "$output_json" --argjson arr2 "[$out]" -n \
|
||||
'$arr1 + $arr2'
|
||||
|
||||
# mount_data+=("$mountpoint" $res)
|
||||
# echo "${mount_data[@]}"
|
||||
done
|
||||
|
||||
# echo "${mount_data[@]}"
|
|
@ -1,7 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# shellcheck source=include
|
||||
source "./scripts/include"
|
||||
|
||||
#hyprland_ipc "workspace|createworkspace|destroyworkspace|activewindow"
|
||||
hyprland_ipc
|
|
@ -1,112 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Define some icons
|
||||
SPEAKER_ICONS=("" "" "")
|
||||
SPEAKER_MUTED_ICON=""
|
||||
MIC_ICON=""
|
||||
MIC_MUTED_ICON=""
|
||||
|
||||
# Define some helper functions for getting/setting audio data using wireplumber (wpctl)
|
||||
|
||||
# $1 can either be "SINK" (speaker) or "SOURCE" (microphone)
|
||||
get_vol() {
|
||||
wpctl get-volume "@DEFAULT_AUDIO_${1}@" | awk '{print int($2*100)}'
|
||||
}
|
||||
|
||||
# $1 can either be "SINK" (speaker) or "SOURCE" (microphone)
|
||||
# #2 is the voulme (as percentage) to set the volume to
|
||||
# $3 is optional, if set, it can be '+' or '-', which then adds/decreases volume, instead of setting
|
||||
set_vol() {
|
||||
wpctl set-volume "@DEFAULT_AUDIO_${1}@" "$(awk -v n="$2" 'BEGIN{print (n / 100)}')$3"
|
||||
}
|
||||
|
||||
# $1 can either be "SINK" (speaker) or "SOURCE" (microphone)
|
||||
check_mute() {
|
||||
wpctl get-volume "@DEFAULT_AUDIO_${1}@" | grep -i muted >/dev/null
|
||||
echo $?
|
||||
}
|
||||
|
||||
# $1 can either be "SINK" (speaker) or "SOURCE" (microphone)
|
||||
toggle_mute() {
|
||||
wpctl set-mute "@DEFAULT_AUDIO_${1}@" toggle
|
||||
}
|
||||
|
||||
get_report() {
|
||||
spkr_vol="$(get_vol "SINK")"
|
||||
mic_vol="$(get_vol "SOURCE")"
|
||||
|
||||
if [ "$(check_mute "SINK")" == "0" ]; then
|
||||
spkr_mute="true"
|
||||
spkr_icon="$SPEAKER_MUTED_ICON"
|
||||
else
|
||||
spkr_mute="false"
|
||||
index="$(awk -v n="$spkr_vol" -v m="${#SPEAKER_ICONS[@]}" 'BEGIN{print int(n/(100/m))}')"
|
||||
|
||||
# We might end up with an higher than the length of icons, if the volume is over 100%
|
||||
# in this case, set the index to last icon
|
||||
if [ "$index" -ge "${#SPEAKER_ICONS[@]}" ]; then
|
||||
spkr_icon="${SPEAKER_ICONS[-1]}"
|
||||
else
|
||||
spkr_icon="${SPEAKER_ICONS[$index]}"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$(check_mute "SOURCE")" = "0" ]; then
|
||||
mic_mute="true"
|
||||
mic_icon="$MIC_MUTED_ICON"
|
||||
else
|
||||
mic_mute="false"
|
||||
mic_icon="$MIC_ICON"
|
||||
fi
|
||||
|
||||
echo "{ \"speaker_vol\": \"$spkr_vol\", \"speaker_mute\": $spkr_mute, \"speaker_icon\": \"$spkr_icon\", \"microphone_mute\": $mic_mute, \"microphone_vol\": \"$mic_vol\", \"microphone_icon\": \"$mic_icon\" }"
|
||||
}
|
||||
|
||||
# Continually run and report every volume change (into stdout)
|
||||
loop() {
|
||||
get_report
|
||||
pactl subscribe | grep --line-buffered "change" | while read -r _; do
|
||||
get_report
|
||||
done
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
"loop") loop ;;
|
||||
|
||||
"once") get_report ;;
|
||||
|
||||
"togglemute")
|
||||
if [ "$2" != "SOURCE" ] && [ "$2" != "SINK" ]; then
|
||||
>&2 echo "Invalid usage, expected second argument to be 'SINK' or 'SOURCE', got '$2'"
|
||||
exit 1
|
||||
fi
|
||||
toggle_mute "$2"
|
||||
;;
|
||||
|
||||
"setvol")
|
||||
if [ "$2" != "SOURCE" ] && [ "$2" != "SINK" ]; then
|
||||
>&2 echo "Invalid usage, expected second argument to be 'SINK' or 'SOURCE', got '$2'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ "$3" =~ ^[+-]?[0-9]*\.?[0-9]+$ ]]; then
|
||||
case "$4" in
|
||||
"") set_vol "$2" "$3" ;;
|
||||
up | +) set_vol "$2" "$3" "+" ;;
|
||||
down | -) set_vol "$2" "$3" "-" ;;
|
||||
*)
|
||||
>&2 echo "Invalid usage, expected fourth argument to be up/down or +/-, got '$4'"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
else
|
||||
>&2 echo "Invalid usage, exepcted third argument to be a number, got '$3'"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
*)
|
||||
>&2 echo "Invalid usage, argument '$1' not recognized."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
|
@ -1,6 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# shellcheck source=include
|
||||
source "./scripts/include"
|
||||
|
||||
hyprland_ipc "activewindow" | ./scripts/window_name.py
|
|
@ -1,116 +0,0 @@
|
|||
#!/usr/bin/env python3
|
||||
"""This is a utility script for regex remaps on window names.
|
||||
|
||||
This is done in python, because of the complex regex logic, which would be pretty hard to
|
||||
recreate in bash. This python script is expected to be called from the bash script controlling
|
||||
the window names. Window name and class are obtained from piped stdin, to prevent having to
|
||||
needlessly keep restarting this program, which takes a while due to the interpreter starting
|
||||
overhead.
|
||||
"""
|
||||
|
||||
import json
|
||||
import re
|
||||
import sys
|
||||
from typing import Iterator, Optional
|
||||
|
||||
|
||||
class RemapRule:
|
||||
__slots__ = ("name_pattern", "output_pattern", "class_pattern")
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
name_pattern: str,
|
||||
output_pattern: str,
|
||||
class_pattern: Optional[str] = None,
|
||||
):
|
||||
self.name_pattern = re.compile(name_pattern)
|
||||
self.output_pattern = output_pattern
|
||||
self.class_pattern = re.compile(class_pattern) if class_pattern else None
|
||||
|
||||
def apply(self, window_name: str, window_class: str) -> str:
|
||||
"""Returns new name after this remap rule was applied."""
|
||||
if self.class_pattern is not None:
|
||||
if not self.class_pattern.fullmatch(window_class):
|
||||
# Rule doesn't apply, class mismatch, return original name
|
||||
return window_name
|
||||
|
||||
res = self.name_pattern.fullmatch(window_name)
|
||||
if not res:
|
||||
# Rule doesn't apply, name mismatch, return original name
|
||||
return window_name
|
||||
|
||||
# NOTE: This is potentially unsafe, since output_pattern might be say {0.__class__}, etc.
|
||||
# meaning this allows arbitrary attribute access, however it doesn't allow running functions
|
||||
# here. That said, code could still end up being run if there's some descriptor defined,
|
||||
# and generally I wouldn't trust this in production. However, this code is for my personal
|
||||
# use here, and all of the output patterns are hard-coded in this file, so in this case, it's
|
||||
# fine. But if you see this code and you'd like to use it in your production code, maybe don't
|
||||
return self.output_pattern.format(*res.groups())
|
||||
|
||||
|
||||
# Rules will be applied in specified order
|
||||
REMAP_RULES: list[RemapRule] = [
|
||||
RemapRule(r"", "", ""),
|
||||
RemapRule(r"(.*) — Mozilla Firefox", " {}", "firefox"),
|
||||
RemapRule(r"Mozilla Firefox", " Mozilla Firefox", "firefox"),
|
||||
RemapRule(r"Alacritty", " Alacritty", "Alacritty"),
|
||||
RemapRule(
|
||||
r"zsh;#toggleterm#1 - \(term:\/\/(.+)\/\/(\d+):(.+)\) - N?VIM",
|
||||
" Terminal: {0}",
|
||||
),
|
||||
RemapRule(r"(.+) \+ \((.+)\) - N?VIM", " {0} ({1}) [MODIFIED]"),
|
||||
RemapRule(r"(.+) \((.+)\) - N?VIM", " {0} ({1})"),
|
||||
RemapRule(r"(?:\[\d+\] )?\*?WebCord - (.+)", " {}", "WebCord"),
|
||||
RemapRule(r"(.+) - Discord", " {}", "discord"),
|
||||
RemapRule(r"(?:\(\d+\) )?Discord \| (.+)", " {}", "vesktop"),
|
||||
RemapRule(r"(.+) - mpv", " {}", "mpv"),
|
||||
RemapRule(r"Stremio - (.+)", " Stremio - {}", r"(Stremio)|(com.stremio.stremio)"),
|
||||
RemapRule(r"Spotify((?: Premium)?)", " Spotify{}", "[Ss]potify"),
|
||||
RemapRule(r"pulsemixer", " Pulsemixer"),
|
||||
RemapRule(r"(.*)", " {}", "Pcmanfm"),
|
||||
RemapRule(r"(.*)", " {}", "pcmanfm-qt"),
|
||||
# Needs to be last
|
||||
RemapRule(r"(.*)", " {}", "kitty"),
|
||||
]
|
||||
|
||||
MAX_LENGTH = 65
|
||||
|
||||
|
||||
def iter_window() -> Iterator[tuple[str, str]]:
|
||||
"""Listen for the window parameters from stdin/pipe, yields (window_name, window_class)."""
|
||||
for line in sys.stdin:
|
||||
line = line.removesuffix("\n")
|
||||
els = line.split(",", maxsplit=1)
|
||||
if len(els) != 2:
|
||||
raise ValueError(
|
||||
f"Expected 2 arguments from stdin line (name, class), but got {len(els)}"
|
||||
)
|
||||
yield els[1], els[0]
|
||||
|
||||
|
||||
def main() -> None:
|
||||
for window_name, window_class in iter_window():
|
||||
formatted_name = window_name
|
||||
for remap_rule in REMAP_RULES:
|
||||
new_name = remap_rule.apply(formatted_name, window_class)
|
||||
if new_name != formatted_name:
|
||||
formatted_name = new_name
|
||||
break
|
||||
|
||||
formatted_name = formatted_name.split("\n")[0]
|
||||
if len(formatted_name) > MAX_LENGTH:
|
||||
formatted_name = formatted_name[: MAX_LENGTH - 3] + "..."
|
||||
|
||||
ret = json.dumps(
|
||||
{
|
||||
"name": window_name,
|
||||
"class": window_class,
|
||||
"formatted_name": formatted_name,
|
||||
}
|
||||
)
|
||||
print(ret)
|
||||
sys.stdout.flush()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
|
@ -1,12 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# shellcheck source=include
|
||||
source "./scripts/include"
|
||||
|
||||
if [ "$1" = "--switch" ]; then
|
||||
hyprctl dispatch focusworkspaceoncurrentmonitor "$2" >/dev/null
|
||||
elif [ "$1" = "--loop" ]; then
|
||||
hyprland_ipc "workspace|createworkspace|destroyworkspace" | ./scripts/workspaces.py "$@"
|
||||
else
|
||||
./scripts/workspaces.py "$@"
|
||||
fi
|
|
@ -1,188 +0,0 @@
|
|||
#!/usr/bin/env python3
|
||||
import argparse
|
||||
import json
|
||||
import subprocess
|
||||
import sys
|
||||
from typing import TypedDict, TYPE_CHECKING
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from _typeshed import SupportsRichComparison
|
||||
|
||||
|
||||
class WorkspaceInfo(TypedDict):
|
||||
id: int
|
||||
name: str
|
||||
monitor: str
|
||||
windows: int
|
||||
hasfullscreen: bool
|
||||
lastwindow: str
|
||||
lastwindowtitle: str
|
||||
|
||||
|
||||
class ActiveWorkspaceInfo(TypedDict):
|
||||
id: int
|
||||
name: str
|
||||
|
||||
|
||||
class MonitorInfo(TypedDict):
|
||||
id: int
|
||||
name: str
|
||||
description: str
|
||||
make: str
|
||||
model: str
|
||||
width: int
|
||||
height: int
|
||||
refreshRate: float
|
||||
x: int
|
||||
y: int
|
||||
activeWorkspace: ActiveWorkspaceInfo
|
||||
reserved: list[int]
|
||||
scale: float
|
||||
transform: int
|
||||
focused: bool
|
||||
dpmsStatus: bool
|
||||
vrr: bool
|
||||
|
||||
|
||||
class OutputWorkspaceInfo(WorkspaceInfo):
|
||||
format_name: str
|
||||
active: bool
|
||||
monitor_id: int
|
||||
|
||||
|
||||
# workspace id -> remapped name
|
||||
REMAPS = {
|
||||
1: "",
|
||||
2: "",
|
||||
3: "",
|
||||
4: "",
|
||||
5: "",
|
||||
6: "",
|
||||
7: "7",
|
||||
8: "8",
|
||||
9: "9",
|
||||
}
|
||||
|
||||
# Skip the special (scratchpad) workspace
|
||||
SKIP = {-99}
|
||||
|
||||
|
||||
def workspace_sort(obj: OutputWorkspaceInfo) -> "SupportsRichComparison":
|
||||
"""Returns a key to sort by, given the current element."""
|
||||
return obj["id"]
|
||||
|
||||
|
||||
def fill_blank_workspaces(open: list[OutputWorkspaceInfo]) -> list[OutputWorkspaceInfo]:
|
||||
"""Add in the rest of the workspaces which don't have any open windows on them.
|
||||
|
||||
This is needed because hyprland deletes workspaces with nothing in them.
|
||||
Note that this assumes all available workspaces were listed in REMAPS, and will
|
||||
only fill those. These blank workspaces will have most string values set to "N/A",
|
||||
and most int values set to 0.
|
||||
"""
|
||||
# Work on a copy, we don't want to alter the original list
|
||||
lst = open.copy()
|
||||
|
||||
for remap_id, format_name in REMAPS.items():
|
||||
# Skip for already present workspaces
|
||||
if any(ws_info["id"] == remap_id for ws_info in lst):
|
||||
continue
|
||||
|
||||
blank_ws: OutputWorkspaceInfo = {
|
||||
"id": remap_id,
|
||||
"name": str(remap_id),
|
||||
"monitor": "N/A",
|
||||
"windows": 0,
|
||||
"hasfullscreen": False,
|
||||
"lastwindow": "N/A",
|
||||
"lastwindowtitle": "N/A",
|
||||
"active": False,
|
||||
"format_name": format_name,
|
||||
"monitor_id": 0,
|
||||
}
|
||||
lst.append(blank_ws)
|
||||
|
||||
return lst
|
||||
|
||||
|
||||
def get_workspaces() -> list[OutputWorkspaceInfo]:
|
||||
"""Obtain workspaces from hyprctl, sort them and add format_name arg."""
|
||||
proc = subprocess.run(["hyprctl", "workspaces", "-j"], stdout=subprocess.PIPE)
|
||||
proc.check_returncode()
|
||||
try:
|
||||
workspaces: list[WorkspaceInfo] = json.loads(proc.stdout)
|
||||
except json.JSONDecodeError:
|
||||
sys.stderr.writelines([
|
||||
"Error decoding json response from hyprctl, returning empty workspaces",
|
||||
f"Actual captured output from hyprctl: {proc.stdout!r}"
|
||||
])
|
||||
sys.stderr.flush()
|
||||
workspaces = []
|
||||
|
||||
proc = subprocess.run(["hyprctl", "monitors", "-j"], stdout=subprocess.PIPE)
|
||||
proc.check_returncode()
|
||||
monitors: list[MonitorInfo] = json.loads(proc.stdout)
|
||||
|
||||
active_workspaces = {monitor["activeWorkspace"]["id"] for monitor in monitors}
|
||||
|
||||
out: list[OutputWorkspaceInfo] = []
|
||||
for workspace in workspaces:
|
||||
if workspace["id"] in SKIP:
|
||||
continue
|
||||
format_name = REMAPS.get(workspace["id"], workspace["name"])
|
||||
active = workspace["id"] in active_workspaces
|
||||
try:
|
||||
mon_id = [monitor["id"] for monitor in monitors if monitor["name"] == workspace["monitor"]][0]
|
||||
except IndexError: # Sometimes workspace["monitor"] is "?", which doesn't match any monitor
|
||||
mon_id = -1
|
||||
out.append({**workspace, "format_name": format_name, "active": active, "monitor_id": mon_id})
|
||||
|
||||
out = fill_blank_workspaces(out)
|
||||
out.sort(key=workspace_sort)
|
||||
return out
|
||||
|
||||
|
||||
def print_workspaces() -> None:
|
||||
wks = get_workspaces()
|
||||
ret = json.dumps(wks)
|
||||
print(ret)
|
||||
sys.stdout.flush()
|
||||
|
||||
|
||||
def main() -> None:
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument(
|
||||
"--oneshot",
|
||||
action="store_true",
|
||||
help="Don't listen to stdout for updates, only run once and quit",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--loop",
|
||||
action="store_true",
|
||||
help="Listen to stdout input, once something is received, re-print workspaces"
|
||||
)
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.loop and args.oneshot:
|
||||
print("Can't use both --oneshot and --loop", file=sys.stdout)
|
||||
sys.exit(1)
|
||||
|
||||
if args.loop is None and args.oneshot is None:
|
||||
print("No option specified!", file=sys.stdout)
|
||||
sys.exit(1)
|
||||
|
||||
# Print workspaces here immediately, we don't want to have to wait for the first
|
||||
# update from stdin as we only receive those on actual workspace change.
|
||||
print_workspaces()
|
||||
|
||||
if args.oneshot:
|
||||
# We've already printed the workspaces once, we can exit now
|
||||
return
|
||||
|
||||
# Reprint workspaces on each stdin update (flush)
|
||||
for _ in sys.stdin:
|
||||
print_workspaces()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
|
@ -1,14 +0,0 @@
|
|||
(defwidget calendar-win []
|
||||
(box
|
||||
:class "calendar-win"
|
||||
(calendar)))
|
||||
|
||||
(defwindow calendar
|
||||
:monitor 0
|
||||
:geometry (geometry
|
||||
:x "0%"
|
||||
:y "0%"
|
||||
:anchor "top right"
|
||||
:width "0px"
|
||||
:height "0px")
|
||||
(calendar-win))
|
|
@ -1,78 +0,0 @@
|
|||
(defwidget radio-menu-win []
|
||||
(box
|
||||
:class "radio-menu-box"
|
||||
:space-evenly false
|
||||
:orientation "v"
|
||||
|
||||
(box
|
||||
:class "text-row"
|
||||
:space-evenly false
|
||||
(label
|
||||
:class "title"
|
||||
:text "Radio/Connections Panel"))
|
||||
|
||||
(box
|
||||
:class "element-row"
|
||||
|
||||
(box
|
||||
:class "wifi-box"
|
||||
:space-evenly false
|
||||
:orientation "v"
|
||||
(box
|
||||
:class "element icon"
|
||||
:space-evenly false
|
||||
:halign "center"
|
||||
(button
|
||||
:class "wifi-button"
|
||||
:tooltip "${net.state} (strength: ${net.signal}%)"
|
||||
:onclick "scripts/net toggle"
|
||||
{net.icon})
|
||||
(label
|
||||
:class "separator"
|
||||
:text "│")
|
||||
(button
|
||||
:class "wifi-arrow-btn"
|
||||
:onclick "eww close radio-menu && nm-connection-editor &"
|
||||
""))
|
||||
(label
|
||||
:text {net.essid}
|
||||
:xalign 0.5
|
||||
:limit-width 15))
|
||||
|
||||
(box
|
||||
:class "bluetooth-box"
|
||||
:space-evenly false
|
||||
:orientation "v"
|
||||
(box
|
||||
:class "element icon"
|
||||
:space-evenly false
|
||||
:halign "center"
|
||||
(button
|
||||
:class "bluetooth-button"
|
||||
:onclick "scripts/bluetooth toggle"
|
||||
:tooltip "${bluetooth.name} (${bluetooth.mac}) ${bluetooth.battery}"
|
||||
{bluetooth.icon})
|
||||
(label
|
||||
:class "separator"
|
||||
:text "│")
|
||||
(button
|
||||
:class "bluetooth-arrow-btn"
|
||||
:onclick "eww close radio-menu && blueberry"
|
||||
""))
|
||||
(label
|
||||
:text {bluetooth.name}
|
||||
:xalign 0.5
|
||||
:tooltip "${bluetooth.name} (${bluetooth.mac}) ${bluetooth.battery}"
|
||||
:limit-width 15)))
|
||||
))
|
||||
|
||||
(defwindow radio-menu
|
||||
:stacking "fg"
|
||||
:monitor 0
|
||||
:geometry (geometry
|
||||
:x "0"
|
||||
:y "0"
|
||||
:width "0%"
|
||||
:height "0%"
|
||||
:anchor "right top")
|
||||
(radio-menu-win))
|
27
home/.config/gh/config.yml
Normal file
27
home/.config/gh/config.yml
Normal file
|
@ -0,0 +1,27 @@
|
|||
# The current version of the config schema
|
||||
version: 1
|
||||
# What protocol to use when performing git operations. Supported values: ssh, https
|
||||
git_protocol: https
|
||||
# What editor gh should run when creating issues, pull requests, etc. If blank, will refer to environment.
|
||||
editor:
|
||||
# When to interactively prompt. This is a global config that cannot be overridden by hostname. Supported values: enabled, disabled
|
||||
prompt: enabled
|
||||
# Preference for editor-based interactive prompting. This is a global config that cannot be overridden by hostname. Supported values: enabled, disabled
|
||||
prefer_editor_prompt: disabled
|
||||
# A pager program to send command output to, e.g. "less". If blank, will refer to environment. Set the value to "cat" to disable the pager.
|
||||
pager:
|
||||
# Aliases allow you to create nicknames for gh commands
|
||||
aliases:
|
||||
co: pr checkout
|
||||
# The path to a unix socket through which to send HTTP connections. If blank, HTTP traffic will be handled by net/http.DefaultTransport.
|
||||
http_unix_socket:
|
||||
# What web browser gh should use when opening URLs. If blank, will refer to environment.
|
||||
browser:
|
||||
# Whether to display labels using their RGB hex color codes in terminals that support truecolor. Supported values: enabled, disabled
|
||||
color_labels: disabled
|
||||
# Whether customizable, 4-bit accessible colors should be used. Supported values: enabled, disabled
|
||||
accessible_colors: disabled
|
||||
# Whether an accessible prompter should be used. Supported values: enabled, disabled
|
||||
accessible_prompter: disabled
|
||||
# Whether to use a animated spinner as a progress indicator. If disabled, a textual progress indicator is used instead. Supported values: enabled, disabled
|
||||
spinner: enabled
|
5
home/.config/gh/hosts.yml
Normal file
5
home/.config/gh/hosts.yml
Normal file
|
@ -0,0 +1,5 @@
|
|||
github.com:
|
||||
git_protocol: https
|
||||
users:
|
||||
ItsDrike:
|
||||
user: ItsDrike
|
|
@ -1,5 +0,0 @@
|
|||
/**
|
||||
* GTK 4 reads the theme configured by gtk-theme-name, but ignores it.
|
||||
* It does however respect user CSS, so import the theme from here.
|
||||
**/
|
||||
@import url("file:///usr/share/themes/Tokyonight-Dark/gtk-4.0/gtk.css");
|
|
@ -1,22 +1,9 @@
|
|||
general {
|
||||
# cursor_inactive_timeout = 10
|
||||
# no_cursor_warps = true
|
||||
}
|
||||
|
||||
debug {
|
||||
overlay = false
|
||||
#disable_logs = false
|
||||
enable_stdout_logs = true
|
||||
}
|
||||
|
||||
source = ~/.config/hypr/hyprland.d/exec.conf
|
||||
source = ~/.config/hypr/hyprland.d/layout.conf
|
||||
source = ~/.config/hypr/hyprland.d/permissions.conf
|
||||
source = ~/.config/hypr/hyprland.d/keybinds.conf
|
||||
source = ~/.config/hypr/hyprland.d/input.conf
|
||||
source = ~/.config/hypr/hyprland.d/style.conf
|
||||
source = ~/.config/hypr/hyprland.d/keybinds.conf
|
||||
source = ~/.config/hypr/hyprland.d/window_rules.conf
|
||||
source = ~/.config/hypr/hyprland.d/gestures.conf
|
||||
source = ~/.config/hypr/hyprland.d/misc.conf
|
||||
source = ~/.config/hypr/hyprland.d/plugins.conf
|
||||
source = ~/.config/hypr/hyprland.d/debug.conf
|
||||
|
||||
# vi: ft=hyprlang
|
||||
exec-once = uwsm finalize
|
||||
|
|
7
home/.config/hypr/hyprland.d/debug.conf
Normal file
7
home/.config/hypr/hyprland.d/debug.conf
Normal file
|
@ -0,0 +1,7 @@
|
|||
debug {
|
||||
overlay = false
|
||||
|
||||
#disable_logs = false
|
||||
enable_stdout_logs = true
|
||||
}
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
exec-once = uwsm finalize
|
||||
exec-once = sleep 3 && uwsm app vesktop
|
||||
|
||||
# vi: ft=hyprlang
|
|
@ -1,11 +0,0 @@
|
|||
gestures {
|
||||
workspace_swipe = true
|
||||
workspace_swipe_fingers = 3
|
||||
workspace_swipe_distance = 300
|
||||
workspace_swipe_invert = false
|
||||
workspace_swipe_min_speed_to_force = 20
|
||||
workspace_swipe_cancel_ratio = 0.650000
|
||||
}
|
||||
|
||||
# vi: ft=hyprlang
|
||||
|
|
@ -3,11 +3,14 @@
|
|||
# ################
|
||||
|
||||
# Should be configured per-profile
|
||||
monitor = desc:Microstep MSI MAG 256F BC1H174600235, 1920x1080@120, 1920x0, 1 # left
|
||||
monitor = desc:AOC 2260WG5 KBEH81A000795, 1920x1080@60, 1920x0, 1, # left
|
||||
|
||||
# Primary (laptop)
|
||||
monitor = eDP-1, 1920x1200@60, 0x0, 1
|
||||
|
||||
# Externals
|
||||
monitor = desc:Microstep MSI MAG 256F BC1H174600235, 1920x1080@120, 1920x0, 1 # right
|
||||
monitor = desc:AOC 2260WG5 KBEH81A000795, 1920x1080@60, 1920x0, 1, # right
|
||||
|
||||
# Mirror the primary (laptop) monitor on externals
|
||||
#monitor= , preferred, auto, 1, mirror, eDP-1
|
||||
# Extend on externals
|
||||
|
@ -34,3 +37,4 @@ input {
|
|||
}
|
||||
|
||||
# vi: ft=hyprlang
|
||||
|
||||
|
|
|
@ -12,34 +12,65 @@ $XF86Favorites = 164
|
|||
|
||||
bind = SUPER, W, killactive,
|
||||
bind = SUPER, F, togglefloating,
|
||||
bind = SUPER, Space, fullscreen, 0 # regular fullscreen
|
||||
bind = SUPER_SHIFT, Space, fullscreen, 1 # maximize without client fullscreen
|
||||
bind = SUPER_CTRL, Space, fullscreenstate, 2, 0 # fullscreen without client knowing
|
||||
bind = SUPER_CTRL_SHIFT, Space, fullscreenstate, 1, 2 # maximize with client being full-screen
|
||||
bind = CTRL_SHIFT, Space, exec, toggle-fake-fullscreen # fake fullscreen + custom border
|
||||
bind = SUPER_SHIFT, S, layoutmsg, togglesplit
|
||||
|
||||
# ################
|
||||
# ### PROGRAMS ###
|
||||
# ################
|
||||
|
||||
bind = SUPER, R, exec, uwsm app -- $(uwsm app -- wofi --show drun --define=drun-print_desktop_file=true)
|
||||
bind = SUPER_SHIFT, V, exec, uwsm app -- clipman pick -t wofi
|
||||
|
||||
bind = SUPER, Return, exec, uwsm app -- kitty
|
||||
bind = SUPER, X, exec, uwsm app -- pcmanfm-qt
|
||||
bind = SUPER, B, exec, uwsm app -- firefox
|
||||
bind = SUPER, C, exec, uwsm app -- qalculate-gtk
|
||||
bind = , XF86Calculator, exec, uwsm app -- qalculate-gtk
|
||||
bind = SUPER SHIFT, S, layoutmsg, togglesplit
|
||||
bind = SUPER, P, pseudo
|
||||
|
||||
# #####################
|
||||
# ### DE/WM CONTROL ###
|
||||
# #####################
|
||||
|
||||
bind = SUPER_SHIFT, Q, exec, uwsm app -- menuquit
|
||||
bind = SUPER_CTRL, L, exec, loginctl lock-session
|
||||
bind = SUPER_SHIFT, L, exec, uwsm app -- wlogout -p layer-shell
|
||||
bind = SUPER_SHIFT, T, exec, toggle-idle
|
||||
bind = SUPER CTRL, L, exec, loginctl lock-session
|
||||
bind = SUPER SHIFT, L, exec, uwsm app -- wlogout -p layer-shell
|
||||
bind = SUPER SHIFT, T, exec, toggle-idle
|
||||
#
|
||||
|
||||
# ################
|
||||
# ### PROGRAMS ###
|
||||
# ################
|
||||
|
||||
bind = SUPER, R, exec, uwsm app -- walker
|
||||
bind = SUPER, Return, exec, uwsm app -- kitty
|
||||
bind = SUPER, X, exec, uwsm app -- pcmanfm-qt
|
||||
bind = SUPER, B, exec, uwsm app -- firefox
|
||||
bind = SUPER, C, exec, uwsm app -- qalculate-gtk
|
||||
bind = , XF86Calculator, exec, uwsm app -- qalculate-gtk
|
||||
bind = SUPER SHIFT, V, exec, uwsm app -- cliphist list | walker -d | cliphist decode | wl-copy
|
||||
|
||||
# ###################
|
||||
# ### FULL-SCREEN ###
|
||||
# ###################
|
||||
|
||||
bind = SUPER, Space, fullscreen, 0 # regular fullscreen
|
||||
bind = SUPER SHIFT, Space, fullscreen, 1 # maximize without client fullscreen
|
||||
bind = SUPER CTRL, Space, fullscreenstate, 2, 0 # fullscreen without client knowing
|
||||
bind = SUPER CTRL SHIFT, Space, fullscreenstate, 1, 2 # maximize with client being full-screen
|
||||
bind = CTRL SHIFT, Space, exec, toggle-fake-fullscreen # fake fullscreen + custom border
|
||||
|
||||
# ############################
|
||||
# ### AUDIO/VOLUME CONTROL ###
|
||||
# ############################
|
||||
|
||||
bindel = SUPER, Down, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05-
|
||||
bindel = SUPER, Up, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05+
|
||||
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05-
|
||||
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05+
|
||||
|
||||
bindl = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||
bindl = , XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
||||
|
||||
bindl = , XF86AudioNext, exec, playerctl next
|
||||
bindl = , XF86AudioPause, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPlay, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPrev, exec, playerctl previous
|
||||
|
||||
# ##########################
|
||||
# ### BRIGHTNESS CONTROL ###
|
||||
# ##########################
|
||||
|
||||
bindel = SUPER, Right, exec, brightnessctl -n2 set 5%+
|
||||
bindel = SUPER, Left, exec, brightnessctl -n2 set 5%-
|
||||
bindel = ,XF86MonBrightnessDown, exec, brightnessctl -n2 set 5%-
|
||||
bindel = ,XF86MonBrightnessUp, exec, brightnessctl -n2 set 5%+
|
||||
|
||||
# ###################
|
||||
# ### SCREENSHOTS ###
|
||||
|
@ -50,58 +81,28 @@ $SCREENSHOT_FORMAT = "${XDG_SCREENSHOTS_DIR:-$HOME/Media/Pictures/Screenshots}/S
|
|||
$SCREENSHOT_DELAY = 2000
|
||||
$PRINTSCR_KEY = Print #Menu # Print
|
||||
|
||||
#bind = ALT, $PRINTSCR_KEY, exec, wl-copy --type image/png "$(hyprpicker)" && notify-send 'Picked color' "$(wl-paste) (saved to clipboard)"
|
||||
bind = , $PRINTSCR_KEY, exec, hyprland-screenshot --notify --copy --target area
|
||||
#bindl = , $PRINTSCR_KEY, exec, hyprland-screenshot --notify --copy --target all # lockscreen screenshot (only enable when needed)
|
||||
#bindl = , $PRINTSCR_KEY, exec, hyprland-screenshot --notify --copy --target all # lockscreen screenshot (only enable when needed, dangerous)
|
||||
bind = SUPER, $PRINTSCR_KEY, exec, hyprland-screenshot --notify --copy --target area --edit
|
||||
bind = SHIFT, $PRINTSCR_KEY, exec, hyprland-screenshot --notify --save $SCREENSHOT_FORMAT --target area
|
||||
bind = CTRL, $PRINTSCR_KEY, exec, hyprland-screenshot --notify --copy --target area --delay $SCREENSHOT_DELAY
|
||||
bind = SUPER_SHIFT, $PRINTSCR_KEY, exec, hyprland-screenshot --notify --save $SCREENSHOT_FORMAT --target area --edit
|
||||
bind = SUPER_CTRL, $PRINTSCR_KEY, exec, hyprland-screenshot --notify --copy --target area --delay $SCREENSHOT_DELAY --edit
|
||||
bind = SUPER_SHIFT_CTRL, $PRINTSCR_KEY, exec, hyprland-screenshot --notify --save $SCREENSHOT_FORMAT --target area --delay $SCREENSHOT_DELAY --edit
|
||||
bind = SUPER_ALT, $PRINTSCR_KEY, exec, ocr && notify-send "OCR" "Text copied to clipboard"
|
||||
bind = SUPER SHIFT, $PRINTSCR_KEY, exec, hyprland-screenshot --notify --save $SCREENSHOT_FORMAT --target area --edit
|
||||
bind = SUPER CTRL, $PRINTSCR_KEY, exec, hyprland-screenshot --notify --copy --target area --delay $SCREENSHOT_DELAY --edit
|
||||
bind = SUPER SHIFT CTRL, $PRINTSCR_KEY, exec, hyprland-screenshot --notify --save $SCREENSHOT_FORMAT --target area --delay $SCREENSHOT_DELAY --edit
|
||||
bind = SUPER ALT, $PRINTSCR_KEY, exec, ocr && notify-send "OCR" "Text copied to clipboard"
|
||||
bind = ALT, $PRINTSCR_KEY, exec, wl-copy --type image/png "$(hyprpicker)" && notify-send 'Picked color' "$(wl-paste) (saved to clipboard)"
|
||||
|
||||
# XF86Favorites key for recording
|
||||
# (don't question me, I had it free)
|
||||
bind = , 164, exec, uwsm app -- quick-record --notify toggle
|
||||
bind = SUPER, 164, exec, uwsm -- app quick-record toggle
|
||||
|
||||
# #####################
|
||||
# ### NOTIFICATIONS ###
|
||||
# #####################
|
||||
|
||||
bind = CTRL, grave, exec, swaync-client --close-latest
|
||||
bind = CTRL_SHIFT, grave, exec, swaync-client --close-all
|
||||
bind = CTRL_ALT, grave, exec, swaync-client --hide-latest
|
||||
bind = CTRL, period, exec, swaync-client --toggle-panel
|
||||
bind = SUPER_SHIFT, D, exec, toggle-notifications
|
||||
|
||||
# ############################
|
||||
# ### AUDIO/VOLUME CONTROL ###
|
||||
# ############################
|
||||
|
||||
binde = SUPER, Down, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05-
|
||||
binde = SUPER, Up, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05+
|
||||
binde = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05-
|
||||
binde = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05+
|
||||
bind = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||
bind = , XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
||||
|
||||
# ##########################
|
||||
# ### BRIGHTNESS CONTROL ###
|
||||
# ##########################
|
||||
|
||||
binde = SUPER, Right, exec, brightness -i 5% -n
|
||||
binde = SUPER, Left, exec, brightness -d 5% -n
|
||||
binde = , XF86MonBrightnessUp, exec, brightness -i 5% -n
|
||||
binde = , XF86MonBrightnessDown, exec, brightness -d 5% -n
|
||||
|
||||
# #####################
|
||||
# ### WINDOW GROUPS ###
|
||||
# #####################
|
||||
|
||||
bind = SUPER, G, togglegroup,
|
||||
bind = SUPER_SHIFT, G, lockactivegroup, toggle
|
||||
bind = SUPER SHIFT, G, lockactivegroup, toggle
|
||||
bind = ALT, tab, changegroupactive, f
|
||||
bind = ALT, grave, changegroupactive, b
|
||||
|
||||
|
@ -122,33 +123,14 @@ bind = SUPER, k, movefocus, u
|
|||
bind = SUPER, j, movefocus, d
|
||||
|
||||
# #######################################
|
||||
# ### MOVE ACTIVE WINDOW IN DIRECTION ###
|
||||
# ### MOVE FLOATING OR ACTIVE WINDOWS ###
|
||||
# #######################################
|
||||
|
||||
bind = SUPER_ALT, h, movewindow, l
|
||||
bind = SUPER_ALT, l, movewindow, r
|
||||
bind = SUPER_ALT, k, movewindow, u
|
||||
bind = SUPER_ALT, j, movewindow, d
|
||||
|
||||
# #######################################
|
||||
# ### MOVE FLOATING WINDOWS ###
|
||||
# #######################################
|
||||
|
||||
$myMoveSize = 100
|
||||
bind = SUPER_ALT, left, exec, hyprland-move-window $myMoveSiez l
|
||||
bind = SUPER_ALT, right, exec, hyprland-move-window $myMoveSize r
|
||||
bind = SUPER_ALT, up, exec, hyprland-move-window $myMoveSize u
|
||||
bind = SUPER_ALT, down, exec, hyprland-move-window $myMoveSize d
|
||||
|
||||
|
||||
# ################################################################
|
||||
# ### OVERRIDE SPLIT DIRECTION FOR NEXT WINDOW (MANUAL TILING) ###
|
||||
# ################################################################
|
||||
|
||||
bind = SUPER_ALT, left, layoutmsg, preselect l
|
||||
bind = SUPER_ALT, right, layoutmsg, preselect r
|
||||
bind = SUPER_ALT, up, layoutmsg, preselect u
|
||||
bind = SUPER_ALT, down, layoutmsg, preselect d
|
||||
$floatMoveSize = 100
|
||||
bind = SUPER ALT, h, exec, hyprland-move-window $floatMoveSize l
|
||||
bind = SUPER ALT, l, exec, hyprland-move-window $floatMoveSize r
|
||||
bind = SUPER ALT, k, exec, hyprland-move-window $floatMoveSize u
|
||||
bind = SUPER ALT, j, exec, hyprland-move-window $floatMoveSize d
|
||||
|
||||
# ######################################################
|
||||
# ### SWITCH WORKSPACE (SWAPPING TO CURRENT MONITOR) ###
|
||||
|
@ -168,15 +150,15 @@ bind = SUPER, 9, focusworkspaceoncurrentmonitor, 9
|
|||
# ### MOVE WINDOW TO WORKSPACE ###
|
||||
# ################################
|
||||
|
||||
bind = SUPER_SHIFT, 1, movetoworkspacesilent, 1
|
||||
bind = SUPER_SHIFT, 2, movetoworkspacesilent, 2
|
||||
bind = SUPER_SHIFT, 3, movetoworkspacesilent, 3
|
||||
bind = SUPER_SHIFT, 4, movetoworkspacesilent, 4
|
||||
bind = SUPER_SHIFT, 5, movetoworkspacesilent, 5
|
||||
bind = SUPER_SHIFT, 6, movetoworkspacesilent, 6
|
||||
bind = SUPER_SHIFT, 7, movetoworkspacesilent, 7
|
||||
bind = SUPER_SHIFT, 8, movetoworkspacesilent, 8
|
||||
bind = SUPER_SHIFT, 9, movetoworkspacesilent, 9
|
||||
bind = SUPER SHIFT, 1, movetoworkspacesilent, 1
|
||||
bind = SUPER SHIFT, 2, movetoworkspacesilent, 2
|
||||
bind = SUPER SHIFT, 3, movetoworkspacesilent, 3
|
||||
bind = SUPER SHIFT, 4, movetoworkspacesilent, 4
|
||||
bind = SUPER SHIFT, 5, movetoworkspacesilent, 5
|
||||
bind = SUPER SHIFT, 6, movetoworkspacesilent, 6
|
||||
bind = SUPER SHIFT, 7, movetoworkspacesilent, 7
|
||||
bind = SUPER SHIFT, 8, movetoworkspacesilent, 8
|
||||
bind = SUPER SHIFT, 9, movetoworkspacesilent, 9
|
||||
|
||||
# ###########################################
|
||||
# ### MOVE WINDOW TO WORKSPACE + FOCUS IT ###
|
||||
|
@ -196,18 +178,15 @@ bind = ALT, 9, movetoworkspace, 9
|
|||
# ### CYCLE WORKSPACES (RELATIVE MOVEMENT) ###
|
||||
# ############################################
|
||||
|
||||
bind = SUPER, mouse_down, workspace, +1
|
||||
bind = SUPER, mouse_up, workspace, -1
|
||||
bind = SUPER, bracketleft, workspace, -1
|
||||
bind = SUPER, bracketright, workspace, +1
|
||||
|
||||
|
||||
# ##########################################
|
||||
# ### CYCLE MONITORS (RELATIVE MOVEMENT) ###
|
||||
# ##########################################
|
||||
|
||||
bind = SUPER_SHIFT, bracketleft, focusmonitor, -1
|
||||
bind = SUPER_SHIFT, bracketright, focusmonitor, +1
|
||||
bind = SUPER SHIFT, bracketleft, focusmonitor, -1
|
||||
bind = SUPER SHIFT, bracketright, focusmonitor, +1
|
||||
|
||||
# #######################
|
||||
# ### WINDOW RESIZING ###
|
||||
|
@ -222,54 +201,11 @@ binde = ALT, right, resizeactive, 10 0
|
|||
binde = ALT, left, resizeactive, -10 0
|
||||
binde = ALT, up, resizeactive, 0 -10
|
||||
binde = ALT, down, resizeactive, 0 10
|
||||
binde = ALT, H, resizeactive, -10 0
|
||||
binde = ALT, K, resizeactive, 0 -10
|
||||
binde = ALT, J, resizeactive, 0 10
|
||||
binde = ALT, L, resizeactive, 10 0
|
||||
|
||||
## Precise keyboard resizing (submap)
|
||||
bind = SUPER, slash, submap, resize
|
||||
submap = resize
|
||||
|
||||
binde = , right, resizeactive, 10 0
|
||||
binde = , left, resizeactive, -10 0
|
||||
binde = , up, resizeactive, 0 -10
|
||||
binde = , down, resizeactive, 0 10
|
||||
|
||||
binde = SUPER, right, resizeactive, 30 0
|
||||
binde = SUPER, left, resizeactive, -30 0
|
||||
binde = SUPER, up, resizeactive, 0 -30
|
||||
binde = SUPER, down, resizeactive, 0 30
|
||||
|
||||
binde = SHIFT, right, resizeactive, 1 0
|
||||
binde = SHIFT, left, resizeactive, -1 0
|
||||
binde = SHIFT, up, resizeactive, 0 -1
|
||||
binde = SHIFT, down, resizeactive, 0 1
|
||||
|
||||
binde = , H, resizeactive, -10 0
|
||||
binde = , K, resizeactive, 0 -10
|
||||
binde = , J, resizeactive, 0 10
|
||||
binde = , L, resizeactive, 10 0
|
||||
|
||||
binde = , right, resizeactive, 10 0
|
||||
binde = , left, resizeactive, -10 0
|
||||
binde = , up, resizeactive, 0 -10
|
||||
binde = , down, resizeactive, 0 10
|
||||
|
||||
binde = SUPER, H, resizeactive, -30 0
|
||||
binde = SUPER, K, resizeactive, 0 -30
|
||||
binde = SUPER, J, resizeactive, 0 30
|
||||
binde = SUPER, L, resizeactive, 30 0
|
||||
|
||||
binde = SHIFT, H, resizeactive, -1 0
|
||||
binde = SHIFT, K, resizeactive, 0 -1
|
||||
binde = SHIFT, J, resizeactive, 0 1
|
||||
binde = SHIFT, L, resizeactive, 1 0
|
||||
|
||||
bind = , escape, submap, reset
|
||||
bind = , return, submap, reset
|
||||
bind = SUPER, slash, submap, reset
|
||||
submap = reset
|
||||
binde = ALT, h, resizeactive, -10 0
|
||||
binde = ALT, k, resizeactive, 0 -10
|
||||
binde = ALT, j, resizeactive, 0 10
|
||||
binde = ALT, l, resizeactive, 10 0
|
||||
|
||||
# ########################################################
|
||||
# ### GLOBAL KEYBINDS (PASSING KEYS TO OTHER PROGRAMS) ###
|
||||
|
@ -288,4 +224,3 @@ submap = isolate
|
|||
bind = SUPER, End, exec, hyprctl dispatch submap reset && notify-send "Keybind isolation" "Keybind isolation off"
|
||||
submap = reset
|
||||
|
||||
# vi: ft=hyprlang
|
||||
|
|
|
@ -1,23 +0,0 @@
|
|||
general {
|
||||
layout = dwindle
|
||||
}
|
||||
|
||||
dwindle {
|
||||
# Don't change the split (side/top) regardless
|
||||
# of what happens to the container
|
||||
preserve_split = true
|
||||
|
||||
# Scale down special workspaces (bigger borders)
|
||||
special_scale_factor = 0.9
|
||||
}
|
||||
|
||||
group {
|
||||
# Add new windows in the group after the current window
|
||||
# rather than after the group tail window
|
||||
insert_after_current = true
|
||||
|
||||
# Focus the window that was just moved out of the group
|
||||
focus_removed_window = true
|
||||
}
|
||||
|
||||
# vi: ft=hyprlang
|
|
@ -1,14 +1,12 @@
|
|||
misc {
|
||||
# Disable redundant renders (covered by wallpaper)
|
||||
disable_hyprland_logo = true
|
||||
disable_splash_rendering = true
|
||||
|
||||
# follow requests from windows to be focused
|
||||
# Follow requests from windows to be focused
|
||||
focus_on_activate = true
|
||||
|
||||
# Enable DPMS on these actions
|
||||
mouse_move_enables_dpms = true
|
||||
key_press_enables_dpms = true
|
||||
}
|
||||
|
||||
# vi: ft=hyprlang
|
||||
# Disable the primary clipboard (everyone uses Ctrl+C: unnamedplus,
|
||||
# primary is not needed and can get annoying sometimes)
|
||||
middle_click_paste = false
|
||||
}
|
||||
|
|
11
home/.config/hypr/hyprland.d/permissions.conf
Normal file
11
home/.config/hypr/hyprland.d/permissions.conf
Normal file
|
@ -0,0 +1,11 @@
|
|||
ecosystem {
|
||||
enforce_permissions = true
|
||||
}
|
||||
|
||||
permission = /usr/(lib|lib64)/xdg-portal-hyprland, screencopy, allow
|
||||
|
||||
permission = /usr/bin/grim, screencopy, allow
|
||||
permission = /usr/bin/wf-recorder, screencopy, allow
|
||||
permission = /usr/bin/hyprlock, screencopy, allow
|
||||
|
||||
# permission = /usr/(bin)/hyprpm, plugin, allow
|
|
@ -1,28 +0,0 @@
|
|||
# #######################
|
||||
# ### LOADING PLUGINS ###
|
||||
# #######################
|
||||
|
||||
exec-once=hyprpm reload -n
|
||||
#exec-once=hyprctl plugin load $HOME/.local/share/hyprload/plugins/bin/dwindle-autogroup.so
|
||||
|
||||
# ################
|
||||
# ### HYPRBARS ###
|
||||
# ################
|
||||
|
||||
plugin {
|
||||
hyprbars {
|
||||
bar_height = 20
|
||||
bar_color = rgb(505152)
|
||||
|
||||
col.text = rgb(ff0000)
|
||||
bar_text_size = 10
|
||||
|
||||
# example buttons (R -> L)
|
||||
# hyprbars-button = color, size, on-click
|
||||
hyprbars-button = rgb(ff4040), 10, , hyprctl dispatch killactive
|
||||
hyprbars-button = rgb(eeee11), 10, , hyprctl dispatch fullscreen 1
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# vi: ft=hyprlang
|
|
@ -1,10 +1,34 @@
|
|||
# ##############
|
||||
# ### LAYOUT ###
|
||||
# ##############
|
||||
|
||||
general {
|
||||
layout = dwindle
|
||||
}
|
||||
|
||||
dwindle {
|
||||
# Allow pseudo-tiling (tiled window that retains it's floating size)
|
||||
pseudotile = true
|
||||
|
||||
# Don't change the split regardless of what happens to the container
|
||||
preserve_split = true
|
||||
|
||||
# Scale down special workspaces (bigger borders)
|
||||
special_scale_factor = 0.95
|
||||
}
|
||||
|
||||
group {
|
||||
# Don't auto-insert newly created windows into a group
|
||||
auto_group = false
|
||||
}
|
||||
|
||||
# ###################
|
||||
# ### WINDOW GAPS ###
|
||||
# ###################
|
||||
|
||||
general {
|
||||
gaps_in = 5
|
||||
gaps_out = 8
|
||||
gaps_out = 10
|
||||
}
|
||||
|
||||
# ###############
|
||||
|
@ -13,29 +37,29 @@ general {
|
|||
|
||||
decoration {
|
||||
rounding = 8
|
||||
rounding_power = 2
|
||||
}
|
||||
|
||||
general {
|
||||
border_size = 2
|
||||
|
||||
# Regular windows
|
||||
col.active_border = rgba(FFA500FF) # orange
|
||||
#col.active_border = rgba(FFFFFFEE) # white
|
||||
col.inactive_border = rgba(666666AA) # transparent gray
|
||||
col.active_border = rgba(ffa500ff) # orange
|
||||
col.inactive_border = rgba(666666aa) # transparent gray
|
||||
|
||||
# Windows with nogroup property
|
||||
col.nogroup_border_active = rgba(FF00FFFF) # purple
|
||||
col.nogroup_border = rgba(FF00FFAA) # transparent purple
|
||||
col.nogroup_border_active = rgba(ff00ffff) # purple
|
||||
col.nogroup_border = rgba(ff00ffaa) # transparent purple
|
||||
}
|
||||
|
||||
group {
|
||||
# Groupped windows
|
||||
col.border_active = rgba(00A500FF) # green
|
||||
col.border_inactive = rgba(5AA500FF) # transparent green
|
||||
col.border_active = rgba(00a500ff) # green
|
||||
col.border_inactive = rgba(5aa500ff) # transparent green
|
||||
|
||||
# Locked groupped windows
|
||||
col.border_locked_active = rgba(A0A500FF) # yellow
|
||||
col.border_locked_inactive = rgba(A0A500AA) # transparent yellow
|
||||
col.border_locked_active = rgba(a0a500ff) # yellow
|
||||
col.border_locked_inactive = rgba(a0a500aa) # transparent yellow
|
||||
}
|
||||
|
||||
# #################
|
||||
|
@ -46,7 +70,7 @@ group {
|
|||
groupbar {
|
||||
# Title box above window
|
||||
render_titles = false # disable, looks kinda bad
|
||||
font_family = Monaspace Krypton
|
||||
#font_family = Monaspace Krypton
|
||||
font_size = 11
|
||||
text_color = rgba(FFFFFFFF) # white
|
||||
|
||||
|
@ -71,12 +95,13 @@ group {
|
|||
|
||||
decoration {
|
||||
shadow {
|
||||
enabled = true # enable drop shadow
|
||||
range = 20
|
||||
render_power = 2
|
||||
color = rgba(0F0F0FE6)
|
||||
#color = rgba(FFA500FF)
|
||||
color_inactive = rgba(0F0F0F99)
|
||||
# I don't really need drop shadow, it just consumes more battery
|
||||
# and I honestly don't see a huge difference with it on.
|
||||
enabled = false
|
||||
range = 4
|
||||
render_power = 3
|
||||
color = rgba(0f0f0fe6)
|
||||
color_inactive = rgba(0f0f0f99)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -87,44 +112,49 @@ decoration {
|
|||
decoration {
|
||||
blur {
|
||||
enabled = true
|
||||
size = 8
|
||||
size = 6
|
||||
passes = 1
|
||||
}
|
||||
}
|
||||
|
||||
# ########################
|
||||
# ### INACTIVE WINDOWS ###
|
||||
# ########################
|
||||
|
||||
decoration {
|
||||
#dim_inactive = true
|
||||
dim_strength = 0.05
|
||||
dim_special = 0.2
|
||||
|
||||
# inactive_opacity = 0.9
|
||||
}
|
||||
|
||||
# ##################
|
||||
# ### ANIMATIONS ###
|
||||
# ##################
|
||||
|
||||
animations {
|
||||
enabled = true
|
||||
first_launch_animation = true # fade in on first launch
|
||||
|
||||
animation = windows, 1, 3, default, popin 50%
|
||||
animation = border, 1, 4, default
|
||||
animation = fade, 1, 4, default
|
||||
animation = workspaces, 1, 3, default
|
||||
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
|
||||
|
||||
animation = global, 1, 10, default
|
||||
animation = border, 1, 5.39, easeOutQuint
|
||||
animation = windows, 1, 4.79, easeOutQuint
|
||||
animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
|
||||
animation = windowsOut, 1, 1.49, linear, popin 87%
|
||||
animation = fadeIn, 1, 1.73, almostLinear
|
||||
animation = fadeOut, 1, 1.46, almostLinear
|
||||
animation = fade, 1, 3.03, quick
|
||||
animation = layers, 1, 3.81, easeOutQuint
|
||||
animation = layersIn, 1, 4, easeOutQuint, fade
|
||||
animation = layersOut, 1, 1.5, linear, fade
|
||||
animation = fadeLayersIn, 1, 1.79, almostLinear
|
||||
animation = fadeLayersOut, 1, 1.39, almostLinear
|
||||
animation = workspaces, 1, 1.94, almostLinear, fade
|
||||
animation = workspacesIn, 1, 1.21, almostLinear, fade
|
||||
animation = workspacesOut, 1, 1.94, almostLinear, fade
|
||||
animation = specialWorkspace, 1, 2, default, slidefadevert
|
||||
}
|
||||
|
||||
misc {
|
||||
animate_manual_resizes = true
|
||||
}
|
||||
|
||||
# #################
|
||||
# ### WALLPAPER ###
|
||||
# #################
|
||||
|
||||
# vi: ft=hyprlang
|
||||
misc {
|
||||
disable_hyprland_logo = true
|
||||
disable_splash_rendering = true
|
||||
force_default_wallpaper = -1
|
||||
}
|
||||
|
|
|
@ -10,53 +10,20 @@ windowrulev2 = workspace 5, class:^(Spotify)$
|
|||
windowrulev2 = workspace 6, class:^(Stremio)$
|
||||
windowrulev2 = workspace 6, class:^(com.stremio.stremio)$
|
||||
|
||||
# #######################
|
||||
# ### IDLE INHIBITION ###
|
||||
# #######################
|
||||
# #############################################
|
||||
# ### CORRECT SIZE / AUTO TILE / AUTO FLOAT ###
|
||||
# ############################################
|
||||
|
||||
windowrulev2 = idleinhibit focus, class:^(Stremio)$
|
||||
windowrulev2 = idleinhibit focus, class:^(com.stremio.stremio)$
|
||||
windowrulev2 = idleinhibit focus, class:^(mpv)$
|
||||
windowrulev2 = idleinhibit focus, class:^(firefox)$,title:^(.+ - YouTube — Mozilla Firefox)$
|
||||
windowrulev2 = idleinhibit focus, class:^(firefox)$,title:^(Picture-in-Picture)$
|
||||
|
||||
# ################################
|
||||
# ### CORRECT SIZE / AUTO TILE ###
|
||||
# ################################
|
||||
|
||||
windowrulev2 = size 800 550, class:^(qalculate-gtk)$
|
||||
windowrulev2 = tile, class:^(Spotify)$
|
||||
|
||||
# ##################
|
||||
# ### AUTO FLOAT ###
|
||||
# ##################
|
||||
|
||||
windowrulev2 = float, class:^(Lxappearance)$
|
||||
windowrulev2 = float, class:^(Rofi)$
|
||||
windowrulev2 = float, class:^(feh)$
|
||||
windowrulev2 = float, class:^(pavucontrol-qt)$
|
||||
windowrulev2 = float, class:^(pavucontrol)$
|
||||
windowrulev2 = float, class:^(file-roller)$
|
||||
# Float and properly size qualculate
|
||||
windowrulev2 = float, class:^(qalculate-gtk)$
|
||||
windowrulev2 = float, class:^(com.github.wwmm.easyeffects)
|
||||
windowrulev2 = float, class:^(opensnitch_ui)$
|
||||
windowrulev2 = float, class:^(Brave-browser)$,title:^(_crx_.+)$
|
||||
windowrulev2 = size 800 550, class:^(qalculate-gtk)$
|
||||
|
||||
## Float hyprland-share-picker & some extra actions
|
||||
# Float hyprland-share-picker & some extra actions
|
||||
windowrulev2 = float, class:^(hyprland-share-picker)$
|
||||
windowrulev2 = center, class:^(hyprland-share-picker)$
|
||||
windowrulev2 = animation slide, class:^(hyprland-share-picker)$
|
||||
|
||||
## Float firefox windows (like bookmark menus, or some extension windows)
|
||||
windowrulev2 = float, class:^(firefox)$,title:^(Revert Bookmarks)$
|
||||
windowrulev2 = float, class:^(firefox)$,title:^(Library)$
|
||||
windowrulev2 = float, class:^(firefox)$,title:^(Extension: \(uBlock Origin\))
|
||||
windowrulev2 = float, class:^(firefox)$,title:^(Extension: \(Bitwarden Password Manager\) - Bitwarden — Mozilla Firefox)$
|
||||
windowrulev2 = float, class:^(firefox)$,title:^(Firefox — Sharing Indicator)$
|
||||
windowrulev2 = float, class:^(firefox)$,title:^(Opening .+)$
|
||||
windowrulev2 = float, class:^(firefox)$,title:^$
|
||||
|
||||
## Float some pcmanfm windows
|
||||
# Float some pcmanfm windows
|
||||
windowrulev2 = float, class:^(pcmanfm-qt)$,title:^(Mount)$
|
||||
windowrulev2 = float, class:^(pcmanfm-qt)$,title:^(Preferences)$
|
||||
windowrulev2 = float, class:^(pcmanfm-qt)$,title:^(Move files)$
|
||||
|
@ -65,45 +32,21 @@ windowrulev2 = float, class:^(pcmanfm-qt)$,title:^(Copy Files)$
|
|||
windowrulev2 = float, class:^(pcmanfm-qt)$,title:^(Confirm to replace files)$
|
||||
windowrulev2 = float, class:^(pcmanfm-qt|)$,title:^(Choose an Application)$
|
||||
|
||||
## Float some qimgv windows
|
||||
windowrulev2 = float, class:^(qimgv)$,title:^(Add shortcut)$
|
||||
windowrulev2 = float, class:^(qimgv)$,title:^(Preferences — qimgv)$
|
||||
|
||||
## Float some windows from other apps
|
||||
windowrulev2 = float, class:^(Spotify)$,title:^(Ozone X11)$
|
||||
windowrulev2 = float, class:^(python3)$,title:^(Tor Browser Launcher Settings)$
|
||||
windowrulev2 = float, class:^(python3)$,title:^(Tor Browser)$
|
||||
|
||||
## General float rules
|
||||
windowrulev2 = float, class:^(file_progress)$
|
||||
windowrulev2 = float, class:^(confirm)$
|
||||
windowrulev2 = float, class:^(dialog)$
|
||||
windowrulev2 = float, class:^(download)$
|
||||
windowrulev2 = float, class:^(notification)$
|
||||
windowrulev2 = float, class:^(error)$
|
||||
windowrulev2 = float, class:^(splash)$
|
||||
windowrulev2 = float, class:^(confirmreset)$
|
||||
windowrulev2 = float, class:^(floating)$
|
||||
|
||||
## Float all windows that don't have a title nor a class
|
||||
# Float all windows that don't have a title nor a class
|
||||
windowrulev2 = float, class:^$,title:^$
|
||||
|
||||
# #############
|
||||
# ### FIXES ###
|
||||
# #############
|
||||
# Other apps
|
||||
windowrulev2 = float, class:^(file-roller)$
|
||||
windowrulev2 = float, class:^(opensnitch_ui)$
|
||||
windowrulev2 = float, class:^(Brave-browser)$,title:^(_crx_.+)$
|
||||
windowrulev2 = float, class:^(qimgv)$,title:^(Add shortcut)$
|
||||
|
||||
# jetbrains
|
||||
# ############
|
||||
# ### MISC ###
|
||||
# ############
|
||||
|
||||
windowrulev2 = center, class:^(jetbrains-.*)$,title:^(splash)$,floating:1
|
||||
windowrulev2 = nofocus, class:^(jetbrains-.*)$,title:^(splash)$,floating:1
|
||||
windowrulev2 = noborder, class:^(jetbrains-.*)$,title:^(splash)$,floating:1
|
||||
windowrulev2 = center, class:^(jetbrains-.*)$,title:^( )$,floating:1
|
||||
windowrulev2 = stayfocused, class:^(jetbrains-.*)$,title:^( )$,floating:1
|
||||
windowrulev2 = noborder, class:^(jetbrains-.*)$,title:^( )$,floating:1
|
||||
windowrulev2 = nofocus, class:^(jetbrains-.*)$,title:^(win.*)$,floating:1
|
||||
windowrulev2 = noinitialfocus, class:^(jetbrains-.*)$,title:^(win.*)$
|
||||
# Ignore maximize requests from apps.
|
||||
windowrule = suppressevent maximize, class:.*
|
||||
|
||||
# Don't add borders to grim selections when taking screenshots
|
||||
layerrule = noanim, ^(selection)$
|
||||
|
||||
# vi: ft=hyprlang
|
||||
# Fix some dragging issues with XWayland
|
||||
windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
|
||||
|
|
|
@ -3,9 +3,8 @@
|
|||
# ######################
|
||||
|
||||
general {
|
||||
disable_loading_bar = false
|
||||
hide_cursor = true
|
||||
grace = 3
|
||||
fail_timeout = 2000
|
||||
}
|
||||
|
||||
auth {
|
||||
|
@ -13,9 +12,8 @@ auth {
|
|||
#fingerprint:enabled = true
|
||||
}
|
||||
|
||||
|
||||
background {
|
||||
path = ~/Media/Pictures/Wallpapers/Categories/Extra/origami.png
|
||||
path = ~/Media/Pictures/Wallpapers/hyprlock-bg
|
||||
blur_passes = 3
|
||||
blur_size = 6
|
||||
#contrast = 0.7
|
||||
|
@ -222,5 +220,3 @@ label {
|
|||
halign = left
|
||||
valign = bottom
|
||||
}
|
||||
|
||||
# vi: ft=hyprlang
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
$bg = $HOME/Media/Pictures/Wallpapers/active
|
||||
$bg = $HOME/Media/Pictures/Wallpapers/active-bg
|
||||
|
||||
preload=$bg
|
||||
wallpaper=,$bg # same wallpaper on all monitors
|
||||
|
|
9
home/.config/hypr/hyprsunset.conf
Normal file
9
home/.config/hypr/hyprsunset.conf
Normal file
|
@ -0,0 +1,9 @@
|
|||
profile {
|
||||
time = 7:30
|
||||
identity = true
|
||||
}
|
||||
|
||||
profile {
|
||||
time = 23:30
|
||||
temperature = 2700
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
screencopy {
|
||||
allow_token_by_default = true
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
MONITOR_ID="$1"
|
||||
MONITOR_NAME="$2"
|
||||
MONITOR_DESCRIPTION="$3"
|
||||
|
||||
systemctl --user start eww-window@bar1.service
|
||||
#eww open bar1
|
|
@ -1,26 +0,0 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
MONITORS_AMT="$(hyprctl monitors -j | jq length)"
|
||||
|
||||
if [ "$MONITORS_AMT" -lt 1 ]; then
|
||||
>&2 echo "You seem to have 0 monitors..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$MONITORS_AMT" -eq 2 ]; then
|
||||
systemctl --user start eww-window@bar1.service
|
||||
#eww open bar1
|
||||
fi
|
||||
|
||||
if [ "$MONITORS_AMT" -eq 1 ]; then
|
||||
if eww active-windows | grep "bar1"; then
|
||||
systemctl --user stop eww-window@bar1.service
|
||||
#eww close bar1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$MONITORS_AMT" -gt 2 ]; then
|
||||
>&2 echo "Unexpected monitor configuration (more than 2 monitors)"
|
||||
exit 1
|
||||
fi
|
|
@ -1,7 +0,0 @@
|
|||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
MONITOR_NAME="$1"
|
||||
|
||||
systemctl --user stop eww-window@bar1.service
|
||||
# eww close bar1
|
|
@ -53,7 +53,7 @@ select_by_word_characters :@-./_~?&=%+#
|
|||
# Keybindings
|
||||
map ctrl+alt+c copy_to_clipboard
|
||||
map ctrl+alt+v paste_from_clipboard
|
||||
map ctrl+c copy_or_interrupt
|
||||
#map ctrl+c copy_or_interrupt
|
||||
map ctrl+shift+, move_tab_backward
|
||||
map ctrl+shift+. move_tab_forward
|
||||
map ctrl+shift+0 tenth_window
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
readonly PREVIEW_ID="preview"
|
||||
|
||||
printf '{"action": "remove", "identifier": "%s"}\n' "$PREVIEW_ID" > "$FIFO_UEBERZUG"
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
path="$1"
|
||||
x="$2"
|
||||
y="$3"
|
||||
width="$4"
|
||||
height="$5"
|
||||
PREVIEW_ID="preview"
|
||||
|
||||
if [ -n "$FIFO_UEBERZUG" ]; then
|
||||
printf '{"action": "add", "identifier": "%s", "x": %d, "y": %d, "width": %d, "height": %d, "scaler": "contain", "scaling_position_x": 0.5, "scaling_position_y": 0.5, "path": "%s"}\n' \
|
||||
"$PREVIEW_ID" "$x" "$y" "$width" "$height" "$path" > "$FIFO_UEBERZUG"
|
||||
else
|
||||
# Ueberzug isn't avialable, try to use pixterm
|
||||
if command -v pixterm > /dev/null; then
|
||||
pixterm -s 2 -tr "$x" -tc "$width" "$path"
|
||||
else
|
||||
>&2 echo "ueberzug not running, pixterm fallback not found!"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
|
@ -1,144 +0,0 @@
|
|||
# Basic settings
|
||||
set previewer ~/.config/lf/previewer.sh
|
||||
set cleaner ~/.config/lf/clear_img.sh
|
||||
set preview true
|
||||
set hidden true
|
||||
set drawbox true
|
||||
set icons true
|
||||
set ignorecase true
|
||||
set scrolloff 5
|
||||
|
||||
# Use $EDITOR for text
|
||||
cmd open ${{
|
||||
case $(file --mime-type "$f" -bL) in
|
||||
text/*|application/json) $EDITOR "$f";;
|
||||
*) devour xdg-open "$f" ;;
|
||||
esac
|
||||
}}
|
||||
|
||||
# File/Directory control functions
|
||||
cmd mkdir %{{
|
||||
printf "Directory Name: "
|
||||
read ans
|
||||
mkdir $ans
|
||||
}}
|
||||
|
||||
cmd mkfile %{{
|
||||
printf "File Name: "
|
||||
read ans
|
||||
touch $ans
|
||||
}}
|
||||
|
||||
cmd chmod %{{
|
||||
printf "Mode Bits: "
|
||||
read ans
|
||||
|
||||
for file in "$fx"; do
|
||||
chmod $ans $file
|
||||
done
|
||||
|
||||
lf -remote 'send reload'
|
||||
}}
|
||||
|
||||
# Add z.lua functionality for easy autojumps
|
||||
cmd zlua %{{
|
||||
printf "z.lua input: "
|
||||
read ans
|
||||
|
||||
/usr/local/src/z.lua/z.lua $ans
|
||||
}}
|
||||
|
||||
|
||||
# Archive bindings
|
||||
cmd unarchive ${{
|
||||
case "$f" in
|
||||
*.zip) unzip "$f" ;;
|
||||
*.tar.gz) tar -xzvf "$f" ;;
|
||||
*.tar.bz2) tar -xjvf "$f" ;;
|
||||
*.tar) tar -xvf "$f" ;;
|
||||
*) echo "Unsuported format" ;;
|
||||
esac
|
||||
}}
|
||||
|
||||
cmd zip %zip -r "$f" "$f"
|
||||
cmd tar %tar cvf "$f.tar" "$f"
|
||||
cmd targz %tar cvzf "%f.tar.gz" "$f"
|
||||
cmd tarbz2 %tar cjvf "$f.tar.bz2" "$f"
|
||||
|
||||
# Trash-cli bindings
|
||||
cmd trash ${{
|
||||
files=$(printf "$fx" | tr '\n' ':')
|
||||
while [ "$files" ]; do
|
||||
# extract the substring from start of string up to delimeter.
|
||||
# this is the first "element" of the string
|
||||
file=${files%%:*}
|
||||
|
||||
trash-put "$(basename "$file")"
|
||||
# if there's only one element left, set `files` to an empty string.
|
||||
# this causes us to exit this `while` loop.
|
||||
# else, we delete the first "element" of the string from files, and
|
||||
# move onto the next.
|
||||
if [ "$files" = "$file" ]; then
|
||||
files=''
|
||||
else
|
||||
files="${files#*;}"
|
||||
fi
|
||||
done
|
||||
}}
|
||||
|
||||
cmd clear_trash %trash-empty
|
||||
|
||||
cmd restore_trash ${{
|
||||
trash-restore
|
||||
}}
|
||||
|
||||
# Bindings
|
||||
# Remove some defaults
|
||||
map m
|
||||
map n
|
||||
map "'"
|
||||
map '"'
|
||||
map d
|
||||
map c
|
||||
|
||||
# Archive mappings
|
||||
map az zip
|
||||
map at tar
|
||||
map ag targz
|
||||
map au unarchive
|
||||
|
||||
# Trash mappings
|
||||
map dd trash
|
||||
map tc clear_trash
|
||||
map tr restore_trash
|
||||
|
||||
# Basic functions
|
||||
map . set hidden!
|
||||
map DD delete
|
||||
map p paste
|
||||
map x cut
|
||||
map y copy
|
||||
map <enter> open
|
||||
map md mkdir
|
||||
map mf mkfile
|
||||
map ch chmod
|
||||
map r rename
|
||||
map H top
|
||||
map L bottom
|
||||
map R reload
|
||||
map C clear
|
||||
map z zlua
|
||||
|
||||
# Movement
|
||||
map gh cd ~
|
||||
map gc cd ~/.config
|
||||
map gl cd ~/.local
|
||||
map gs cd ~/.local/bin/scripts
|
||||
map gtr cd ~/.local/share/Trash/files
|
||||
map gE. cd /etc
|
||||
map gEp cd /etc/portage
|
||||
map gU. cd /usr
|
||||
map gUs cd /usr/share
|
||||
map gUl cd /usr/local
|
||||
map gM cd /mnt
|
||||
|
|
@ -1,162 +0,0 @@
|
|||
#!/bin/sh
|
||||
# This script handles showing file-previews within lf.
|
||||
|
||||
# It can also show image previews using ueberzug, however
|
||||
# that requires lf to be started with a script that also starts
|
||||
# ueberzug alongside of it.
|
||||
# (In my dotfiles, this script is in '~/.local/bin/scripts/lfu')
|
||||
# Alternatively, we could also handle ANSI previews with pixterms
|
||||
# this will be in a pretty low quiality, but it will work without
|
||||
# ueberzug. To enable this, change PIXTERM_ENABLED to 1.
|
||||
# if both ueberzug and pixterm are enabled, ueberzug takes precedence.
|
||||
PIXTERM_ENABLED=1
|
||||
|
||||
run_cmd() {
|
||||
# Try to run given command, if it is installed.
|
||||
# If it isn't try to fallback to text_handle,
|
||||
# otherwise fail completely.
|
||||
cmd="$1"
|
||||
shift
|
||||
|
||||
if command -v "$cmd" > /dev/null; then
|
||||
$cmd $@
|
||||
else
|
||||
# If we didn't found the requested command, check if
|
||||
# the file is text-like and try to use the text_handle
|
||||
# to show the preview, this may not be ideal for given
|
||||
# file-format, but at least we won't fail.
|
||||
case $(file --mime-type "$1" -bL) in
|
||||
# TODO: Consider checking for UTF-8 formatting instead,
|
||||
# or show previews for any file-type
|
||||
text/*|application/json)
|
||||
echo "@@PREVIEW FALLBACK: Using text handle, $cmd command not found!"
|
||||
text_handle "$1"
|
||||
;;
|
||||
*)
|
||||
echo "@@PREVIEW ERROR: Preview failed, $cmd command not found!"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
}
|
||||
|
||||
draw_image() {
|
||||
# Draw passed image with use of given draw_script.
|
||||
# If the image contains EXIF (metadata) orientation info,
|
||||
# handle it and draw the rotated image.
|
||||
draw_script="$1"
|
||||
file="$2"
|
||||
shift
|
||||
shift
|
||||
|
||||
# Calculate where the image should be placed on the screen.
|
||||
num=$(printf "%0.f\n" "`echo "$(tput cols) / 2" | bc`")
|
||||
numb=$(printf "%0.f\n" "`echo "$(tput cols) - $num - 1" | bc`")
|
||||
numc=$(printf "%0.f\n" "`echo "$(tput lines) - 2" | bc`")
|
||||
|
||||
# Handle EXIF (metadata) orientation.
|
||||
exif_orientation="$(identify -format '%[EXIF:Orientation]\n' -- "$file")"
|
||||
if [ -n "$exif_orientation" ] && [ "$exif_orientation" != 1 ]; then
|
||||
# In case `convert` command isn't aviable, ignore EXIF rotation
|
||||
if command -v convert > /dev/null; then
|
||||
cache=$(mktemp /tmp/thumbcache.XXXXX)
|
||||
convert -- "$file" -auto-orient "$cache"
|
||||
$draw_script "$cache" $num 1 $numb $numc
|
||||
else
|
||||
$draw_script "$file" $num 1 $numb $numc
|
||||
fi
|
||||
else
|
||||
$draw_script "$file" $num 1 $numb $numc
|
||||
fi
|
||||
|
||||
# Exit with status code 1 to signal lf that the function
|
||||
# should be re-ran next time instead of caching the result.
|
||||
exit 1
|
||||
}
|
||||
|
||||
media_handle() {
|
||||
# Handle media type files (videos, photos). These types of
|
||||
# files are usually not stored in any form of textually readable
|
||||
# format and they require a special way of displaying them.
|
||||
# This mostly uses ueberzug (if available) for this.
|
||||
|
||||
draw_script="${XDG_CONFIG_HOME:-$HOME/.config}/lf/draw_img.sh"
|
||||
file="$1"
|
||||
shift
|
||||
|
||||
# Set ENABLED=1 if ueberzug or pixterm is enabled
|
||||
command -v pixterm > /dev/null && [ "$PIXTERM_ENABLED" = 1 ] && ENABLED=1
|
||||
[ -n "$FIFO_UEBERZUG" ] && [ -f "$draw_script" ] && ENABLED=1
|
||||
|
||||
case "$file" in
|
||||
*.bmp|*.jpg|*.jpeg|*.png|*.xpm)
|
||||
if [ -n "$ENABLED" ]; then
|
||||
draw_image $draw_script "$file"
|
||||
else
|
||||
echo "@@PREVIEW FALLBACK: Using mediainfo, ueberzug isn't available."
|
||||
run_cmd mediainfo "$file"
|
||||
fi
|
||||
;;
|
||||
*.avi|*.mp4|*.wmv|*.dat|*.3gp|*.ogv|*.mkv|*.mpg|*.mpeg|*.vob|*.fl[icv]|*.m2v|\
|
||||
*.mov|*.webm|*.ts|*.mts|*.m4v|*.r[am]|*.qt|*.divx)
|
||||
if [ -n "$ENABLED" ]; then
|
||||
cache="$(mktemp /tmp/thumbcache.XXXXX)"
|
||||
ffmpegthumbnailer -i "$file" -o "$cache" -s 0
|
||||
draw_image $draw_script "$cache"
|
||||
else
|
||||
echo "@@PREVIEW FALLBACK: Using exiftool, ueberzug isn't aviable."
|
||||
run_cmd exiftool "$file"
|
||||
fi
|
||||
;;
|
||||
*.wav|*.mp3|*.flac|*.m4a|*.wma|*.ape|*.ac3|*.og[agx]|*.spx|*.opus|*.as[fx]|*.flac)
|
||||
# These types can't make use of ueberzug easily, so simply use eixftool
|
||||
run_cmd exiftool "$file"
|
||||
;;
|
||||
*)
|
||||
echo "@@PREVIEW FALLBACK: Unrecognized media file, falling back to text handle."
|
||||
text_handle "$file"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
text_handle() {
|
||||
# Handle all other formats as text and cat them
|
||||
# if highlighting tools are aviable, try to use them
|
||||
if command -v bat > /dev/null; then
|
||||
num=$(printf "%0.f\n" "`echo "$(tput cols) / 2" | bc`")
|
||||
numb=$(printf "%d\n" "`echo "$(tput cols) - $num - 3" | bc`")
|
||||
bat -pp --color=always --wrap=character --terminal-width="$numb" "$1"
|
||||
elif command -v highlight > /dev/null; then
|
||||
highlight "$1" --out-format ansi --force
|
||||
else
|
||||
cat "$1"
|
||||
fi
|
||||
}
|
||||
|
||||
# Capture all directories at first, since they could
|
||||
# potentionally match one of the file case statements
|
||||
if [ -d "$1" ]; then
|
||||
tree "$1" -La 1
|
||||
elif [ -f "$1" ]; then
|
||||
case "$1" in
|
||||
*.tgz|*.tar.gz) run_cmd tar tzf "$1";;
|
||||
*.tar.bz2|*.tbz2) run_cmd tar tjf "$1";;
|
||||
*.tar.txz|*.txz) run_cmd xz --list "$1";;
|
||||
*.tar) run_cmd tar tf "$1";;
|
||||
*.zip|*.jar|*.war|*.ear|*.oxt) run_cmd unzip -l "$1";;
|
||||
*.rar) run_cmd unrar l "$1";;
|
||||
*.7z) run_cmd 7z l "$1";;
|
||||
*.iso) run_cmd iso-info --no-header -l "$1";;
|
||||
*.o) run_cmd nm "$1" | less ;;
|
||||
*.csv) cat "$1" | sed s/,/\\n/g ;;
|
||||
*odt,*.ods,*.odp,*.sxw) run_cmd odt2txt "$1";;
|
||||
*.doc) run_cmd catdoc "$1" ;;
|
||||
*.docx) run_cmd docx2txt "$1" - ;;
|
||||
*.torrent) run_cmd transmission-show "$1";;
|
||||
*.pdf) run_cmd pdftotext "$1";;
|
||||
*.wav|*.mp3|*.flac|*.m4a|*.wma|*.ape|*.ac3|*.og[agx]|*.spx|*.opus|*.as[fx]|*.flac|\
|
||||
*.avi|*.mp4|*.wmv|*.dat|*.3gp|*.ogv|*.mkv|*.mpg|*.mpeg|*.vob|*.fl[icv]|*.m2v|*.mov|\
|
||||
*.webm|*.ts|*.mts|*.m4v|*.r[am]|*.qt|*.divx|\
|
||||
*.bmp|*.jpg|*.jpeg|*.png|*.xpm) media_handle "$1" ;;
|
||||
*) text_handle "$1" ;;
|
||||
esac
|
||||
fi
|
|
@ -1,832 +0,0 @@
|
|||
print_info() {
|
||||
|
||||
prin "$(color 16)┌─────────────────────$(color 12)SOFTWARE$(color 16)─────────────────────┐"
|
||||
info "$(color 9) OS" distro
|
||||
info "$(color 9) Kernel" kernel
|
||||
info "$(color 9) Packages" packages
|
||||
info "$(color 3) Terminal" term
|
||||
info "$(color 3) Font" term_font
|
||||
info "$(color 3) Shell" shell
|
||||
info "$(color 2) DE/WM" de
|
||||
info "$(color 2) Theme" theme
|
||||
info "$(color 2) Icons" icons
|
||||
prin "$(color 16)└──────────────────────────────────────────────────┘"
|
||||
|
||||
prin "$(color 16)┌─────────────────────$(color 12)HARDWARE$(color 16)─────────────────────┐"
|
||||
info "$(color 5) PC " model
|
||||
info "$(color 4) CPU" cpu
|
||||
info "$(color 4) GPU" gpu
|
||||
info "$(color 4) RAM" memory
|
||||
# info "$(color 6) Disk" disk
|
||||
# info "$(color 6) BAT" battery
|
||||
info "$(color 2) Uptime" uptime
|
||||
info "$(color 2) Resolution" resolution
|
||||
prin "$(color 16)└──────────────────────────────────────────────────┘"
|
||||
|
||||
echo
|
||||
prin "$(color 1)${dot}$(color 2)${dot}$(color 3)${dot}$(color 4)${dot}$(color 5)${dot}$(color 6)${dot}$(color 7)${dot}$(color 8)${dot}\n \n $(color 9)${dot}$(color 10)${dot}$(color 11)${dot}$(color 12)${dot}$(color 13)${dot}$(color 14)${dot}$(color 15)${dot}$(color 16)${dot}"
|
||||
# prin "$(color 1) 1 $(color 2) 2 $(color 3) 3 $(color 4) 4 $(color 5) 5 $(color 6) 6 $(color 7) 7 $(color 8) 8 \n \n $(color 9) \n 9 $(color 10) 10 $(color 11) 11 $(color 12) 12 $(color 13) 13 $(color 14) 14 $(color 15) 15 $(color 16) 16 "
|
||||
# prin "$(color 5) Eat , $(color 3)Sleep , $(color 6)Linux ."
|
||||
}
|
||||
|
||||
dot=" ⬤ "
|
||||
|
||||
##--------- Title
|
||||
|
||||
# Hide/Show Fully qualified domain name.
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --title_fqdn
|
||||
title_fqdn="off"
|
||||
|
||||
|
||||
##--------- Kernel
|
||||
|
||||
# Shorten the output of the kernel function.
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --kernel_shorthand
|
||||
# Supports: Everything except *BSDs (except PacBSD and PC-BSD)
|
||||
#
|
||||
# Example:
|
||||
# on: '4.8.9-1-ARCH'
|
||||
# off: 'Linux 4.8.9-1-ARCH'
|
||||
kernel_shorthand="on"
|
||||
|
||||
|
||||
##--------- Distro
|
||||
|
||||
# Shorten the output of the distro function
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'tiny', 'off'
|
||||
# Flag: --distro_shorthand
|
||||
# Supports: Everything except Windows and Haiku
|
||||
distro_shorthand="off"
|
||||
|
||||
# Show/Hide OS Architecture.
|
||||
# Show 'x86_64', 'x86' and etc in 'Distro:' output.
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --os_arch
|
||||
#
|
||||
# Example:
|
||||
# on: 'Arch Linux x86_64'
|
||||
# off: 'Arch Linux'
|
||||
os_arch="on"
|
||||
|
||||
|
||||
##--------- Uptime
|
||||
|
||||
# Shorten the output of the uptime function
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'tiny', 'off'
|
||||
# Flag: --uptime_shorthand
|
||||
#
|
||||
# Example:
|
||||
# on: '2 days, 10 hours, 3 mins'
|
||||
# tiny: '2d 10h 3m'
|
||||
# off: '2 days, 10 hours, 3 minutes'
|
||||
uptime_shorthand="on"
|
||||
|
||||
|
||||
##--------- Memory
|
||||
|
||||
# Show memory pecentage in output.
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --memory_percent
|
||||
#
|
||||
# Example:
|
||||
# on: '1801MiB / 7881MiB (22%)'
|
||||
# off: '1801MiB / 7881MiB'
|
||||
memory_percent="off"
|
||||
|
||||
# Change memory output unit.
|
||||
#
|
||||
# Default: 'mib'
|
||||
# Values: 'kib', 'mib', 'gib'
|
||||
# Flag: --memory_unit
|
||||
#
|
||||
# Example:
|
||||
# kib '1020928KiB / 7117824KiB'
|
||||
# mib '1042MiB / 6951MiB'
|
||||
# gib: ' 0.98GiB / 6.79GiB'
|
||||
memory_unit="mib"
|
||||
|
||||
|
||||
##--------- Packages
|
||||
|
||||
# Show/Hide Package Manager names.
|
||||
#
|
||||
# Default: 'tiny'
|
||||
# Values: 'on', 'tiny' 'off'
|
||||
# Flag: --package_managers
|
||||
#
|
||||
# Example:
|
||||
# on: '998 (pacman), 8 (flatpak), 4 (snap)'
|
||||
# tiny: '908 (pacman, flatpak, snap)'
|
||||
# off: '908'
|
||||
package_managers="on"
|
||||
|
||||
|
||||
##--------- Shell
|
||||
|
||||
# Show the path to $SHELL
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --shell_path
|
||||
#
|
||||
# Example:
|
||||
# on: '/bin/bash'
|
||||
# off: 'bash'
|
||||
shell_path="off"
|
||||
|
||||
# Show $SHELL version
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --shell_version
|
||||
#
|
||||
# Example:
|
||||
# on: 'bash 4.4.5'
|
||||
# off: 'bash'
|
||||
shell_version="on"
|
||||
|
||||
|
||||
##--------- CPU
|
||||
|
||||
# CPU speed type
|
||||
#
|
||||
# Default: 'bios_limit'
|
||||
# Values: 'scaling_cur_freq', 'scaling_min_freq', 'scaling_max_freq', 'bios_limit'.
|
||||
# Flag: --speed_type
|
||||
# Supports: Linux with 'cpufreq'
|
||||
# NOTE: Any file in '/sys/devices/system/cpu/cpu0/cpufreq' can be used as a value.
|
||||
speed_type="bios_limit"
|
||||
|
||||
# CPU speed shorthand
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'off'.
|
||||
# Flag: --speed_shorthand
|
||||
# NOTE: This flag is not supported in systems with CPU speed less than 1 GHz
|
||||
#
|
||||
# Example:
|
||||
# on: 'i7-6500U (4) @ 3.1GHz'
|
||||
# off: 'i7-6500U (4) @ 3.100GHz'
|
||||
speed_shorthand="off"
|
||||
|
||||
# Enable/Disable CPU brand in output.
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --cpu_brand
|
||||
#
|
||||
# Example:
|
||||
# on: 'Intel i7-6500U'
|
||||
# off: 'i7-6500U (4)'
|
||||
cpu_brand="on"
|
||||
|
||||
# CPU Speed
|
||||
# Hide/Show CPU speed.
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --cpu_speed
|
||||
#
|
||||
# Example:
|
||||
# on: 'Intel i7-6500U (4) @ 3.1GHz'
|
||||
# off: 'Intel i7-6500U (4)'
|
||||
cpu_speed="on"
|
||||
|
||||
# CPU Cores
|
||||
# Display CPU cores in output
|
||||
#
|
||||
# Default: 'logical'
|
||||
# Values: 'logical', 'physical', 'off'
|
||||
# Flag: --cpu_cores
|
||||
# Support: 'physical' doesn't work on BSD.
|
||||
#
|
||||
# Example:
|
||||
# logical: 'Intel i7-6500U (4) @ 3.1GHz' (All virtual cores)
|
||||
# physical: 'Intel i7-6500U (2) @ 3.1GHz' (All physical cores)
|
||||
# off: 'Intel i7-6500U @ 3.1GHz'
|
||||
cpu_cores="logical"
|
||||
|
||||
# CPU Temperature
|
||||
# Hide/Show CPU temperature.
|
||||
# Note the temperature is added to the regular CPU function.
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'C', 'F', 'off'
|
||||
# Flag: --cpu_temp
|
||||
# Supports: Linux, BSD
|
||||
# NOTE: For FreeBSD and NetBSD-based systems, you'll need to enable
|
||||
# coretemp kernel module. This only supports newer Intel processors.
|
||||
#
|
||||
# Example:
|
||||
# C: 'Intel i7-6500U (4) @ 3.1GHz [27.2°C]'
|
||||
# F: 'Intel i7-6500U (4) @ 3.1GHz [82.0°F]'
|
||||
# off: 'Intel i7-6500U (4) @ 3.1GHz'
|
||||
cpu_temp="on"
|
||||
|
||||
|
||||
##--------- GPU
|
||||
|
||||
# Enable/Disable GPU Brand
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --gpu_brand
|
||||
#
|
||||
# Example:
|
||||
# on: 'AMD HD 7950'
|
||||
# off: 'HD 7950'
|
||||
gpu_brand="on"
|
||||
|
||||
# Which GPU to display
|
||||
#
|
||||
# Default: 'all'
|
||||
# Values: 'all', 'dedicated', 'integrated'
|
||||
# Flag: --gpu_type
|
||||
# Supports: Linux
|
||||
#
|
||||
# Example:
|
||||
# all:
|
||||
# GPU1: AMD HD 7950
|
||||
# GPU2: Intel Integrated Graphics
|
||||
#
|
||||
# dedicated:
|
||||
# GPU1: AMD HD 7950
|
||||
#
|
||||
# integrated:
|
||||
# GPU1: Intel Integrated Graphics
|
||||
gpu_type="all"
|
||||
|
||||
|
||||
##--------- Resolution
|
||||
|
||||
# Display refresh rate next to each monitor
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --refresh_rate
|
||||
# Supports: Doesn't work on Windows.
|
||||
#
|
||||
# Example:
|
||||
# on: '1920x1080 @ 60Hz'
|
||||
# off: '1920x1080'
|
||||
refresh_rate="off"
|
||||
|
||||
|
||||
##--------- Gtk Theme / Icons / Font
|
||||
|
||||
# Shorten output of GTK Theme / Icons / Font
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --gtk_shorthand
|
||||
#
|
||||
# Example:
|
||||
# on: 'Numix, Adwaita'
|
||||
# off: 'Numix [GTK2], Adwaita [GTK3]'
|
||||
gtk_shorthand="off"
|
||||
|
||||
# Enable/Disable gtk2 Theme / Icons / Font
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --gtk2
|
||||
#
|
||||
# Example:
|
||||
# on: 'Numix [GTK2], Adwaita [GTK3]'
|
||||
# off: 'Adwaita [GTK3]'
|
||||
gtk2="on"
|
||||
|
||||
# Enable/Disable gtk3 Theme / Icons / Font
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --gtk3
|
||||
#
|
||||
# Example:
|
||||
# on: 'Numix [GTK2], Adwaita [GTK3]'
|
||||
# off: 'Numix [GTK2]'
|
||||
gtk3="on"
|
||||
|
||||
|
||||
##--------- IP Address
|
||||
|
||||
# Website to ping for the public IP
|
||||
#
|
||||
# Default: 'http://ident.me'
|
||||
# Values: 'url'
|
||||
# Flag: --ip_host
|
||||
public_ip_host="http://ident.me"
|
||||
|
||||
# Public IP timeout.
|
||||
#
|
||||
# Default: '2'
|
||||
# Values: 'int'
|
||||
# Flag: --ip_timeout
|
||||
public_ip_timeout=2
|
||||
|
||||
# Desktop Environment
|
||||
|
||||
# Show Desktop Environment version
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --de_version
|
||||
de_version="on"
|
||||
|
||||
|
||||
##--------- Disk
|
||||
|
||||
# Which disks to display.
|
||||
# The values can be any /dev/sdXX, mount point or directory.
|
||||
# NOTE: By default we only show the disk info for '/'.
|
||||
#
|
||||
# Default: '/'
|
||||
# Values: '/', '/dev/sdXX', '/path/to/drive'.
|
||||
# Flag: --disk_show
|
||||
#
|
||||
# Example:
|
||||
# disk_show=('/' '/dev/sdb1'):
|
||||
# 'Disk (/): 74G / 118G (66%)'
|
||||
# 'Disk (/mnt/Videos): 823G / 893G (93%)'
|
||||
#
|
||||
# disk_show=('/'):
|
||||
# 'Disk (/): 74G / 118G (66%)'
|
||||
#
|
||||
disk_show=('/')
|
||||
|
||||
# Disk subtitle.
|
||||
# What to append to the Disk subtitle.
|
||||
#
|
||||
# Default: 'mount'
|
||||
# Values: 'mount', 'name', 'dir', 'none'
|
||||
# Flag: --disk_subtitle
|
||||
#
|
||||
# Example:
|
||||
# name: 'Disk (/dev/sda1): 74G / 118G (66%)'
|
||||
# 'Disk (/dev/sdb2): 74G / 118G (66%)'
|
||||
#
|
||||
# mount: 'Disk (/): 74G / 118G (66%)'
|
||||
# 'Disk (/mnt/Local Disk): 74G / 118G (66%)'
|
||||
# 'Disk (/mnt/Videos): 74G / 118G (66%)'
|
||||
#
|
||||
# dir: 'Disk (/): 74G / 118G (66%)'
|
||||
# 'Disk (Local Disk): 74G / 118G (66%)'
|
||||
# 'Disk (Videos): 74G / 118G (66%)'
|
||||
#
|
||||
# none: 'Disk: 74G / 118G (66%)'
|
||||
# 'Disk: 74G / 118G (66%)'
|
||||
# 'Disk: 74G / 118G (66%)'
|
||||
disk_subtitle="mount"
|
||||
|
||||
# Disk percent.
|
||||
# Show/Hide disk percent.
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --disk_percent
|
||||
#
|
||||
# Example:
|
||||
# on: 'Disk (/): 74G / 118G (66%)'
|
||||
# off: 'Disk (/): 74G / 118G'
|
||||
disk_percent="on"
|
||||
|
||||
|
||||
##--------- Song
|
||||
|
||||
# Manually specify a music player.
|
||||
#
|
||||
# Default: 'auto'
|
||||
# Values: 'auto', 'player-name'
|
||||
# Flag: --music_player
|
||||
#
|
||||
# Available values for 'player-name':
|
||||
#
|
||||
# amarok
|
||||
# audacious
|
||||
# banshee
|
||||
# bluemindo
|
||||
# clementine
|
||||
# cmus
|
||||
# deadbeef
|
||||
# deepin-music
|
||||
# dragon
|
||||
# elisa
|
||||
# exaile
|
||||
# gnome-music
|
||||
# gmusicbrowser
|
||||
# gogglesmm
|
||||
# guayadeque
|
||||
# io.elementary.music
|
||||
# iTunes
|
||||
# juk
|
||||
# lollypop
|
||||
# mocp
|
||||
# mopidy
|
||||
# mpd
|
||||
# muine
|
||||
# netease-cloud-music
|
||||
# olivia
|
||||
# playerctl
|
||||
# pogo
|
||||
# pragha
|
||||
# qmmp
|
||||
# quodlibet
|
||||
# rhythmbox
|
||||
# sayonara
|
||||
# smplayer
|
||||
# spotify
|
||||
# strawberry
|
||||
# tauonmb
|
||||
# tomahawk
|
||||
# vlc
|
||||
# xmms2d
|
||||
# xnoise
|
||||
# yarock
|
||||
music_player="auto"
|
||||
|
||||
# Format to display song information.
|
||||
#
|
||||
# Default: '%artist% - %album% - %title%'
|
||||
# Values: '%artist%', '%album%', '%title%'
|
||||
# Flag: --song_format
|
||||
#
|
||||
# Example:
|
||||
# default: 'Song: Jet - Get Born - Sgt Major'
|
||||
song_format="%artist% - %album% - %title%"
|
||||
|
||||
# Print the Artist, Album and Title on separate lines
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --song_shorthand
|
||||
#
|
||||
# Example:
|
||||
# on: 'Artist: The Fratellis'
|
||||
# 'Album: Costello Music'
|
||||
# 'Song: Chelsea Dagger'
|
||||
#
|
||||
# off: 'Song: The Fratellis - Costello Music - Chelsea Dagger'
|
||||
song_shorthand="off"
|
||||
|
||||
# 'mpc' arguments (specify a host, password etc).
|
||||
#
|
||||
# Default: ''
|
||||
# Example: mpc_args=(-h HOST -P PASSWORD)
|
||||
mpc_args=()
|
||||
|
||||
|
||||
##--------- Text Colors
|
||||
|
||||
# Text Colors
|
||||
#
|
||||
# Default: 'distro'
|
||||
# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num'
|
||||
# Flag: --colors
|
||||
#
|
||||
# Each number represents a different part of the text in
|
||||
# this order: 'title', '@', 'underline', 'subtitle', 'colon', 'info'
|
||||
#
|
||||
# Example:
|
||||
# colors=(distro) - Text is colored based on Distro colors.
|
||||
# colors=(4 6 1 8 8 6) - Text is colored in the order above.
|
||||
colors=(distro)
|
||||
|
||||
|
||||
##--------- Text Options
|
||||
|
||||
# Toggle bold text
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --bold
|
||||
bold="on"
|
||||
|
||||
# Enable/Disable Underline
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --underline
|
||||
underline_enabled="on"
|
||||
|
||||
# Underline character
|
||||
#
|
||||
# Default: '-'
|
||||
# Values: 'string'
|
||||
# Flag: --underline_char
|
||||
underline_char=""
|
||||
|
||||
# Info Separator
|
||||
# Replace the default separator with the specified string.
|
||||
#
|
||||
# Default: ':'
|
||||
# Flag: --separator
|
||||
#
|
||||
# Example:
|
||||
# separator="->": 'Shell-> bash'
|
||||
# separator=" =": 'WM = dwm'
|
||||
separator="$(color 8) ➜" # ›
|
||||
|
||||
|
||||
##--------- Color Blocks
|
||||
|
||||
# Color block range
|
||||
# The range of colors to print.
|
||||
#
|
||||
# Default: '0', '15'
|
||||
# Values: 'num'
|
||||
# Flag: --block_range
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# Display colors 0-7 in the blocks. (8 colors)
|
||||
# neofetch --block_range 0 7
|
||||
#
|
||||
# Display colors 0-15 in the blocks. (16 colors)
|
||||
# neofetch --block_range 0 15
|
||||
block_range=(0 15)
|
||||
|
||||
# Toggle color blocks
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --color_blocks
|
||||
color_blocks="on"
|
||||
|
||||
# Color block width in spaces
|
||||
#
|
||||
# Default: '3'
|
||||
# Values: 'num'
|
||||
# Flag: --block_width
|
||||
block_width=3
|
||||
|
||||
# Color block height in lines
|
||||
#
|
||||
# Default: '1'
|
||||
# Values: 'num'
|
||||
# Flag: --block_height
|
||||
block_height=1
|
||||
|
||||
# Color Alignment
|
||||
#
|
||||
# Default: 'auto'
|
||||
# Values: 'auto', 'num'
|
||||
# Flag: --col_offset
|
||||
#
|
||||
# Number specifies how far from the left side of the terminal (in spaces) to
|
||||
# begin printing the columns, in case you want to e.g. center them under your
|
||||
# text.
|
||||
# Example:
|
||||
# col_offset="auto" - Default behavior of neofetch
|
||||
# col_offset=7 - Leave 7 spaces then print the colors
|
||||
col_offset="auto"
|
||||
|
||||
##--------- Progress Bars
|
||||
|
||||
# Bar characters
|
||||
#
|
||||
# Default: '-', '='
|
||||
# Values: 'string', 'string'
|
||||
# Flag: --bar_char
|
||||
#
|
||||
# Example:
|
||||
# neofetch --bar_char 'elapsed' 'total'
|
||||
# neofetch --bar_char '-' '='
|
||||
bar_char_elapsed="-"
|
||||
bar_char_total="="
|
||||
|
||||
# Toggle Bar border
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --bar_border
|
||||
bar_border="on"
|
||||
|
||||
# Progress bar length in spaces
|
||||
# Number of chars long to make the progress bars.
|
||||
#
|
||||
# Default: '15'
|
||||
# Values: 'num'
|
||||
# Flag: --bar_length
|
||||
bar_length=15
|
||||
|
||||
# Progress bar colors
|
||||
# When set to distro, uses your distro's logo colors.
|
||||
#
|
||||
# Default: 'distro', 'distro'
|
||||
# Values: 'distro', 'num'
|
||||
# Flag: --bar_colors
|
||||
#
|
||||
# Example:
|
||||
# neofetch --bar_colors 3 4
|
||||
# neofetch --bar_colors distro 5
|
||||
bar_color_elapsed="distro"
|
||||
bar_color_total="distro"
|
||||
|
||||
# Info display
|
||||
# Display a bar with the info.
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'bar', 'infobar', 'barinfo', 'off'
|
||||
# Flags: --cpu_display
|
||||
# --memory_display
|
||||
# --battery_display
|
||||
# --disk_display
|
||||
#
|
||||
# Example:
|
||||
# bar: '[---=======]'
|
||||
# infobar: 'info [---=======]'
|
||||
# barinfo: '[---=======] info'
|
||||
# off: 'info'
|
||||
cpu_display="off"
|
||||
memory_display="off"
|
||||
battery_display="off"
|
||||
disk_display="off"
|
||||
|
||||
|
||||
##--------- Backend Settings
|
||||
|
||||
# Image backend.
|
||||
#
|
||||
# Default: 'ascii'
|
||||
# Values: 'ascii', 'caca', 'chafa', 'jp2a', 'iterm2', 'off',
|
||||
# 'pot', 'termpix', 'pixterm', 'tycat', 'w3m', 'kitty'
|
||||
# Flag: --backend
|
||||
image_backend="ascii"
|
||||
|
||||
# Image Source
|
||||
#
|
||||
# Which image or ascii file to display.
|
||||
#
|
||||
# Default: 'auto'
|
||||
# Values: 'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/'
|
||||
# 'command output (neofetch --ascii "$(fortune | cowsay -W 30)")'
|
||||
# Flag: --source
|
||||
#
|
||||
# NOTE: 'auto' will pick the best image source for whatever image backend is used.
|
||||
# In ascii mode, distro ascii art will be used and in an image mode, your
|
||||
# wallpaper will be used.
|
||||
image_source="auto"
|
||||
|
||||
|
||||
##--------- Ascii Options
|
||||
|
||||
# Ascii distro
|
||||
# Which distro's ascii art to display.
|
||||
#
|
||||
# Default: 'auto'
|
||||
# Values: 'auto', 'distro_name'
|
||||
# Flag: --ascii_distro
|
||||
# NOTE: AIX, Alpine, Anarchy, Android, Antergos, antiX, "AOSC OS",
|
||||
# "AOSC OS/Retro", Apricity, ArcoLinux, ArchBox, ARCHlabs,
|
||||
# ArchStrike, XFerience, ArchMerge, Arch, Artix, Arya, Bedrock,
|
||||
# Bitrig, BlackArch, BLAG, BlankOn, BlueLight, bonsai, BSD,
|
||||
# BunsenLabs, Calculate, Carbs, CentOS, Chakra, ChaletOS,
|
||||
# Chapeau, Chrom*, Cleanjaro, ClearOS, Clear_Linux, Clover,
|
||||
# Condres, Container_Linux, CRUX, Cucumber, Debian, Deepin,
|
||||
# DesaOS, Devuan, DracOS, DarkOs, DragonFly, Drauger, Elementary,
|
||||
# EndeavourOS, Endless, EuroLinux, Exherbo, Fedora, Feren, FreeBSD,
|
||||
# FreeMiNT, Frugalware, Funtoo, GalliumOS, Garuda, Gentoo, Pentoo,
|
||||
# gNewSense, GNOME, GNU, GoboLinux, Grombyang, Guix, Haiku, Huayra,
|
||||
# Hyperbola, janus, Kali, KaOS, KDE_neon, Kibojoe, Kogaion,
|
||||
# Korora, KSLinux, Kubuntu, LEDE, LFS, Linux_Lite,
|
||||
# LMDE, Lubuntu, Lunar, macos, Mageia, MagpieOS, Mandriva,
|
||||
# Manjaro, Maui, Mer, Minix, LinuxMint, MX_Linux, Namib,
|
||||
# Neptune, NetBSD, Netrunner, Nitrux, NixOS, Nurunner,
|
||||
# NuTyX, OBRevenge, OpenBSD, openEuler, OpenIndiana, openmamba,
|
||||
# OpenMandriva, OpenStage, OpenWrt, osmc, Oracle, OS Elbrus, PacBSD,
|
||||
# Parabola, Pardus, Parrot, Parsix, TrueOS, PCLinuxOS, Peppermint,
|
||||
# popos, Porteus, PostMarketOS, Proxmox, Puppy, PureOS, Qubes, Radix,
|
||||
# Raspbian, Reborn_OS, Redstar, Redcore, Redhat, Refracted_Devuan,
|
||||
# Regata, Rosa, sabotage, Sabayon, Sailfish, SalentOS, Scientific,
|
||||
# Septor, SereneLinux, SharkLinux, Siduction, Slackware, SliTaz,
|
||||
# SmartOS, Solus, Source_Mage, Sparky, Star, SteamOS, SunOS,
|
||||
# openSUSE_Leap, openSUSE_Tumbleweed, openSUSE, SwagArch, Tails,
|
||||
# Trisquel, Ubuntu-Budgie, Ubuntu-GNOME, Ubuntu-MATE, Ubuntu-Studio,
|
||||
# Ubuntu, Venom, Void, Obarun, windows10, Windows7, Xubuntu, Zorin,
|
||||
# and IRIX have ascii logos
|
||||
# NOTE: Arch, Ubuntu, Redhat, and Dragonfly have 'old' logo variants.
|
||||
# Use '{distro name}_old' to use the old logos.
|
||||
# NOTE: Ubuntu has flavor variants.
|
||||
# Change this to Lubuntu, Kubuntu, Xubuntu, Ubuntu-GNOME,
|
||||
# Ubuntu-Studio, Ubuntu-Mate or Ubuntu-Budgie to use the flavors.
|
||||
# NOTE: Arcolinux, Dragonfly, Fedora, Alpine, Arch, Ubuntu,
|
||||
# CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, OpenBSD, android,
|
||||
# Antrix, CentOS, Cleanjaro, ElementaryOS, GUIX, Hyperbola,
|
||||
# Manjaro, MXLinux, NetBSD, Parabola, POP_OS, PureOS,
|
||||
# Slackware, SunOS, LinuxLite, OpenSUSE, Raspbian,
|
||||
# postmarketOS, and Void have a smaller logo variant.
|
||||
# Use '{distro name}_small' to use the small variants.
|
||||
ascii_distro="auto"
|
||||
|
||||
# Ascii Colors
|
||||
#
|
||||
# Default: 'distro'
|
||||
# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num'
|
||||
# Flag: --ascii_colors
|
||||
#
|
||||
# Example:
|
||||
# ascii_colors=(distro) - Ascii is colored based on Distro colors.
|
||||
# ascii_colors=(4 6 1 8 8 6) - Ascii is colored using these colors.
|
||||
# ascii_colors=(1 2 3 4 5 6 7 8)
|
||||
|
||||
# Bold ascii logo
|
||||
# Whether or not to bold the ascii logo.
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --ascii_bold
|
||||
ascii_bold="on"
|
||||
|
||||
|
||||
##--------- Image Options
|
||||
|
||||
# Image loop
|
||||
# Setting this to on will make neofetch redraw the image constantly until
|
||||
# Ctrl+C is pressed. This fixes display issues in some terminal emulators.
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --loop
|
||||
image_loop="off"
|
||||
|
||||
# Thumbnail directory
|
||||
#
|
||||
# Default: '~/.cache/thumbnails/neofetch'
|
||||
# Values: 'dir'
|
||||
thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch"
|
||||
|
||||
# Crop mode
|
||||
#
|
||||
# Default: 'normal'
|
||||
# Values: 'normal', 'fit', 'fill'
|
||||
# Flag: --crop_mode
|
||||
#
|
||||
# See this wiki page to learn about the fit and fill options.
|
||||
# https://github.com/dylanaraps/neofetch/wiki/What-is-Waifu-Crop%3F
|
||||
crop_mode="normal"
|
||||
|
||||
# Crop offset
|
||||
# Note: Only affects 'normal' crop mode.
|
||||
#
|
||||
# Default: 'center'
|
||||
# Values: 'northwest', 'north', 'northeast', 'west', 'center'
|
||||
# 'east', 'southwest', 'south', 'southeast'
|
||||
# Flag: --crop_offset
|
||||
crop_offset="center"
|
||||
|
||||
# Image size
|
||||
# The image is half the terminal width by default.
|
||||
#
|
||||
# Default: 'auto'
|
||||
# Values: 'auto', '00px', '00%', 'none'
|
||||
# Flags: --image_size
|
||||
# --size
|
||||
image_size="auto"
|
||||
|
||||
# Gap between image and text
|
||||
#
|
||||
# Default: '3'
|
||||
# Values: 'num', '-num'
|
||||
# Flag: --gap
|
||||
gap=2
|
||||
|
||||
# Image offsets
|
||||
# Only works with the w3m backend.
|
||||
#
|
||||
# Default: '0'
|
||||
# Values: 'px'
|
||||
# Flags: --xoffset
|
||||
# --yoffset
|
||||
yoffset=0
|
||||
xoffset=0
|
||||
|
||||
# Image background color
|
||||
# Only works with the w3m backend.
|
||||
#
|
||||
# Default: ''
|
||||
# Values: 'color', 'blue'
|
||||
# Flag: --bg_color
|
||||
background_color=
|
||||
|
||||
|
||||
##--------- Misc Options
|
||||
|
||||
# Stdout mode
|
||||
# Turn off all colors and disables image backend (ASCII/Image).
|
||||
# Useful for piping into another command.
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'off'
|
||||
stdout="off"
|
|
@ -19,7 +19,7 @@ DesktopCellMargins=@Size(3 1)
|
|||
DesktopIconSize=48
|
||||
DesktopShortcuts=@Invalid()
|
||||
FgColor=#ffffff
|
||||
Font="Sans Serif,9,-1,5,50,0,0,0,0,0"
|
||||
Font="Sans Serif,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1"
|
||||
HideItems=false
|
||||
LastSlide=
|
||||
OpenWithDefaultFileManager=false
|
||||
|
@ -84,7 +84,7 @@ SIUnit=false
|
|||
SuCommand=lxqt-sudo %s
|
||||
TemplateRunApp=false
|
||||
TemplateTypeOnce=false
|
||||
Terminal=alacritty
|
||||
Terminal=kitty
|
||||
|
||||
[Thumbnail]
|
||||
MaxExternalThumbnailFileSize=-1
|
||||
|
@ -102,9 +102,9 @@ MountRemovable=true
|
|||
AlwaysShowTabs=true
|
||||
FixedHeight=480
|
||||
FixedWidth=640
|
||||
LastWindowHeight=657
|
||||
LastWindowHeight=571
|
||||
LastWindowMaximized=true
|
||||
LastWindowWidth=962
|
||||
LastWindowWidth=466
|
||||
PathBarButtons=true
|
||||
RememberWindowSize=true
|
||||
ReopenLastTabs=false
|
||||
|
@ -113,6 +113,7 @@ ShowTabClose=true
|
|||
SidePaneMode=places
|
||||
SidePaneVisible=true
|
||||
SplitView=false
|
||||
SplitViewTabsNum=0
|
||||
SplitterPos=150
|
||||
SwitchToNewTab=false
|
||||
TabPaths=@Invalid()
|
||||
|
|
|
@ -1,844 +0,0 @@
|
|||
|
||||
[General]
|
||||
version=5.0.1
|
||||
allow_multiple_instances=-1
|
||||
width=800
|
||||
always_on_top=0
|
||||
enable_tooltips=1
|
||||
keep_function_dialog_open=0
|
||||
error_info_shown=1
|
||||
save_mode_on_exit=1
|
||||
save_definitions_on_exit=1
|
||||
clear_history_on_exit=0
|
||||
save_history_separately=0
|
||||
history_expression_type=2
|
||||
ignore_locale=0
|
||||
load_global_definitions=1
|
||||
auto_update_exchange_rates=-1
|
||||
local_currency_conversion=1
|
||||
use_binary_prefixes=0
|
||||
check_version=0
|
||||
show_keypad=1
|
||||
show_history=0
|
||||
history_height=318
|
||||
minimal_width=500
|
||||
show_stack=1
|
||||
show_convert=0
|
||||
persistent_keypad=0
|
||||
minimal_mode=0
|
||||
show_bases_keypad=1
|
||||
continuous_conversion=1
|
||||
set_missing_prefixes=0
|
||||
rpn_keys=1
|
||||
display_expression_status=1
|
||||
parsed_expression_in_resultview=0
|
||||
enable_completion=1
|
||||
enable_completion2=1
|
||||
completion_min=1
|
||||
completion_min2=1
|
||||
completion_delay=0
|
||||
calculate_as_you_type_history_delay=2000
|
||||
use_unicode_signs=1
|
||||
lower_case_numbers=0
|
||||
duodecimal_symbols=0
|
||||
exp_display=3
|
||||
imaginary_j=0
|
||||
base_display=1
|
||||
twos_complement=1
|
||||
hexadecimal_twos_complement=0
|
||||
twos_complement_input=0
|
||||
hexadecimal_twos_complement_input=0
|
||||
programming_outbase=10
|
||||
programming_inbase=10
|
||||
spell_out_logical_operators=1
|
||||
caret_as_xor=0
|
||||
close_with_esc=-1
|
||||
digit_grouping=1
|
||||
copy_ascii=0
|
||||
copy_ascii_without_units=0
|
||||
decimal_comma=-1
|
||||
dot_as_separator=-1
|
||||
comma_as_separator=0
|
||||
gtk_theme=1
|
||||
vertical_button_padding=-1
|
||||
horizontal_button_padding=-1
|
||||
use_custom_result_font=0
|
||||
use_custom_expression_font=0
|
||||
use_custom_status_font=0
|
||||
use_custom_keypad_font=0
|
||||
use_custom_history_font=0
|
||||
use_custom_application_font=0
|
||||
multiplication_sign=2
|
||||
division_sign=1
|
||||
automatic_number_fraction_format=1
|
||||
expression_history=95czk
|
||||
expression_history=135czk
|
||||
expression_history=127czk
|
||||
expression_history=127
|
||||
expression_history=comb(30,2)×comb(25,2)×comb(20,1)
|
||||
expression_history=8!/(5!×3!)×8
|
||||
expression_history=comb(8, 3)×8
|
||||
expression_history=comb(8, 3)
|
||||
expression_history=4!×2
|
||||
expression_history=9×9×8×7×6×5
|
||||
expression_history=6!
|
||||
expression_history=2520/7!
|
||||
expression_history=7!
|
||||
expression_history=comb(45, 2)
|
||||
expression_history=(comb(64, 3))−comb(8,3)×8
|
||||
expression_history=(comb(64, 3))−comb(8,3)
|
||||
expression_history=(comb(64, 3))
|
||||
expression_history=(comb(56, 2)×comb(8, 1))×(comb(56, 1)×comb(8, 2))
|
||||
expression_history=(comb(56, 2)×comb(8, 1))+(comb(56, 1)×comb(8, 2))
|
||||
expression_history=comb(32, 2)×comb(32, 1)×2
|
||||
expression_history=4!×3!×2!×3!
|
||||
expression_history=8!
|
||||
expression_history=5×4
|
||||
expression_history=5×4×3
|
||||
expression_history=3!×3×2×2
|
||||
expression_history=5!×2
|
||||
expression_history=4!
|
||||
expression_history=4!×2×2
|
||||
expression_history=(5!)×2
|
||||
expression_history=5!
|
||||
expression_history=6×5×4×3×2×1
|
||||
expression_history=6×5×4×6×2×1
|
||||
expression_history=10!/(8!)
|
||||
expression_history=comb(8, 2)×comb(10, 4)+comb(8, 1)×comb(10, 5)+comb(10, 6)
|
||||
expression_history=comb(10,2)×comb(8,4)
|
||||
expression_history=comb(10,2)+comb(8,4)
|
||||
expression_history=comb(10,2)+comb(16,4)
|
||||
expression_history=10×9×16×15×14×13
|
||||
expression_history=4×4×3×2
|
||||
expression_history=3×4×3×2
|
||||
expression_history=3×4×3
|
||||
expression_history=2×4×3×2
|
||||
expression_history=2×4×3×2×1
|
||||
expression_history=comb(8, 2)
|
||||
expression_history=8C2
|
||||
expression_history=8×7
|
||||
expression_history=10!/(5!×5!)
|
||||
expression_history=10!/5!
|
||||
expression_history=7!/((7−5)!×5!)
|
||||
expression_history=8!/((8−5)!×5!)
|
||||
expression_history=8!/((8−5)!)
|
||||
expression_history=8!/(8−5)!
|
||||
expression_history=8×7×6
|
||||
expression_history=4!×3!
|
||||
expression_history=1726697223328−60×15×1000
|
||||
expression_history=1726697223448−60×2
|
||||
expression_history=500/280
|
||||
expression_history=498/280
|
||||
expression_history=480×2
|
||||
expression_history=1280−480
|
||||
expression_history=((86400000/1000)/60)/60
|
||||
expression_history=(86400000/1000)/60
|
||||
expression_history=86400000/1000
|
||||
expression_history=34.8usd
|
||||
expression_history=50−15
|
||||
expression_history=22usd
|
||||
expression_history=180/20
|
||||
expression_history=log2(652618)
|
||||
expression_history=652618
|
||||
expression_history=bin(652618)
|
||||
expression_history=14500/4
|
||||
expression_history=80/8
|
||||
expression_history=324×25
|
||||
expression_history=300×25
|
||||
expression_history=638/7
|
||||
expression_history=2××7
|
||||
expression_history=(15000×300)/3.6
|
||||
expression_history=15000×300
|
||||
expression_history=250czk
|
||||
expression_history=5000czk
|
||||
expression_history=5czk
|
||||
expression_history=5k
|
||||
expression_history=1504.32/60
|
||||
expression_history=1504.32czk/60eur
|
||||
expression_history=30eur/1504.32czk
|
||||
expression_history=183.75czk
|
||||
expression_history=735/4
|
||||
expression_history=(3688czk)−3625czk
|
||||
expression_history=(3688czk)−3625
|
||||
expression_history=3688czk
|
||||
expression_history=14500czk/4
|
||||
expression_history=14500czk
|
||||
expression_history=184czk
|
||||
expression_history=735czk/4
|
||||
expression_history=735czk
|
||||
expression_history=35000czk
|
||||
expression_history=20000czk
|
||||
expression_history=29×3
|
||||
expression_history=(60×20)/60
|
||||
expression_history=60×20
|
||||
history_time=1727342283
|
||||
history_expression=95czk
|
||||
history_parse=95 CZK to EUR
|
||||
history_result_approximate=€3.781 395 534
|
||||
history_time=1727342267
|
||||
history_expression=135czk
|
||||
history_parse=135 CZK to EUR
|
||||
history_result_approximate=€5.373 562 075
|
||||
history_time=1727342265
|
||||
history_expression=127czk
|
||||
history_parse=127 CZK to EUR
|
||||
history_result_approximate=€5.055 128 766
|
||||
history_time=1727342263
|
||||
history_expression=127
|
||||
history_parse=127
|
||||
history_result=127
|
||||
history_time=1727342256
|
||||
history_expression=135czk
|
||||
history_parse=135 CZK
|
||||
history_result_approximate=$6.015 165 386
|
||||
history_time=1727342258
|
||||
history_result_approximate=CVE 592.542 690 0
|
||||
history_result_approximate=537.356 207 5 eurocents
|
||||
history_time=1727342259
|
||||
history_result_approximate=€5.373 562 075
|
||||
history_time=1727292570
|
||||
history_expression=comb(30,2)×comb(25,2)×comb(20,1)
|
||||
history_parse=comb(30, 2) × comb(25, 2) × comb(20, 1)
|
||||
history_result=2 610 000
|
||||
history_time=1727292525
|
||||
history_expression=8!/(5!×3!)×8
|
||||
history_parse=(factorial(8) ∕ (factorial(5) × factorial(3))) × 8
|
||||
history_result=448
|
||||
history_time=1727292493
|
||||
history_expression=comb(8, 3)×8
|
||||
history_parse=comb(8, 3) × 8
|
||||
history_result=448
|
||||
history_time=1727292489
|
||||
history_expression=comb(8, 3)
|
||||
history_parse=comb(8, 3)
|
||||
history_result=56
|
||||
history_time=1727292470
|
||||
history_expression=4!×2
|
||||
history_parse=factorial(4) × 2
|
||||
history_result=48
|
||||
history_time=1727292259
|
||||
history_expression=9×9×8×7×6×5
|
||||
history_parse=9 × 9 × 8 × 7 × 6 × 5
|
||||
history_result=136 080
|
||||
history_time=1727292219
|
||||
history_expression=6!
|
||||
history_parse=factorial(6)
|
||||
history_result=720
|
||||
history_time=1727281361
|
||||
history_expression=2520/7!
|
||||
history_parse=2520 ∕ factorial(7)
|
||||
history_result=0.5
|
||||
history_time=1727281337
|
||||
history_expression=7!
|
||||
history_parse=factorial(7)
|
||||
history_result=5040
|
||||
history_time=1727280771
|
||||
history_expression=comb(45, 2)
|
||||
history_parse=comb(45, 2)
|
||||
history_result=990
|
||||
history_time=1727280717
|
||||
history_expression=(comb(64, 3))−comb(8,3)×8
|
||||
history_parse=comb(64, 3) − (comb(8, 3) × 8)
|
||||
history_result=41 216
|
||||
history_time=1727280688
|
||||
history_expression=(comb(64, 3))−comb(8,3)
|
||||
history_parse=comb(64, 3) − comb(8, 3)
|
||||
history_result=41 608
|
||||
history_time=1727280639
|
||||
history_expression=(comb(64, 3))
|
||||
history_parse=comb(64, 3)
|
||||
history_result=41 664
|
||||
history_time=1727280572
|
||||
history_expression=(comb(56, 2)×comb(8, 1))×(comb(56, 1)×comb(8, 2))
|
||||
history_parse=(comb(56, 2) × comb(8, 1)) × (comb(56, 1) × comb(8, 2))
|
||||
history_result=19 317 760
|
||||
history_time=1727280500
|
||||
history_expression=(comb(56, 2)×comb(8, 1))+(comb(56, 1)×comb(8, 2))
|
||||
history_parse=(comb(56, 2) × comb(8, 1)) + (comb(56, 1) × comb(8, 2))
|
||||
history_result=13 888
|
||||
history_time=1727280492
|
||||
history_expression=(comb(56, 2)×comb(8, 1))×(comb(56, 1)×comb(8, 2))
|
||||
history_parse=(comb(56, 2) × comb(8, 1)) × (comb(56, 1) × comb(8, 2))
|
||||
history_result=19 317 760
|
||||
history_time=1727280408
|
||||
history_expression=comb(32, 2)×comb(32, 1)×2
|
||||
history_parse=comb(32, 2) × comb(32, 1) × 2
|
||||
history_result=31 744
|
||||
history_time=1727280364
|
||||
history_expression=4!×3!×2!×3!
|
||||
history_parse=factorial(4) × factorial(3) × factorial(2) × factorial(3)
|
||||
history_result=1728
|
||||
history_time=1727280317
|
||||
history_expression=8!
|
||||
history_parse=factorial(8)
|
||||
history_result=40 320
|
||||
history_time=1727280292
|
||||
history_expression=5×4
|
||||
history_parse=5 × 4
|
||||
history_result=20
|
||||
history_time=1727280285
|
||||
history_expression=5×4×3
|
||||
history_parse=5 × 4 × 3
|
||||
history_result=60
|
||||
history_time=1727280190
|
||||
history_expression=3!×3×2×2
|
||||
history_parse=factorial(3) × 3 × 2 × 2
|
||||
history_result=72
|
||||
history_time=1727279907
|
||||
history_expression=5!×2
|
||||
history_parse=factorial(5) × 2
|
||||
history_result=240
|
||||
history_time=1727279831
|
||||
history_expression=4!
|
||||
history_parse=factorial(4)
|
||||
history_result=24
|
||||
history_time=1727279830
|
||||
history_expression=4!×2
|
||||
history_parse=factorial(4) × 2
|
||||
history_result=48
|
||||
history_time=1727279778
|
||||
history_expression=4!×2×2
|
||||
history_parse=factorial(4) × 2 × 2
|
||||
history_result=96
|
||||
history_time=1727279719
|
||||
history_expression=(5!)×2
|
||||
history_parse=factorial(5) × 2
|
||||
history_result=240
|
||||
history_time=1727279715
|
||||
history_expression=5!
|
||||
history_parse=factorial(5)
|
||||
history_result=120
|
||||
history_time=1727279713
|
||||
history_expression=6!
|
||||
history_parse=factorial(6)
|
||||
history_result=720
|
||||
history_time=1727279701
|
||||
history_expression=5!
|
||||
history_parse=factorial(5)
|
||||
history_result=120
|
||||
history_time=1727279632
|
||||
history_expression=6×5×4×3×2×1
|
||||
history_parse=6 × 5 × 4 × 3 × 2 × 1
|
||||
history_result=720
|
||||
history_time=1727279622
|
||||
history_expression=6×5×4×6×2×1
|
||||
history_parse=6 × 5 × 4 × 6 × 2 × 1
|
||||
history_result=1440
|
||||
history_time=1727279485
|
||||
history_expression=6×5×4×6×2×1
|
||||
history_parse=6 × 5 × 4 × 6 × 2 × 1
|
||||
history_result=1440
|
||||
history_time=1727279609
|
||||
history_result=(8 × 10<sup>29</sup> ∕ 89 009 813) × √(α) × q<sub>P</sub>
|
||||
history_time=1727279432
|
||||
history_expression=10!/(8!)
|
||||
history_parse=factorial(10) ∕ factorial(8)
|
||||
history_result=90
|
||||
history_time=1727279388
|
||||
history_expression=comb(8, 2)×comb(10, 4)+comb(8, 1)×comb(10, 5)+comb(10, 6)
|
||||
history_parse=(comb(8, 2) × comb(10, 4)) + (comb(8, 1) × comb(10, 5)) + comb(10, 6)
|
||||
history_result=8106
|
||||
history_time=1727279314
|
||||
history_expression=comb(10,2)×comb(8,4)
|
||||
history_parse=comb(10, 2) × comb(8, 4)
|
||||
history_result=3150
|
||||
history_time=1727279296
|
||||
history_expression=comb(10,2)+comb(8,4)
|
||||
history_parse=comb(10, 2) + comb(8, 4)
|
||||
history_result=115
|
||||
history_time=1727279276
|
||||
history_expression=comb(10,2)+comb(16,4)
|
||||
history_parse=comb(10, 2) + comb(16, 4)
|
||||
history_result=1865
|
||||
history_time=1727279232
|
||||
history_expression=10×9×16×15×14×13
|
||||
history_parse=10 × 9 × 16 × 15 × 14 × 13
|
||||
history_result=3 931 200
|
||||
history_time=1727279148
|
||||
history_expression=4×4×3×2
|
||||
history_parse=4 × 4 × 3 × 2
|
||||
history_result=96
|
||||
history_time=1727279136
|
||||
history_expression=3×4×3×2
|
||||
history_parse=3 × 4 × 3 × 2
|
||||
history_result=72
|
||||
history_time=1727279114
|
||||
history_expression=3×4×3
|
||||
history_parse=3 × 4 × 3
|
||||
history_result=36
|
||||
history_time=1727278893
|
||||
history_expression=2×4×3×2
|
||||
history_parse=2 × 4 × 3 × 2
|
||||
history_result=48
|
||||
history_time=1727278843
|
||||
history_expression=2×4×3×2×1
|
||||
history_parse=2 × 4 × 3 × 2 × 1
|
||||
history_result=48
|
||||
history_time=1727278684
|
||||
history_expression=comb(8, 2)
|
||||
history_parse=comb(8, 2)
|
||||
history_result=28
|
||||
history_time=1727278667
|
||||
history_expression=8C2
|
||||
history_parse=8 coulomb<sup>2</sup>
|
||||
history_result=8 C<sup>2</sup>
|
||||
history_time=1727278616
|
||||
history_expression=8×7
|
||||
history_parse=8 × 7
|
||||
history_result=56
|
||||
history_time=1727278554
|
||||
history_expression=10!/(5!×5!)
|
||||
history_parse=factorial(10) ∕ (factorial(5) × factorial(5))
|
||||
history_result=252
|
||||
history_time=1727278540
|
||||
history_expression=10!/5!
|
||||
history_parse=factorial(10) ∕ factorial(5)
|
||||
history_result=30 240
|
||||
history_time=1727278512
|
||||
history_expression=7!/((7−5)!×5!)
|
||||
history_parse=factorial(7) ∕ (factorial(7 − 5) × factorial(5))
|
||||
history_result=21
|
||||
history_time=1727278486
|
||||
history_expression=8!/((8−5)!×5!)
|
||||
history_parse=factorial(8) ∕ (factorial(8 − 5) × factorial(5))
|
||||
history_result=56
|
||||
history_time=1727278425
|
||||
history_expression=8!/(8−5)!
|
||||
history_parse=factorial(8) ∕ factorial(8 − 5)
|
||||
history_result=6720
|
||||
history_time=1727278231
|
||||
history_expression=8×7×6
|
||||
history_parse=8 × 7 × 6
|
||||
history_result=336
|
||||
history_time=1727276103
|
||||
history_expression=4!×3!
|
||||
history_parse=factorial(4) × factorial(3)
|
||||
history_result=144
|
||||
history_time=1726696097
|
||||
history_expression=1726697223328−60×15×1000
|
||||
history_parse=1 726 697 223 328 − (60 × 15 × 1000)
|
||||
history_result=1 726 696 323 328
|
||||
history_time=1726696068
|
||||
history_expression=1726697223448−60×2
|
||||
history_parse=1 726 697 223 448 − (60 × 2)
|
||||
history_result=1 726 697 223 328
|
||||
history_time=1726619113
|
||||
history_expression=500/280
|
||||
history_parse=500 ∕ 280
|
||||
history_result=25 ∕ 14
|
||||
history_time=1726619106
|
||||
history_expression=498/280
|
||||
history_parse=498 ∕ 280
|
||||
history_result=249 ∕ 140
|
||||
history_time=1726593466
|
||||
history_expression=480×2
|
||||
history_parse=480 × 2
|
||||
history_result=960
|
||||
history_time=1726592811
|
||||
history_expression=1280−480
|
||||
history_parse=1280 − 480
|
||||
history_result=800
|
||||
history_time=1726523587
|
||||
history_expression=((86400000/1000)/60)/60
|
||||
history_parse=((86 400 000 ∕ 1000) ∕ 60) ∕ 60
|
||||
history_result=24
|
||||
history_time=1726523579
|
||||
history_expression=(86400000/1000)/60
|
||||
history_parse=(86 400 000 ∕ 1000) ∕ 60
|
||||
history_result=1440
|
||||
history_time=1726523576
|
||||
history_expression=86400000/1000
|
||||
history_parse=86 400 000 ∕ 1000
|
||||
history_result=86 400
|
||||
history_time=1726496554
|
||||
history_expression=34.8usd
|
||||
history_parse=34.8 USD
|
||||
history_result=$34.8
|
||||
history_time=1726496555
|
||||
history_result_approximate=CVE 3449.034 694
|
||||
history_result_approximate=3127.808 736 eurocents
|
||||
history_time=1726496556
|
||||
history_result_approximate=€31.278 087 36
|
||||
history_time=1726234180
|
||||
history_expression=50−15
|
||||
history_parse=50 − 15
|
||||
history_result=35
|
||||
history_time=1726162266
|
||||
history_expression=22usd
|
||||
history_parse=22 USD
|
||||
history_result=$22
|
||||
history_time=1726162273
|
||||
history_result_approximate=CVE 2202.196 805
|
||||
history_result_approximate=1997.095 134 eurocents
|
||||
history_time=1726162274
|
||||
history_result_approximate=€19.970 951 34
|
||||
history_time=1726060907
|
||||
history_expression=180/20
|
||||
history_parse=180 ∕ 20
|
||||
history_result=9
|
||||
history_time=1726046557
|
||||
history_expression=log2(652618)
|
||||
history_parse=log<sub>2</sub>(652 618)
|
||||
history_result_approximate=19.315 879 25
|
||||
history_time=1726046521
|
||||
history_expression=652618
|
||||
history_parse=652 618
|
||||
history_result=652 618
|
||||
history_time=1726046530
|
||||
history_result=0000 0000 0000 1001 1111 0101 0100 1010<sub><small>2</small></sub>
|
||||
history_time=1726046551
|
||||
history_result=652 618
|
||||
history_time=1726046517
|
||||
history_expression=bin(652618)
|
||||
history_parse=bin(<i>"652618"</i>)
|
||||
history_error=Character '6' was ignored in the number "652618" with base 2.
|
||||
history_error=Character '5' was ignored in the number "652618" with base 2.
|
||||
history_error=Character '2' was ignored in the number "652618" with base 2.
|
||||
history_error=Character '8' was ignored in the number "652618" with base 2.
|
||||
history_result=1
|
||||
history_time=1726046512
|
||||
history_expression=652618
|
||||
history_parse=652 618
|
||||
history_result=652 618
|
||||
history_time=1725978858
|
||||
history_expression=14500/4
|
||||
history_parse=14 500 ∕ 4
|
||||
history_result=3625
|
||||
history_time=1725574098
|
||||
history_expression=80/8
|
||||
history_parse=80 ∕ 8
|
||||
history_result=10
|
||||
history_time=1725463240
|
||||
history_expression=324×25
|
||||
history_parse=324 × 25
|
||||
history_result=8100
|
||||
history_time=1725463233
|
||||
history_expression=300×25
|
||||
history_parse=300 × 25
|
||||
history_result=7500
|
||||
history_time=1725105187
|
||||
history_expression=638/7
|
||||
history_parse=638 ∕ 7
|
||||
history_result_approximate=91.142 857 14
|
||||
history_time=1725104792
|
||||
history_expression=2××7
|
||||
history_parse=2<sup>7</sup>
|
||||
history_result=128
|
||||
history_time=1724192718
|
||||
history_expression=(15000×300)/3.6
|
||||
history_parse=(15 000 × 300) ∕ 3.6
|
||||
history_result=1 250 000
|
||||
history_time=1724192715
|
||||
history_expression=15000×300
|
||||
history_parse=15 000 × 300
|
||||
history_result=4 500 000
|
||||
history_time=1724173179
|
||||
history_expression=250czk
|
||||
history_parse=250 CZK
|
||||
history_result_approximate=$11.014 389 06
|
||||
history_time=1724173180
|
||||
history_result_approximate=CVE 1095.774 704
|
||||
history_result_approximate=993.719 691 5 eurocents
|
||||
history_time=1724173181
|
||||
history_result_approximate=€9.937 196 915
|
||||
history_time=1724172274
|
||||
history_expression=5000czk
|
||||
history_parse=5000 CZK
|
||||
history_result_approximate=$220.287 781 2
|
||||
history_time=1724172276
|
||||
history_result_approximate=CDF 630 288.4268
|
||||
history_time=1724172277
|
||||
history_result_approximate=CVE 21 915.494 08
|
||||
history_result_approximate=19 874.393 83 eurocents
|
||||
history_time=1724172278
|
||||
history_result_approximate=€198.743 938 3
|
||||
history_time=1724172270
|
||||
history_expression=5czk
|
||||
history_parse=5 CZK
|
||||
history_result_approximate=$0.220 287 781 2
|
||||
history_time=1724172207
|
||||
history_expression=5k
|
||||
history_parse=5 × 1000
|
||||
history_result=5000
|
||||
history_time=1724171979
|
||||
history_expression=1504.32/60
|
||||
history_parse=1504.32 ∕ 60
|
||||
history_result=25.072
|
||||
history_time=1724171974
|
||||
history_expression=1504.32czk/60eur
|
||||
history_parse=(1504.32 CZK) ∕ (60 EUR)
|
||||
history_result_approximate=0.996 581 604 3
|
||||
history_time=1724171966
|
||||
history_expression=30eur/1504.32czk
|
||||
history_parse=(30 EUR) ∕ (1504.32 CZK)
|
||||
history_result_approximate=0.501 715 060 6
|
||||
history_time=1724171791
|
||||
history_expression=5000czk
|
||||
history_parse=5000 CZK
|
||||
history_result_approximate=$220.287 781 2
|
||||
history_time=1724167931
|
||||
history_expression=183.75czk
|
||||
history_parse=183.75 CZK
|
||||
history_result_approximate=$8.095 575 960
|
||||
history_time=1724167933
|
||||
history_result_approximate=CVE 805.394 407 3
|
||||
history_result_approximate=730.383 973 3 eurocents
|
||||
history_time=1724167935
|
||||
history_result_approximate=€7.303 839 733
|
||||
history_time=1724167917
|
||||
history_expression=735/4
|
||||
history_parse=735 ∕ 4
|
||||
history_result=183.75
|
||||
history_time=1724167611
|
||||
history_expression=(3688czk)−3625czk
|
||||
history_parse=(3688 CZK) − (3625 CZK) to EUR
|
||||
history_result_approximate=€2.504 173 623
|
||||
history_time=1724167609
|
||||
history_expression=(3688czk)−3625
|
||||
history_parse=(3688 CZK) − 3625 to EUR
|
||||
history_result_approximate=€146.593 528 9 − 3625.000 000
|
||||
history_time=1724167603
|
||||
history_expression=3688czk
|
||||
history_parse=3688 CZK to EUR
|
||||
history_result_approximate=€146.593 528 9
|
||||
history_time=1724167540
|
||||
history_expression=14500czk/4
|
||||
history_parse=(14 500 CZK) ∕ 4 to EUR
|
||||
history_result_approximate=€144.089 355 3
|
||||
history_time=1724167532
|
||||
history_expression=14500czk
|
||||
history_parse=14 500 CZK
|
||||
history_result_approximate=$638.834 565 5
|
||||
history_time=1724167534
|
||||
history_result_approximate=CVE 63 554.932 82
|
||||
history_result_approximate=57 635.742 11 eurocents
|
||||
history_time=1724167535
|
||||
history_result_approximate=€576.357 421 1
|
||||
history_time=1724167230
|
||||
history_expression=183.75czk
|
||||
history_parse=183.75 CZK
|
||||
history_result_approximate=$8.095 575 960
|
||||
history_time=1724167237
|
||||
history_result_approximate=CVE 805.394 407 3
|
||||
history_result_approximate=730.383 973 3 eurocents
|
||||
history_time=1724167238
|
||||
history_result_approximate=€7.303 839 733
|
||||
history_time=1724167225
|
||||
history_expression=735/4
|
||||
history_parse=735 ∕ 4
|
||||
history_result=183.75
|
||||
history_time=1724167222
|
||||
history_expression=184czk
|
||||
history_parse=184 CZK
|
||||
history_result_approximate=$8.106 590 349
|
||||
history_time=1724167207
|
||||
history_expression=735/4
|
||||
history_parse=735 ∕ 4
|
||||
history_result=183.75
|
||||
history_time=1724167172
|
||||
history_expression=735czk/4
|
||||
history_parse=(735 CZK) ∕ 4
|
||||
history_result_approximate=$8.095 575 960
|
||||
history_time=1724167168
|
||||
history_expression=735czk
|
||||
history_parse=735 CZK
|
||||
history_result_approximate=$32.382 303 84
|
||||
history_time=1724166888
|
||||
history_expression=14500/4
|
||||
history_parse=14 500 ∕ 4
|
||||
history_result=3625
|
||||
history_time=1724080135
|
||||
history_expression=35000czk
|
||||
history_parse=35 000 CZK
|
||||
history_result_approximate=$1534.629 284
|
||||
history_time=1724080106
|
||||
history_expression=20000czk
|
||||
history_parse=20 000 CZK
|
||||
history_result_approximate=$876.931 019 4
|
||||
history_time=1724013854
|
||||
history_expression=29×3
|
||||
history_parse=29 × 3
|
||||
history_result=87
|
||||
history_time=1724013476
|
||||
history_expression=(60×20)/60
|
||||
history_parse=(60 × 20) ∕ 60
|
||||
history_result=20
|
||||
history_time=1724013473
|
||||
history_expression=60×20
|
||||
history_parse=60 × 20
|
||||
history_result=1200
|
||||
history_time=1724013442
|
||||
history_expression=24+24+12
|
||||
history_parse=24 + 24 + 12
|
||||
history_result=60
|
||||
history_time=1723541887
|
||||
history_expression=38+15
|
||||
history_parse=38 + 15
|
||||
history_result=53
|
||||
history_time=1723541880
|
||||
history_expression=(43−33)+5
|
||||
history_parse=(43 − 33) + 5
|
||||
history_result=15
|
||||
history_time=1723541879
|
||||
history_expression=43−33
|
||||
history_parse=43 − 33
|
||||
history_result=10
|
||||
history_time=1723319641
|
||||
history_expression=11mA×1kohm
|
||||
history_parse=(11 milliamperes) × (1 kiloohm)
|
||||
history_result=11 V
|
||||
history_time=1723319554
|
||||
history_expression=220ohm×54mA
|
||||
history_parse=(220 ohms) × (54 milliamperes)
|
||||
history_result=11.88 V
|
||||
history_time=1723317250
|
||||
history_expression=1.5k×7mA
|
||||
history_parse=(1.5 × 1000) × (7 milliamperes)
|
||||
history_result=10.5 A
|
||||
history_time=1723317195
|
||||
history_expression=12.5V/5mA
|
||||
history_parse=(12.5 volts) ∕ (5 milliamperes)
|
||||
history_result=2.5 kΩ
|
||||
history_time=1723317115
|
||||
history_expression=11k×7×10^−3
|
||||
history_parse=(11 × 1000) × 7 × 10<sup>−3</sup>
|
||||
history_result=77
|
||||
history_time=1723317084
|
||||
history_expression=11k×7m
|
||||
history_parse=(11 × 1000) × (7 meters)
|
||||
history_result=77 km
|
||||
history_time=1723317016
|
||||
history_expression=12/(1×10^−3)
|
||||
history_parse=12 ∕ (1 × 10<sup>−3</sup>)
|
||||
history_result=12 000
|
||||
history_time=1723316369
|
||||
history_expression=12V/200ohm
|
||||
history_parse=(12 volts) ∕ (200 ohms)
|
||||
history_result=60 mA
|
||||
history_time=1723316359
|
||||
history_expression=12v/200ohm
|
||||
history_parse=12 ∕ (200 ohms)
|
||||
history_error=Trailing characters "v" (not a valid variable/function/unit) in number "12v" were ignored.
|
||||
history_result=60 mS
|
||||
history_time=1723232596
|
||||
history_expression=190ml/8.3s
|
||||
history_parse=(190 milliliters) ∕ (8.3 seconds)
|
||||
history_result_approximate=22.891 566 27 mL ∕ s
|
||||
history_time=1723059809
|
||||
history_expression=(10800/60)/60
|
||||
history_parse=(10 800 ∕ 60) ∕ 60
|
||||
history_result=3
|
||||
history_time=1723059807
|
||||
history_expression=10800/60
|
||||
history_parse=10 800 ∕ 60
|
||||
history_result=180
|
||||
history_time=1722970501
|
||||
history_expression=0.98××30
|
||||
history_parse=0.98<sup>30</sup>
|
||||
history_result_approximate=0.545 484 319 4
|
||||
history_time=1722855354
|
||||
history_expression=10cad
|
||||
history_parse=10 CAD to EUR
|
||||
history_result_approximate=€6.651 147 323
|
||||
history_time=1722855343
|
||||
history_expression=10×52
|
||||
history_parse=10 × 52
|
||||
history_result=520
|
||||
history_time=1722855320
|
||||
history_expression=43×52
|
||||
history_parse=43 × 52
|
||||
history_result=2236
|
||||
history_time=1722855280
|
||||
history_expression=65.7cad
|
||||
history_parse=65.7 CAD
|
||||
history_result_approximate=$47.346 824 08
|
||||
history_time=1722855292
|
||||
history_result_approximate=CVE 4818.582 640
|
||||
history_time=1722855293
|
||||
history_result_approximate=4369.803 791 eurocents
|
||||
history_time=1722855294
|
||||
history_result_approximate=€43.698 037 91
|
||||
history_time=1722855269
|
||||
history_expression=42.85+22.85
|
||||
history_parse=42.85 + 22.85
|
||||
history_result=65.7
|
||||
recent_functions=
|
||||
recent_variables=
|
||||
recent_units=
|
||||
latest_button_currency=USD
|
||||
|
||||
[Mode]
|
||||
min_deci=0
|
||||
use_min_deci=0
|
||||
max_deci=2
|
||||
use_max_deci=0
|
||||
precision=10
|
||||
interval_arithmetic=1
|
||||
interval_display=0
|
||||
min_exp=-1
|
||||
negative_exponents=0
|
||||
sort_minus_last=1
|
||||
number_fraction_format=1
|
||||
complex_number_form=0
|
||||
use_prefixes=1
|
||||
use_prefixes_for_all_units=0
|
||||
use_prefixes_for_currencies=0
|
||||
abbreviate_names=1
|
||||
all_prefixes_enabled=0
|
||||
denominator_prefix_enabled=1
|
||||
place_units_separately=1
|
||||
auto_post_conversion=3
|
||||
mixed_units_conversion=3
|
||||
number_base=10
|
||||
number_base_expression=10
|
||||
read_precision=0
|
||||
assume_denominators_nonzero=1
|
||||
warn_about_denominators_assumed_nonzero=1
|
||||
structuring=1
|
||||
angle_unit=1
|
||||
functions_enabled=1
|
||||
variables_enabled=1
|
||||
calculate_functions=1
|
||||
calculate_variables=1
|
||||
variable_units_enabled=1
|
||||
sync_units=1
|
||||
unknownvariables_enabled=0
|
||||
units_enabled=1
|
||||
allow_complex=1
|
||||
allow_infinite=1
|
||||
indicate_infinite_series=0
|
||||
show_ending_zeroes=1
|
||||
rounding_mode=0
|
||||
approximation=0
|
||||
interval_calculation=1
|
||||
concise_uncertainty_input=0
|
||||
calculate_as_you_type=0
|
||||
in_rpn_mode=0
|
||||
chain_mode=0
|
||||
limit_implicit_multiplication=0
|
||||
parsing_mode=0
|
||||
simplified_percentage=1
|
||||
implicit_question_asked=1
|
||||
spacious=1
|
||||
excessive_parenthesis=0
|
||||
visible_keypad=0
|
||||
short_multiplication=1
|
||||
default_assumption_type=4
|
||||
default_assumption_sign=0
|
||||
|
||||
[Plotting]
|
||||
plot_legend_placement=2
|
||||
plot_style=0
|
||||
plot_smoothing=0
|
||||
plot_display_grid=1
|
||||
plot_full_border=0
|
||||
plot_min=0
|
||||
plot_max=10
|
||||
plot_step=1
|
||||
plot_sampling_rate=1001
|
||||
plot_use_sampling_rate=1
|
||||
plot_variable=x
|
||||
plot_rows=0
|
||||
plot_type=0
|
||||
plot_color=1
|
||||
plot_linewidth=2
|
|
@ -18,13 +18,14 @@ expandLimit=2
|
|||
firstRun=false
|
||||
focusPointIn1to1Mode=1
|
||||
folderEndAction=0
|
||||
folderViewIconSize=120
|
||||
imageScrolling=1
|
||||
infoBarFullscreen=true
|
||||
infoBarWindowed=false
|
||||
jxlAnimation=false
|
||||
keepFitMode=false
|
||||
lastVerMajor=1
|
||||
lastVerMicro=2
|
||||
lastVerMicro=3
|
||||
lastVerMinor=0
|
||||
loopSlideshow=false
|
||||
mpvBinary=/nix/store/sz3h6s8p2r22v76m0yr6fn3m663sms7r-mpv-with-scripts-0.37.0/bin/mpv
|
||||
|
|
|
@ -9,5 +9,6 @@ overlay=#1a1a1a
|
|||
overlay_text=#d2d2d2
|
||||
scrollbar=#5a5a5a
|
||||
text=#b6b6b6
|
||||
tid=-1
|
||||
widget=#252525
|
||||
widget_border=#2c2c2c
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
[default]
|
||||
license = "GPL-3.0-or-later"
|
|
@ -9,10 +9,9 @@ alias suod='sudo '
|
|||
alias sduo='sudo '
|
||||
|
||||
# Replacements (adding flags)
|
||||
alias cp='cp -iv' # Ask before overwriting, verbose
|
||||
alias mv='mv -iv' # Ask before overwriting, verbose
|
||||
alias cp='cp -i' # Ask before overwriting
|
||||
alias mv='mv -i' # Ask before overwriting
|
||||
alias rmt='trash-put' # Use trash-cli instead of true removal
|
||||
alias rm='rm -v' # Verbose rm (asking before deleting is too annoying here)
|
||||
alias rmr='rm -r'
|
||||
alias rmrf='rm -rf'
|
||||
alias wget='wget -c' # Resume wget by default
|
||||
|
@ -69,7 +68,6 @@ alias cfnvim='vim ~/.config/nvim'
|
|||
alias cfvim='cfnvim'
|
||||
alias cfgit='vim ~/.config/git/config'
|
||||
alias cfhypr='vim ~/.config/hypr'
|
||||
alias cfsway='vim ~/.config/sway/config'
|
||||
|
||||
# zoxide shortcuts
|
||||
alias j='z' # for the sake of old habits from autojump
|
||||
|
@ -138,7 +136,6 @@ alias iptlistfw='iptables -L FORWARD -n -v --line-numbers' # FORWARD rules
|
|||
alias ufw-log='journalctl -f -n 100 -g ufw' # Show UFW log entries in system journal
|
||||
|
||||
# System actions
|
||||
alias sv='systemctl'
|
||||
alias pacnew="find / -name '*.pacnew' 2>/dev/null" # Search for all new configurations after pacman update
|
||||
alias backup="rsync -avHAXS --delete --filter='dir-merge /.rsync-filter'" # Make full rsync backup, respecting .rsync-filter files for exclusions
|
||||
#alias upload='curl -F "f:1=<-" ix.io' # ix.io was offline for about 10 months now...
|
||||
|
@ -149,7 +146,6 @@ alias auth-log='journalctl SYSLOG_FACILITY=10 -r'
|
|||
alias cpu-stress='for i in $(seq $(getconf _NPROCESSORS_ONLN)); do yes > /dev/null & done' # Run `yes > /dev/null` on all cores as stress test
|
||||
alias cpu-power='sudo turbostat --Summary --quiet --show PkgWatt --interval 1'
|
||||
alias nvidia='__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia' # Run app with nvidia (on hybrid mode with optimus)
|
||||
alias swapout='sudo swapoff -a; sudo swapon -a' # Reset swap (move everything to RAM)
|
||||
alias mount-ram='mount -t tmpfs tmpfs' # Mount RAM disk for fast filesystem
|
||||
alias screenlock='xset s activate' # Use DPMS to trigger xss-lock and handle screen locking
|
||||
|
||||
|
@ -231,11 +227,9 @@ alias vimwiki='vim -c VimwikiIndex' # Open vimwiki index
|
|||
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
|
||||
alias tty-clock='tty-clock -Ssc' # Terminal clock screensaver
|
||||
alias rick='curl -s -L https://raw.githubusercontent.com/ItsDrike/rickrollrc/master/roll.sh| bash' # Terminal rickroll
|
||||
alias nf='neofetch'
|
||||
alias hist='fc -lt "$HISTTIMEFORMAT" 1'
|
||||
alias sudovim='sudoedit'
|
||||
alias cls='clear'
|
||||
alias wh='which'
|
||||
|
||||
# Kitty terminal kitten shorthands
|
||||
if [ "$TERM" = "xterm=kitty" ]; then
|
||||
|
|
|
@ -14,6 +14,7 @@ if [ -d "$HOME/.local/bin" ]; then
|
|||
PATH+=":$(find -L ~/.local/bin -type d | tr '\n' ':' | sed 's/:$//')"
|
||||
fi
|
||||
|
||||
# Add all NPM global binaries to PATH
|
||||
if [ -d "$HOME/.local/share/npm/bin" ]; then
|
||||
PATH+=":$HOME/.local/share/npm/bin"
|
||||
fi
|
||||
|
@ -30,7 +31,7 @@ uid="$(id -u)"
|
|||
# Default programs
|
||||
export EDITOR="nvim"
|
||||
export BROWSER="firefox"
|
||||
export TERMINAL="alacritty"
|
||||
export TERMINAL="kitty"
|
||||
export DIFFPROG="nvim -d"
|
||||
export FILEMANAGER="pcmanfm-qt"
|
||||
|
||||
|
@ -43,7 +44,7 @@ export XDG_STATE_HOME="$HOME/.local/state"
|
|||
export XDG_BIN_HOME="$HOME/.local/bin"
|
||||
|
||||
# XDG User directories (should match ~/.config/user-dirs.dirs)
|
||||
#export XDG_DESKTOP_DIR="$HOME/Desktop"
|
||||
export XDG_DESKTOP_DIR="$HOME/Desktop"
|
||||
export XDG_DOWNLOAD_DIR="$HOME/Downloads"
|
||||
export XDG_TEMPLATES_DIR="$XDG_DATA_HOME/templates"
|
||||
export XDG_PUBLICSHARE_DIR="$XDG_DATA_HOME/public"
|
||||
|
@ -53,15 +54,13 @@ export XDG_PICTURES_DIR="$HOME/Media/Pictures"
|
|||
export XDG_VIDEOS_DIR="$HOME/Media/Videos"
|
||||
export XDG_SCREENSHOTS_DIR="$HOME/Media/Pictures/Screenshots"
|
||||
|
||||
# ZSH dirs
|
||||
# ZSH settings
|
||||
export ZDOTDIR="$XDG_CONFIG_HOME/zsh"
|
||||
export ZSH_CACHE="$HOME/.cache/zsh"
|
||||
export HISTFILE="$ZSH_CACHE/history"
|
||||
export ZSH_COMPDUMP="$ZSH_CACHE/zcompdump-${ZSH_VERSION:-}"
|
||||
|
||||
# Per-Application XDG settings
|
||||
export XINITRC="$XDG_CONFIG_HOME/x11/xinitrc"
|
||||
#export XAUTHORITY="$XDG_RUNTIME_DIR/Xauthority" # This line will break some DMs.
|
||||
export LESSHISTFILE="-"
|
||||
export GTK2_RC_FILES="$XDG_CONFIG_HOME/gtk-2.0/gtkrc":"$XDG_CONFIG_HOME/gtk-2.0/gtkrc.mine"
|
||||
export WGETRC="$XDG_CONFIG_HOME/wget/wgetrc"
|
||||
|
@ -81,7 +80,6 @@ export RANDFILE="$XDG_CACHE_HOME/rnd"
|
|||
export PYTHONSTARTUP="$XDG_CONFIG_HOME/python/pythonrc.py"
|
||||
export PYTHONPYCACHEPREFIX="$XDG_CACHE_HOME/python"
|
||||
export PYTHONUSERBASE="$XDG_DATA_HOME/python"
|
||||
export _ZL_DATA="$XDG_DATA_HOME/zlua"
|
||||
export SQLITE_HISTORY="$XDG_DATA_HOME/sqlite_history"
|
||||
export WAKATIME_HOME="$XDG_CONFIG_HOME/wakatime"
|
||||
export IPYTHONDIR="$XDG_CONFIG_HOME/ipython"
|
||||
|
@ -140,8 +138,6 @@ fi
|
|||
export HISTTIMEFORMAT="%Y-%m-%d %T "
|
||||
export SUDO_ASKPASS="$HOME/.local/bin/scripts/gui/prompt/menupass"
|
||||
export PIPENV_VENV_IN_PROJECT=1 # Force pipenv to create new environments within projects ./.venv
|
||||
export XSECURELOCK_SHOW_HOSTNAME=0 # Don't show hostname in xsecurelock
|
||||
export XSECURELOCK_SHOW_DATETIME=1 # Show current date and time in xsecurelock
|
||||
|
||||
# Remove irrelevant variables added for posix compatibility
|
||||
unset posix
|
||||
|
|
1
home/.config/spotify-flags.conf
Normal file
1
home/.config/spotify-flags.conf
Normal file
|
@ -0,0 +1 @@
|
|||
--ozone-platform-hint=auto
|
|
@ -5,12 +5,12 @@
|
|||
"layer": "overlay",
|
||||
"control-center-layer": "top",
|
||||
"layer-shell": true,
|
||||
"cssPriority": "application",
|
||||
"cssPriority": "user",
|
||||
"control-center-margin-top": 0,
|
||||
"control-center-margin-bottom": 0,
|
||||
"control-center-margin-right": 0,
|
||||
"control-center-margin-left": 0,
|
||||
"notification-2fa-action": true,
|
||||
"notification-2fa-action": false,
|
||||
"notification-inline-replies": false,
|
||||
"notification-icon-size": 48,
|
||||
"notification-body-image-height": 100,
|
||||
|
|
|
@ -1,14 +0,0 @@
|
|||
[Unit]
|
||||
Description=Show a notification when the battery is low
|
||||
Requires=graphical-session.target
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=%h/.local/bin/scripts/gui/battery-notification
|
||||
RemainAfterExit=false
|
||||
Restart=on-failure
|
||||
Slice=background-graphical.slice
|
||||
|
||||
[Install]
|
||||
WantedBy=graphical-session.target
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
[Unit]
|
||||
Description=Timer for low battery notification sendout
|
||||
After=graphical-session.target
|
||||
Requires=graphical-session.target
|
||||
PartOf=graphical-session.target
|
||||
|
||||
[Timer]
|
||||
OnUnitActiveSec=20s
|
||||
|
||||
[Install]
|
||||
WantedBy=graphical-session.target
|
||||
|
34
home/.config/systemd/user/cliphist.service
Normal file
34
home/.config/systemd/user/cliphist.service
Normal file
|
@ -0,0 +1,34 @@
|
|||
[Unit]
|
||||
Description=Clipboard history "manager" for Wayland
|
||||
After=graphical-session.target
|
||||
PartOf=graphical-session.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/wl-paste --watch /usr/bin/cliphist -max-items 10 store
|
||||
Restart=on-failure
|
||||
|
||||
# Use the background slice rather than the session slice. Cliphist isn't
|
||||
# a fundamental part of the graphical session experience.
|
||||
Slice=background-graphical.slice
|
||||
|
||||
CPUQuota=2%
|
||||
|
||||
# Cliphist allows storng up to 5 MB per item entries, with 10 entries
|
||||
# limit, this means 50 MB. Annoyingly, it seems to load all entries
|
||||
# even when it's just writing a single new one (during `cliphist store`),
|
||||
# so we need to account for this. See:
|
||||
# https://github.com/sentriz/cliphist/issues/155 to understand
|
||||
#
|
||||
# If the above issue gets addressed, these limits can likely be lowered.
|
||||
MemoryHigh=60M
|
||||
MemoryMax=120M
|
||||
|
||||
# Because of the issue above, significantly increase the likelihood of
|
||||
# this process getting terminated during OOM I don't really care that
|
||||
# much about a clipboard manager staying up anyways.
|
||||
OOMScoreAdjust=300
|
||||
|
||||
|
||||
[Install]
|
||||
WantedBy=graphical-session.target
|
|
@ -1,13 +0,0 @@
|
|||
[Unit]
|
||||
Description=Clipman clipboard manager
|
||||
After=graphical-session.target
|
||||
Requires=graphical-session.target
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/bin/wl-paste -t text --watch /usr/bin/clipman store --no-persist
|
||||
Restart=on-failure
|
||||
Slice=background-graphical.slice
|
||||
|
||||
[Install]
|
||||
WantedBy=graphical-session.target
|
||||
|
14
home/.config/systemd/user/dconf.service.d/override.conf
Normal file
14
home/.config/systemd/user/dconf.service.d/override.conf
Normal file
|
@ -0,0 +1,14 @@
|
|||
[Service]
|
||||
# Place dconf in session.slice instead of the default app.slice.
|
||||
#
|
||||
# Do not use session-graphical.slice here: it is tied to
|
||||
# graphical-session.target, which dconf should not have to wait for,
|
||||
# since it can be used outside of graphical sessions as well.
|
||||
#
|
||||
# Some compositors read certain gsettings values early in their
|
||||
# initialization. These compositors are themselves a requirement for
|
||||
# graphical-session.target. If dconf were in session-graphical.slice,
|
||||
# systemd would delay starting it until graphical-session.target was
|
||||
# reached, meaning dconf would not respond in time and compositor
|
||||
# startup might stall, or even fail.
|
||||
Slice=session.slice
|
|
@ -1 +0,0 @@
|
|||
/usr/lib/systemd/user/systemd-lock-handler.service
|
15
home/.config/systemd/user/elephant.service
Normal file
15
home/.config/systemd/user/elephant.service
Normal file
|
@ -0,0 +1,15 @@
|
|||
[Unit]
|
||||
Description=Elephant data provider and executor backend for application launchers
|
||||
Documentation=https://github.com/abenz1267/elephant
|
||||
After=graphical-session.target
|
||||
PartOf=graphical-session.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/elephant
|
||||
Restart=on-failure
|
||||
|
||||
Slice=session-graphical.slice
|
||||
|
||||
[Install]
|
||||
WantedBy=graphical-session.target
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue