add initial unsanitised dotfiles
Adds the clearest current starting point of my dotfiles I can make out. There is no way to automate anything yet. Lots of stuff is missing from the nix configuration, which needs to be added per machine.
This commit is contained in:
commit
2c0e4f885e
26 changed files with 2531 additions and 0 deletions
103
alacritty.toml
Normal file
103
alacritty.toml
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
|
||||
[bell]
|
||||
animation = "EaseOutExpo"
|
||||
color = "0xffffff"
|
||||
duration = 0
|
||||
|
||||
[colors]
|
||||
draw_bold_text_with_bright_colors = true
|
||||
indexed_colors = []
|
||||
|
||||
[colors.bright]
|
||||
black = "0x666666"
|
||||
blue = "0x7aa6da"
|
||||
cyan = "0x54ced6"
|
||||
green = "0x9ec400"
|
||||
magenta = "0xb77ee0"
|
||||
red = "0xff3334"
|
||||
white = "0xffffff"
|
||||
yellow = "0xe7c547"
|
||||
|
||||
[colors.normal]
|
||||
black = "0x000000"
|
||||
blue = "0x7aa6da"
|
||||
cyan = "0x70c0ba"
|
||||
green = "0xb9ca4a"
|
||||
magenta = "0xc397d8"
|
||||
red = "0xd54e53"
|
||||
white = "0xeaeaea"
|
||||
yellow = "0xe6c547"
|
||||
|
||||
[colors.primary]
|
||||
background = "0x000000"
|
||||
foreground = "0xffe6a0"
|
||||
|
||||
[cursor]
|
||||
style = "Block"
|
||||
unfocused_hollow = true
|
||||
|
||||
[font]
|
||||
size = 10.0
|
||||
|
||||
[font.glyph_offset]
|
||||
x = 0
|
||||
y = 0
|
||||
|
||||
[font.normal]
|
||||
family = "Tamsyn"
|
||||
style = "Regular"
|
||||
|
||||
[font.offset]
|
||||
x = 0
|
||||
y = 0
|
||||
|
||||
[[keyboard.bindings]]
|
||||
action = "Paste"
|
||||
key = "Paste"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
action = "Copy"
|
||||
key = "Copy"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
action = "ClearLogNotice"
|
||||
key = "L"
|
||||
mods = "Control"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\f"
|
||||
key = "L"
|
||||
mods = "Control"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
chars = "\u001BOH"
|
||||
key = "Home"
|
||||
mode = "AppCursor"
|
||||
|
||||
[mouse]
|
||||
hide_when_typing = false
|
||||
|
||||
[scrolling]
|
||||
history = 10000
|
||||
multiplier = 1
|
||||
|
||||
[selection]
|
||||
save_to_clipboard = false
|
||||
semantic_escape_chars = ",│`|:\"' ()[]{}<>"
|
||||
|
||||
[window]
|
||||
decorations = "full"
|
||||
dynamic_padding = false
|
||||
dynamic_title = true
|
||||
opacity = 0.9
|
||||
|
||||
[window.dimensions]
|
||||
columns = 0
|
||||
lines = 0
|
||||
|
||||
[window.padding]
|
||||
x = 2
|
||||
y = 2
|
||||
|
||||
[general]
|
||||
live_config_reload = true
|
||||
202
configuration.nix
Normal file
202
configuration.nix
Normal file
|
|
@ -0,0 +1,202 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
{
|
||||
imports =
|
||||
[ # Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
# Use the systemd-boot EFI boot loader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
};
|
||||
|
||||
networking.hostName = "lamarr"; # Define your hostname.
|
||||
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "Europe/Berlin";
|
||||
|
||||
# Internationalisation
|
||||
i18n = {
|
||||
defaultLocale = "en_US.UTF-8";
|
||||
inputMethod = {
|
||||
enable = true;
|
||||
type = "fcitx5";
|
||||
};
|
||||
};
|
||||
console = {
|
||||
font = "Lat2-Terminus16";
|
||||
useXkbConfig = true;
|
||||
};
|
||||
|
||||
|
||||
# Configure network proxy if necessary
|
||||
# networking.proxy.default = "http://user:password@proxy:port/";
|
||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||
|
||||
# Select internationalisation properties.
|
||||
|
||||
# Enable CUPS to print documents.
|
||||
# services.printing.enable = true;
|
||||
|
||||
# Enable sound.
|
||||
# hardware.pulseaudio.enable = true;
|
||||
# OR
|
||||
# services.pipewire = {
|
||||
# enable = true;
|
||||
# pulse.enable = true;
|
||||
# };
|
||||
|
||||
# Enable touchpad support (enabled default in most desktopManager).
|
||||
# services.libinput.enable = true;
|
||||
|
||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||
# users.users.alice = {
|
||||
# isNormalUser = true;
|
||||
# extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
|
||||
# packages = with pkgs; [
|
||||
# tree
|
||||
# ];
|
||||
# };
|
||||
|
||||
# programs.firefox.enable = true;
|
||||
|
||||
# List packages installed in system profile. To search, run:
|
||||
# $ nix search wget
|
||||
# environment.systemPackages = with pkgs; [
|
||||
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||||
# wget
|
||||
# ];
|
||||
|
||||
# Some programs need SUID wrappers, can be configured further or are
|
||||
# started in user sessions.
|
||||
# programs.mtr.enable = true;
|
||||
# programs.gnupg.agent = {
|
||||
# enable = true;
|
||||
# enableSSHSupport = true;
|
||||
# };
|
||||
|
||||
# Enable rtkit so pipewire can aquire real-time priority
|
||||
security.rtkit.enable = true;
|
||||
|
||||
################################
|
||||
# Packages for ALL users #
|
||||
################################
|
||||
environment.systemPackages = with pkgs; [
|
||||
alacritty
|
||||
asciidoctor-with-extensions
|
||||
bat
|
||||
dunst
|
||||
eww
|
||||
feh
|
||||
file
|
||||
fzf
|
||||
git
|
||||
git-lfs
|
||||
helix
|
||||
htop
|
||||
linux-manual
|
||||
man-pages
|
||||
man-pages-posix
|
||||
mlocate
|
||||
mpv
|
||||
mumble
|
||||
nix-your-shell
|
||||
pass
|
||||
pavucontrol
|
||||
playerctl
|
||||
python3
|
||||
ripgrep
|
||||
vim
|
||||
wget
|
||||
wine
|
||||
winetricks
|
||||
xarchiver
|
||||
xclip
|
||||
xdo
|
||||
zathura
|
||||
];
|
||||
|
||||
##################
|
||||
# Programs #
|
||||
##################
|
||||
programs = {
|
||||
firefox = {
|
||||
enable = true;
|
||||
languagePacks = [ "de" "en-GB" ];
|
||||
};
|
||||
gnupg.agent = {
|
||||
enable = true;
|
||||
enableSSHSupport = true;
|
||||
pinentryPackage = pkgs.pinentry-curses;
|
||||
};
|
||||
mtr.enable = true;
|
||||
};
|
||||
|
||||
##################
|
||||
# Services #
|
||||
##################
|
||||
services = {
|
||||
pcscd.enable = true;
|
||||
picom = {
|
||||
enable = true;
|
||||
backend = "glx";
|
||||
};
|
||||
printing.enable = true;
|
||||
xserver = {
|
||||
enable = true;
|
||||
displayManager.startx.enable = true;
|
||||
windowManager.leftwm.enable = true;
|
||||
xkb.layout = "us";
|
||||
xkb.variant = "dvp";
|
||||
xkb.options = "caps:escape";
|
||||
};
|
||||
};
|
||||
|
||||
###############
|
||||
# Fonts #
|
||||
###############
|
||||
fonts.packages = with pkgs; with nerd-fonts; [
|
||||
agave
|
||||
anonymice
|
||||
daddy-time-mono
|
||||
envy-code-r
|
||||
fantasque-sans-mono
|
||||
hurmit
|
||||
iosevka
|
||||
iosevka-term-slab
|
||||
jetbrains-mono
|
||||
source-han-mono
|
||||
tamsyn
|
||||
tamzen
|
||||
];
|
||||
|
||||
# Enable the OpenSSH daemon.
|
||||
# services.openssh.enable = true;
|
||||
|
||||
# Open ports in the firewall.
|
||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||
# Or disable the firewall altogether.
|
||||
# networking.firewall.enable = false;
|
||||
|
||||
##########################
|
||||
# User definitions #
|
||||
##########################
|
||||
users.users.zentux = {
|
||||
shell = pkgs.nushell;
|
||||
isNormalUser = true;
|
||||
extraGroups = [ "wheel" "networkmanager" "video" "kvm" ];
|
||||
packages = with pkgs; [ ];
|
||||
};
|
||||
|
||||
# Respect your shit. Don't touch this.
|
||||
system.stateVersion = "24.11";
|
||||
|
||||
}
|
||||
466
dunstrc
Normal file
466
dunstrc
Normal file
|
|
@ -0,0 +1,466 @@
|
|||
[global]
|
||||
### Display ###
|
||||
|
||||
# Which monitor should the notifications be displayed on.
|
||||
monitor = 0
|
||||
|
||||
# Display notification on focused monitor. Possible modes are:
|
||||
# mouse: follow mouse pointer
|
||||
# keyboard: follow window with keyboard focus
|
||||
# none: don't follow anything
|
||||
#
|
||||
# "keyboard" needs a window manager that exports the
|
||||
# _NET_ACTIVE_WINDOW property.
|
||||
# This should be the case for almost all modern window managers.
|
||||
#
|
||||
# If this option is set to mouse or keyboard, the monitor option
|
||||
# will be ignored.
|
||||
follow = mouse
|
||||
|
||||
# The geometry of the window:
|
||||
# [{width}]x{height}[+/-{x}+/-{y}]
|
||||
# The geometry of the message window.
|
||||
# The height is measured in number of notifications everything else
|
||||
# in pixels. If the width is omitted but the height is given
|
||||
# ("-geometry x2"), the message window expands over the whole screen
|
||||
# (dmenu-like). If width is 0, the window expands to the longest
|
||||
# message displayed. A positive x is measured from the left, a
|
||||
# negative from the right side of the screen. Y is measured from
|
||||
# the top and down respectively.
|
||||
# The width can be negative. In this case the actual width is the
|
||||
# screen width minus the width defined in within the geometry option.
|
||||
geometry = "500x5-30+20"
|
||||
|
||||
# Turn on the progess bar
|
||||
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 = 10
|
||||
|
||||
# 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 = 500
|
||||
|
||||
|
||||
# Show how many messages are currently hidden (because of geometry).
|
||||
indicate_hidden = yes
|
||||
|
||||
# Shrink window if it's smaller than the width. Will be ignored if
|
||||
# width is 0.
|
||||
shrink = no
|
||||
|
||||
# The transparency of the window. Range: [0; 100].
|
||||
# This option will only work if a compositing window manager is
|
||||
# present (e.g. xcompmgr, compiz, etc.).
|
||||
transparency = 0
|
||||
|
||||
# The height of the entire notification. If the height is smaller
|
||||
# than the font height and padding combined, it will be raised
|
||||
# to the font height and padding.
|
||||
notification_height = 0
|
||||
|
||||
# Draw a line of "separator_height" pixel height between two
|
||||
# notifications.
|
||||
# Set to 0 to disable.
|
||||
separator_height = 2
|
||||
|
||||
# Padding between text and separator.
|
||||
padding = 8
|
||||
|
||||
# Horizontal padding.
|
||||
horizontal_padding = 8
|
||||
|
||||
# Padding between text and icon.
|
||||
text_icon_padding = 0
|
||||
|
||||
# Defines width in pixels of frame around the notification window.
|
||||
# Set to 0 to disable.
|
||||
frame_width = 3
|
||||
|
||||
# Defines color of the frame around the notification window.
|
||||
frame_color = "#fe5f55"
|
||||
|
||||
# Define a color for the separator.
|
||||
# possible values are:
|
||||
# * auto: dunst tries to find a color fitting to the background;
|
||||
# * foreground: use the same color as the foreground;
|
||||
# * frame: use the same color as the frame;
|
||||
# * anything else will be interpreted as a X color.
|
||||
separator_color = frame
|
||||
|
||||
# Sort messages by urgency.
|
||||
sort = yes
|
||||
|
||||
# Don't remove messages, if the user is idle (no mouse or keyboard input)
|
||||
# for longer than idle_threshold seconds.
|
||||
# Set to 0 to disable.
|
||||
# A client can set the 'transient' hint to bypass this. See the rules
|
||||
# section for how to disable this if necessary
|
||||
idle_threshold = 120
|
||||
|
||||
### Text ###
|
||||
|
||||
font = Hurmit NerdFont 17
|
||||
|
||||
# The spacing between lines. If the height is smaller than the
|
||||
# font height, it will get raised to the font height.
|
||||
line_height = 0
|
||||
|
||||
# Possible values are:
|
||||
# full: Allow a small subset of html markup in notifications:
|
||||
# <b>bold</b>
|
||||
# <i>italic</i>
|
||||
# <s>strikethrough</s>
|
||||
# <u>underline</u>
|
||||
#
|
||||
# For a complete reference see
|
||||
# <https://developer.gnome.org/pango/stable/pango-Markup.html>.
|
||||
#
|
||||
# strip: This setting is provided for compatibility with some broken
|
||||
# clients that send markup even though it's not enabled on the
|
||||
# server. Dunst will try to strip the markup but the parsing is
|
||||
# simplistic so using this option outside of matching rules for
|
||||
# specific applications *IS GREATLY DISCOURAGED*.
|
||||
#
|
||||
# no: Disable markup parsing, incoming notifications will be treated as
|
||||
# plain text. Dunst will not advertise that it has the body-markup
|
||||
# capability if this is set as a global setting.
|
||||
#
|
||||
# It's important to note that markup inside the format option will be parsed
|
||||
# regardless of what this is set to.
|
||||
markup = full
|
||||
|
||||
# The format of the message. Possible variables are:
|
||||
# %a appname
|
||||
# %s summary
|
||||
# %b body
|
||||
# %i iconname (including its path)
|
||||
# %I iconname (without its path)
|
||||
# %p progress value if set ([ 0%] to [100%]) or nothing
|
||||
# %n progress value if set without any extra characters
|
||||
# %% Literal %
|
||||
# Markup is allowed
|
||||
format = "<b>%s</b>\n%b"
|
||||
|
||||
# Alignment of 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
|
||||
|
||||
# Show age of message if message is older than show_age_threshold
|
||||
# seconds.
|
||||
# Set to -1 to disable.
|
||||
show_age_threshold = 60
|
||||
|
||||
# Split notifications into multiple lines if they don't fit into
|
||||
# geometry.
|
||||
word_wrap = yes
|
||||
|
||||
# When word_wrap is set to no, specify where to make an ellipsis in long lines.
|
||||
# Possible values are "start", "middle" and "end".
|
||||
ellipsize = middle
|
||||
|
||||
# Ignore newlines '\n' in notifications.
|
||||
ignore_newline = no
|
||||
|
||||
# Stack together notifications with the same content
|
||||
stack_duplicates = true
|
||||
|
||||
# Hide the count of stacked notifications with the same content
|
||||
hide_duplicate_count = false
|
||||
|
||||
# Display indicators for URLs (U) and actions (A).
|
||||
show_indicators = yes
|
||||
|
||||
### Icons ###
|
||||
|
||||
# Align icons left/right/off
|
||||
icon_position = left
|
||||
|
||||
# Scale small icons up to this size, set to 0 to disable. Helpful
|
||||
# for e.g. small files or high-dpi screens. In case of conflict,
|
||||
# max_icon_size takes precedence over this.
|
||||
min_icon_size = 0
|
||||
|
||||
# Scale larger icons down to this size, set to 0 to disable
|
||||
max_icon_size = 32
|
||||
|
||||
# Paths to default icons.
|
||||
icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
|
||||
|
||||
### History ###
|
||||
|
||||
# Should a notification popped up from history be sticky or timeout
|
||||
# as if it would normally do.
|
||||
sticky_history = yes
|
||||
|
||||
# Maximum amount of notifications kept in history
|
||||
history_length = 20
|
||||
|
||||
### Misc/Advanced ###
|
||||
|
||||
# dmenu path.
|
||||
dmenu = /usr/bin/dmenu -p dunst:
|
||||
|
||||
# Browser for opening urls in context menu.
|
||||
browser = /usr/bin/firefox -new-tab
|
||||
|
||||
# Always run rule-defined scripts, even if the notification is suppressed
|
||||
always_run_script = true
|
||||
|
||||
# Define the title of the windows spawned by dunst
|
||||
title = Dunst
|
||||
|
||||
# Define the class of the windows spawned by dunst
|
||||
class = Dunst
|
||||
|
||||
# Print a notification on startup.
|
||||
# This is mainly for error detection, since dbus (re-)starts dunst
|
||||
# automatically after a crash.
|
||||
startup_notification = true
|
||||
|
||||
# Manage dunst's desire for talking
|
||||
# Can be one of the following values:
|
||||
# crit: Critical features. Dunst aborts
|
||||
# warn: Only non-fatal warnings
|
||||
# mesg: Important Messages
|
||||
# info: all unimportant stuff
|
||||
# debug: all less than unimportant stuff
|
||||
verbosity = mesg
|
||||
|
||||
# Define the corner radius of the notification window
|
||||
# in pixel size. If the radius is 0, you have no rounded
|
||||
# corners.
|
||||
# The radius will be automatically lowered if it exceeds half of the
|
||||
# notification height to avoid clipping text and/or icons.
|
||||
corner_radius = 10
|
||||
|
||||
# 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: If the notification has exactly one action, or one is marked as default,
|
||||
# invoke it. If there are multiple and no default, open the context menu.
|
||||
# * close_current: Close current notification.
|
||||
# * close_all: Close all notifications.
|
||||
# These values can be strung together for each mouse event, and
|
||||
# will be executed in sequence.
|
||||
mouse_left_click = close_current
|
||||
mouse_middle_click = do_action, close_current
|
||||
mouse_right_click = close_all
|
||||
|
||||
# Experimental features that may or may not work correctly. Do not expect them
|
||||
# to have a consistent behaviour across releases.
|
||||
[experimental]
|
||||
# Calculate the dpi to use on a per-monitor basis.
|
||||
# If this setting is enabled the Xft.dpi value will be ignored and instead
|
||||
# dunst will attempt to calculate an appropriate dpi value for each monitor
|
||||
# using the resolution and physical size. This might be useful in setups
|
||||
# where there are multiple screens with very different dpi values.
|
||||
per_monitor_dpi = false
|
||||
|
||||
# The internal keyboard shortcut support in dunst is now considered deprecated
|
||||
# and should be replaced by dunstctl calls. You can use the configuration of your
|
||||
# WM or DE to bind these to shortcuts of your choice.
|
||||
# Check the dunstctl manual page for more info.
|
||||
[shortcuts]
|
||||
|
||||
# Shortcuts are specified as [modifier+][modifier+]...key
|
||||
# Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
|
||||
# "mod3" and "mod4" (windows-key).
|
||||
# Xev might be helpful to find names for keys.
|
||||
|
||||
# Close notification. Equivalent dunstctl command:
|
||||
# dunstctl close
|
||||
# close = ctrl+space
|
||||
|
||||
# Close all notifications. Equivalent dunstctl command:
|
||||
# dunstctl close-all
|
||||
# close_all = ctrl+shift+space
|
||||
|
||||
# Redisplay last message(s). Equivalent dunstctl command:
|
||||
# dunstctl history-pop
|
||||
# history = ctrl+grave
|
||||
|
||||
# Context menu. Equivalent dunstctl command:
|
||||
# dunstctl context
|
||||
# context = ctrl+shift+period
|
||||
|
||||
[urgency_low]
|
||||
# IMPORTANT: colors have to be defined in quotation marks.
|
||||
# Otherwise the "#" and following would be interpreted as a comment.
|
||||
background = "#fe5f55"
|
||||
foreground = "#ffffff"
|
||||
timeout = 12
|
||||
# Icon for notifications with low urgency, uncomment to enable
|
||||
#icon = /path/to/icon
|
||||
|
||||
[urgency_normal]
|
||||
background = "#fe5f55"
|
||||
foreground = "#ffffff"
|
||||
timeout = 12
|
||||
# Icon for notifications with normal urgency, uncomment to enable
|
||||
#icon = /path/to/icon
|
||||
|
||||
[urgency_critical]
|
||||
background = "#000000"
|
||||
foreground = "#ffffff"
|
||||
frame_color = "#ff0000"
|
||||
timeout = 0
|
||||
# Icon for notifications with critical urgency, uncomment to enable
|
||||
#icon = /path/to/icon
|
||||
|
||||
# Every section that isn't one of the above is interpreted as a rules to
|
||||
# override settings for certain messages.
|
||||
#
|
||||
# Messages can be matched by
|
||||
# appname (discouraged, see desktop_entry)
|
||||
# body
|
||||
# category
|
||||
# desktop_entry
|
||||
# icon
|
||||
# match_transient
|
||||
# msg_urgency
|
||||
# stack_tag
|
||||
# summary
|
||||
#
|
||||
# and you can override the
|
||||
# background
|
||||
# foreground
|
||||
# format
|
||||
# frame_color
|
||||
# fullscreen
|
||||
# new_icon
|
||||
# set_stack_tag
|
||||
# set_transient
|
||||
# timeout
|
||||
# urgency
|
||||
#
|
||||
# Shell-like globbing will get expanded.
|
||||
#
|
||||
# Instead of the appname filter, it's recommended to use the desktop_entry filter.
|
||||
# GLib based applications export their desktop-entry name. In comparison to the appname,
|
||||
# the desktop-entry won't get localized.
|
||||
#
|
||||
# SCRIPTING
|
||||
# You can specify a script that gets run when the rule matches by
|
||||
# setting the "script" option.
|
||||
# The script will be called as follows:
|
||||
# script appname summary body icon urgency
|
||||
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
|
||||
#
|
||||
# NOTE: if you don't want a notification to be displayed, set the format
|
||||
# to "".
|
||||
# NOTE: It might be helpful to run dunst -print in a terminal in order
|
||||
# to find fitting options for rules.
|
||||
|
||||
# Disable the transient hint so that idle_threshold cannot be bypassed from the
|
||||
# client
|
||||
#[transient_disable]
|
||||
# match_transient = yes
|
||||
# set_transient = no
|
||||
#
|
||||
# Make the handling of transient notifications more strict by making them not
|
||||
# be placed in history.
|
||||
#[transient_history_ignore]
|
||||
# match_transient = yes
|
||||
# history_ignore = yes
|
||||
|
||||
# fullscreen values
|
||||
# show: show the notifications, regardless if there is a fullscreen window opened
|
||||
# delay: displays the new notification, if there is no fullscreen window active
|
||||
# If the notification is already drawn, it won't get undrawn.
|
||||
# pushback: same as delay, but when switching into fullscreen, the notification will get
|
||||
# withdrawn from screen again and will get delayed like a new notification
|
||||
#[fullscreen_delay_everything]
|
||||
# fullscreen = delay
|
||||
#[fullscreen_show_critical]
|
||||
# msg_urgency = critical
|
||||
# fullscreen = show
|
||||
|
||||
#[espeak]
|
||||
# summary = "*"
|
||||
# script = dunst_espeak.sh
|
||||
|
||||
#[script-test]
|
||||
# summary = "*script*"
|
||||
# script = dunst_test.sh
|
||||
|
||||
#[ignore]
|
||||
# # This notification will not be displayed
|
||||
# summary = "foobar"
|
||||
# format = ""
|
||||
|
||||
#[history-ignore]
|
||||
# # This notification will not be saved in history
|
||||
# summary = "foobar"
|
||||
# history_ignore = yes
|
||||
|
||||
#[skip-display]
|
||||
# # This notification will not be displayed, but will be included in the history
|
||||
# summary = "foobar"
|
||||
# skip_display = yes
|
||||
|
||||
#[signed_on]
|
||||
# appname = Pidgin
|
||||
# summary = "*signed on*"
|
||||
# urgency = low
|
||||
#
|
||||
#[signed_off]
|
||||
# appname = Pidgin
|
||||
# summary = *signed off*
|
||||
# urgency = low
|
||||
#
|
||||
#[says]
|
||||
# appname = Pidgin
|
||||
# summary = *says*
|
||||
# urgency = critical
|
||||
#
|
||||
#[twitter]
|
||||
# appname = Pidgin
|
||||
# summary = *twitter.com*
|
||||
# urgency = normal
|
||||
#
|
||||
#[stack-volumes]
|
||||
# appname = "some_volume_notifiers"
|
||||
# set_stack_tag = "volume"
|
||||
#
|
||||
# vim: ft=cfg
|
||||
79
eww/eww.scss
Normal file
79
eww/eww.scss
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
* {
|
||||
all: unset; //Unsets everything so you can style everything from scratch
|
||||
}
|
||||
|
||||
//Global Styles
|
||||
.bar {
|
||||
background-color: #1a1a1a;
|
||||
color: #b0b4bc;
|
||||
padding: 2px;
|
||||
font-family: DaddyTimeMono Nerd Font;
|
||||
font-size: 13;
|
||||
opacity: 1.0;
|
||||
}
|
||||
|
||||
// Styles on classes (see eww.yuck for more information)
|
||||
|
||||
.sidestuff slider {
|
||||
all: unset;
|
||||
color: #ffd5cd;
|
||||
}
|
||||
|
||||
.metric scale trough highlight {
|
||||
all: unset;
|
||||
background-color: #D35D6E;
|
||||
color: #000000;
|
||||
border-radius: 10px;
|
||||
}
|
||||
.metric scale trough {
|
||||
all: unset;
|
||||
background-color: #4e4e4e;
|
||||
border-radius: 50px;
|
||||
min-height: 3px;
|
||||
min-width: 50px;
|
||||
margin-left: 10px;
|
||||
margin-right: 20px;
|
||||
}
|
||||
.metric scale trough highlight {
|
||||
all: unset;
|
||||
background-color: #D35D6E;
|
||||
color: #000000;
|
||||
border-radius: 2px;
|
||||
}
|
||||
.metric scale trough {
|
||||
all: unset;
|
||||
background-color: #4e4e4e;
|
||||
border-radius: 2px;
|
||||
min-height: 9px;
|
||||
min-width: 50px;
|
||||
margin-left: 4px;
|
||||
margin-right: 4px;
|
||||
}
|
||||
.label-ram {
|
||||
font-size: large;
|
||||
}
|
||||
|
||||
.workspaces button {
|
||||
padding: 2px;
|
||||
}
|
||||
.workspaces button:hover {
|
||||
color: #D35D6E;
|
||||
}
|
||||
.ws-button-mine {
|
||||
color: #4e4e4e;
|
||||
background-color: #ffd5ca;
|
||||
}
|
||||
.ws-button-visible {
|
||||
color: #D35D6E;
|
||||
background-color: #4e4e4e;
|
||||
}
|
||||
.ws-button-urgent {
|
||||
color: #ffd5ca;
|
||||
background-color: #D35D6E;
|
||||
}
|
||||
.ws-button-busy {
|
||||
color: #D35D6E;
|
||||
}
|
||||
.ws-button {
|
||||
color: #b0b4bc;
|
||||
}
|
||||
86
eww/eww.yuck
Normal file
86
eww/eww.yuck
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
(defpoll volume :interval "1s" "scripts/getvol")
|
||||
|
||||
(defwidget bar [index]
|
||||
(centerbox :orientation "h"
|
||||
(workspaces :index index)
|
||||
(music)
|
||||
(sidestuff)))
|
||||
|
||||
(defwidget sidestuff []
|
||||
(box :class "sidestuff" :orientation "h" :space-evenly false :halign "end"
|
||||
(metric :label "∰"
|
||||
:value volume
|
||||
:onchange "amixer sset Master {}%")
|
||||
(metric :label "🐏"
|
||||
:value {EWW_RAM.used_mem_perc}
|
||||
:onchange "")
|
||||
(metric :label "💾"
|
||||
:value {round((1 - (EWW_DISK["/"].free / EWW_DISK["/"].total)) * 100, 0)}
|
||||
:onchange "")
|
||||
time))
|
||||
|
||||
(defwidget workspaces [index]
|
||||
(box :class "workspaces"
|
||||
:orientation "h"
|
||||
:space-evenly false
|
||||
:halign "start"
|
||||
:spacing 10
|
||||
(box
|
||||
(for tag in '${wmstate.workspaces[index].tags}'
|
||||
(button
|
||||
:class {tag.mine ? "ws-button-mine" :
|
||||
tag.visible ? "ws-button-visible" :
|
||||
tag.urgent ? "ws-button-urgent" :
|
||||
tag.busy ? "ws-button-busy" :
|
||||
"ws-button"
|
||||
}
|
||||
:onclick "leftwm-command \"SendWorkspaceToTag ${index} ${tag.index}\""
|
||||
{!tag.mine && !tag.busy && !tag.visible && !tag.urgent ? "." : "${tag.name}"}
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defwidget music []
|
||||
(box :class "music"
|
||||
:orientation "h"
|
||||
:space-evenly false
|
||||
:halign "center"
|
||||
{music != "" ? "🎵${music}" : ""}))
|
||||
|
||||
|
||||
(defwidget metric [label value onchange]
|
||||
(box :orientation "h"
|
||||
:class "metric"
|
||||
:space-evenly false
|
||||
(box :class "label" label)
|
||||
(scale :min 0
|
||||
:max 101
|
||||
:active {onchange != ""}
|
||||
:value value
|
||||
:onchange onchange)))
|
||||
|
||||
(deflisten music :initial ""
|
||||
"playerctl --follow metadata --format '{{ artist }} - {{ title }}' || true")
|
||||
|
||||
(defpoll time :interval "1s"
|
||||
"date '+%H:%M:%S %b %d, %Y'")
|
||||
|
||||
(deflisten wmstate
|
||||
:initial '{"workspaces":[{"layout":"","tags":[{"name":"","index":0,"mine":false,"busy":false,"visible":false,"urgent":false}]}]}'
|
||||
"leftwm state"
|
||||
)
|
||||
|
||||
(defwindow bar [index]
|
||||
:monitor index
|
||||
:windowtype "dock"
|
||||
:geometry (geometry :x "0%"
|
||||
:y "0%"
|
||||
:width "100%"
|
||||
:height "8px"
|
||||
:anchor "top center")
|
||||
:reserve (struts :side "top" :distance "30px")
|
||||
:exclusive true
|
||||
(bar :index index)
|
||||
)
|
||||
3
eww/scripts/getvol
Executable file
3
eww/scripts/getvol
Executable file
|
|
@ -0,0 +1,3 @@
|
|||
#!/bin/sh
|
||||
|
||||
amixer sget Master | grep "Left" | awk -F'[][]' '{ print $2 }' | tr -d '\n%'
|
||||
52
hardware/chell.nix
Normal file
52
hardware/chell.nix
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/faf9e2b9-5362-4637-aa12-78e2ff0ae9ca";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/F1A2-55DA";
|
||||
fsType = "vfat";
|
||||
};
|
||||
|
||||
fileSystems."/Helium" =
|
||||
{ device = "/dev/disk/by-uuid/0cb2606b-8692-4538-a9ad-288e8597b8a4";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/Barium" =
|
||||
{ device = "/dev/disk/by-uuid/2ce586a1-e8f1-4a0d-bb44-ff3d1f8a79fc";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/Chlor" =
|
||||
{ device = "/dev/disk/by-uuid/55b5d373-8a07-46af-8f73-17e711c0a8d9";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
swapDevices = [ ];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp5s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
39
hardware/lamarr.nix
Normal file
39
hardware/lamarr.nix
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/b203a7f3-1328-4702-bea5-f29a946b93be";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/312E-3729";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0077" "dmask=0077" ];
|
||||
};
|
||||
|
||||
swapDevices = [ ];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp0s31f6.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlp4s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
42
helix/config.toml
Normal file
42
helix/config.toml
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
theme = "ayu_mirage"
|
||||
|
||||
[editor]
|
||||
bufferline = "multiple"
|
||||
color-modes = true
|
||||
cursorline = true
|
||||
line-number = "relative"
|
||||
gutters = ["diagnostics", "spacer", "line-numbers", "spacer", "diff"]
|
||||
rulers = [80]
|
||||
|
||||
[editor.cursor-shape]
|
||||
insert = "bar"
|
||||
normal = "block"
|
||||
select = "underline"
|
||||
|
||||
[editor.file-picker]
|
||||
hidden = false
|
||||
|
||||
[editor.statusline]
|
||||
left = ["mode", "spinner", "read-only-indicator", "version-control"]
|
||||
center = ["file-modification-indicator", "file-name", "separator", "file-type"]
|
||||
|
||||
[editor.lsp]
|
||||
display-messages = true
|
||||
|
||||
[editor.whitespace]
|
||||
render = "all"
|
||||
[editor.whitespace.characters]
|
||||
space = "·"
|
||||
nbsp = "⍽"
|
||||
nnbsp = "␣"
|
||||
tab = "→"
|
||||
newline = "⏎"
|
||||
tabpad = "·"
|
||||
|
||||
[editor.indent-guides]
|
||||
render = true
|
||||
character = "╎" # Some characters that work well: "▏", "┆", "┊", "⸽"
|
||||
skip-levels = 1
|
||||
|
||||
[keys.normal]
|
||||
";" = "command_mode" # Use ; instead of : to type commands without shifting.
|
||||
42
helix/languages.toml
Normal file
42
helix/languages.toml
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
use-grammars = { only = [ "asciidoc", "c", "c-sharp", "latex", "rust" ] }
|
||||
|
||||
# [[language]]
|
||||
# name = "asciidoc"
|
||||
# scope = "source.asciidoc"
|
||||
# auto-format = false
|
||||
# comment-tokens = ["//"]
|
||||
# block-comment-tokens = [
|
||||
# { start = "////", end = "////"},
|
||||
# { start = "[comment]\n--", end = "--" },
|
||||
# { start = "[comment]\n", end = "\n\n" }
|
||||
# ]
|
||||
# file-types = ["adoc", "asciidoc", "asciidoctor"]
|
||||
# shebangs = ["asciidoctor"]
|
||||
|
||||
[language-server.clangd.config]
|
||||
fallbackFlags = [ "-std=c23" ]
|
||||
|
||||
[[language]]
|
||||
name = "cpp"
|
||||
file-types = ["cc", "hh", "c++", "cpp", "hpp", "ipp", "tpp", "cxx", "hxx", "ixx", "txx", "ino", "C", "H", "cu", "cuh", "cppm", "h++", "ii", "inl", { glob = ".hpp.in" }]
|
||||
|
||||
[[language]]
|
||||
name = "c"
|
||||
auto-format = true
|
||||
file-types = ["c", "h", { glob = ".h.in" }]
|
||||
indent = { tab-width = 4, unit = "\t" }
|
||||
|
||||
[[language]]
|
||||
name = "toml"
|
||||
indent = { tab-width = 4, unit = "\t" }
|
||||
|
||||
[[language]]
|
||||
name = "asciidoc"
|
||||
scope = "source.adoc"
|
||||
file-types = ["adoc", "asciidoc", "asciidoctor"]
|
||||
shebangs = ["asciidoctor"]
|
||||
grammar = "asciidoc"
|
||||
|
||||
[[grammar]]
|
||||
name = "asciidoc"
|
||||
source = { git = "https://github.com/cathaysia/tree-sitter-asciidoc", rev = "241f0c1ffeab76fef463be28c7c498757dedd7ee", subpath = "tree-sitter-asciidoc" }
|
||||
64
helix/themes/doge.toml
Normal file
64
helix/themes/doge.toml
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
"ui.background" = { bg = "very-dark-brown" }
|
||||
"ui.cursor" = { bg = "white" }
|
||||
"ui.cursor.match" = { fg = "black", bg = "light-gray" }
|
||||
"ui.cursor.primary" = { fg = "black", bg = "white" }
|
||||
"ui.cursorline.primary" = { bg = "dark-brown" }
|
||||
"ui.gutter" = { bg = "dark-brown" }
|
||||
"ui.gutter.selected" = { fg = "light-orange", bg = "dark-brown", modifiers = ["italic", "bold"] }
|
||||
"ui.text" = "light-gray-brown"
|
||||
"ui.selection" = { fg = "black", bg = "light-gray" }
|
||||
"ui.statusline" = { bg = "dark-brown" }
|
||||
"ui.statusline.normal" = { fg = "dark-brown", bg = "blue", modifiers = ["bold"] }
|
||||
"ui.statusline.insert" = { fg = "dark-brown", bg = "green", modifiers = ["bold"] }
|
||||
"ui.statusline.select" = { fg = "dark-brown", bg = "purple", modifiers = ["bold"] }
|
||||
"ui.menu" = { bg = "very-dark-brown" }
|
||||
"ui.virtual" = "gray"
|
||||
"ui.virtual.ruler" = { bg = "gray" }
|
||||
|
||||
"comment" = "blue"
|
||||
"constant" = "orange"
|
||||
"constructor" = "purple"
|
||||
"constant.builtin" = "cyan"
|
||||
"constant.character.escape" = "cyan"
|
||||
"constant.numeric" = "orange"
|
||||
"diff.plus" = "green"
|
||||
"diff.minus" = "red"
|
||||
"diff.delta" = "orange"
|
||||
"function" = "light-orange"
|
||||
"function.special" = "yellow"
|
||||
"keyword" = "red"
|
||||
"keyword.operator" = "light-orange"
|
||||
"keyword.storage" = { fg = "red", modifiers = ["italic"] }
|
||||
"label" = "green"
|
||||
"namespace" = "light-brown"
|
||||
"operator" = "blue"
|
||||
"punctuation" = "orange"
|
||||
"special" = { fg = "red", modifiers = ["italic"] }
|
||||
"string" = "yellow"
|
||||
"string.regexp" = "cyan"
|
||||
"string.symbol" = "orange"
|
||||
"string.url" = "red"
|
||||
"type" = "orange"
|
||||
"variable" = { fg = "green", modifiers = ["italic"] }
|
||||
"variable.parameter" = "cyan"
|
||||
|
||||
[palette]
|
||||
very-light-gray = "#c5c8c6"
|
||||
light-gray = "#969896"
|
||||
semilight-gray = "#3c3f45"
|
||||
gray = "#373b41"
|
||||
dark-gray = "#282a2e"
|
||||
dark-brown = "#4e4343"
|
||||
very-dark-brown = "#2b2525"
|
||||
brown = "#7c6645"
|
||||
light-gray-brown = "#a59797"
|
||||
light-brown = "#b29a74"
|
||||
cyan = "#63e2ba"
|
||||
blue = "#00bfff"
|
||||
purple = "#c679dd"
|
||||
# green = "#7acc61" # "#009e56"
|
||||
green = "#24ff7f"
|
||||
red = "#fe5f55"
|
||||
orange = "#de935f"
|
||||
light-orange = "#f0c674"
|
||||
yellow = "#e0ea5d" # "#cccc3f"
|
||||
2
helix/themes/doom_acario_transparent.toml
Normal file
2
helix/themes/doom_acario_transparent.toml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
inherits = "doom_acario_dark"
|
||||
"ui.background" = {}
|
||||
2
helix/themes/iroaseta_transparent.toml
Normal file
2
helix/themes/iroaseta_transparent.toml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
inherits = "iroaseta"
|
||||
"ui.background" = {}
|
||||
137
leftwm/config_chell.ron
Normal file
137
leftwm/config_chell.ron
Normal file
|
|
@ -0,0 +1,137 @@
|
|||
// _ ___ ___ _
|
||||
// | | / __)_ / __|_)
|
||||
// | | ____| |__| |_ _ _ _ ____ ____ ___ ____ | |__ _ ____ ____ ___ ____
|
||||
// | |/ _ ) __) _) | | | \ / ___) _ \| _ \| __) |/ _ | / ___) _ \| _ \
|
||||
// | ( (/ /| | | |_| | | | | | | ( (__| |_| | | | | | | ( ( | |_| | | |_| | | | |
|
||||
// |_|\____)_| \___)____|_|_|_| \____)___/|_| |_|_| |_|\_|| (_)_| \___/|_| |_|
|
||||
// A WindowManager for Adventurers (____/
|
||||
// For info about configuration please visit https://github.com/leftwm/leftwm/wiki
|
||||
|
||||
#![enable(implicit_some)]
|
||||
#![enable(unwrap_newtypes)]
|
||||
(
|
||||
modkey: "Mod1",
|
||||
mousekey: "Mod1",
|
||||
workspaces: [
|
||||
(output: "DP-1", x: 0, y: 0, width: 1920, height: 1080),
|
||||
(output: "DP-2", x: 1920, y: 0, width: 3840, height: 2160),
|
||||
(output: "HDMI-1", x: 5760, y: 0, width: 1920, height: 1080)
|
||||
],
|
||||
tags: [
|
||||
"1",
|
||||
"2",
|
||||
"3",
|
||||
"4",
|
||||
"5",
|
||||
"6",
|
||||
"7",
|
||||
"8",
|
||||
"9",
|
||||
"10",
|
||||
"11",
|
||||
"12"
|
||||
],
|
||||
max_window_width: None,
|
||||
layouts: [
|
||||
"MainAndVertStack",
|
||||
"EvenHorizontal",
|
||||
"Grid",
|
||||
],
|
||||
layout_definitions: [
|
||||
(name: "MainAndVertStack", flip: None, rotate: North, reserve: None, columns: (flip: None, rotate: North, main: (count: 1, size: 0.5, flip: None, rotate: North, split: Vertical), stack: (flip: None, rotate: North, split: Horizontal), second_stack: None)),
|
||||
(name: "EvenHorizontal", flip: None, rotate: North, reserve: None, columns: (flip: None, rotate: North, main: None, stack: (flip: None, rotate: North, split: Vertical), second_stack: None)),
|
||||
(name: "Monocle", flip: None, rotate: North, reserve: None, columns: (flip: None, rotate: North, main: None, stack: (flip: None, rotate: North, split: None), second_stack: None)),
|
||||
(name: "Grid", flip: None, rotate: North, reserve: None, columns: (flip: None, rotate: North, main: None, stack: (flip: None, rotate: North, split: Grid), second_stack: None)),
|
||||
(name: "Fibonacci", flip: None, rotate: North, reserve: None, columns: (flip: None, rotate: North, main: (count: 1, size: 0.5, flip: None, rotate: North, split: Vertical), stack: (flip: None, rotate: North, split: Fibonacci), second_stack: None)),
|
||||
(name: "Dwindle", flip: None, rotate: North, reserve: None, columns: (flip: None, rotate: North, main: (count: 1, size: 0.5, flip: None, rotate: North, split: Vertical), stack: (flip: None, rotate: North, split: Dwindle), second_stack: None)),
|
||||
],
|
||||
layout_mode: Tag,
|
||||
insert_behavior: Bottom,
|
||||
scratchpad: [
|
||||
(name: "Alacritty", value: "alacritty", x: 10, y: 32, width: 1900, height: 200),
|
||||
],
|
||||
window_rules: [],
|
||||
disable_current_tag_swap: false,
|
||||
disable_tile_drag: false,
|
||||
disable_window_snap: true,
|
||||
focus_behaviour: Sloppy,
|
||||
focus_new_windows: true,
|
||||
single_window_border: true,
|
||||
sloppy_mouse_follows_focus: true,
|
||||
create_follows_cursor: None,
|
||||
auto_derive_workspaces: true,
|
||||
disable_cursor_reposition_on_resize: false,
|
||||
keybind: [
|
||||
// General keybinds
|
||||
(command: HardReload, value: "", modifier: ["modkey", "Shift"], key: "b"),
|
||||
(command: SoftReload, value: "", modifier: ["modkey", "Shift"], key: "r"),
|
||||
(command: Execute, value: "loginctl kill-session $XDG_SESSION_ID", modifier: ["modkey", "Shift"], key: "x"),
|
||||
(command: Execute, value: "slock", modifier: ["modkey", "Control"], key: "l"),
|
||||
(command: Execute, value: "rofi -show run", modifier: ["modkey"], key: "p"),
|
||||
(command: ToggleScratchPad, value: "Alacritty", modifier: ["modkey", "Shift"], key: "p"),
|
||||
(command: Execute, value: "maim -s --format png /dev/stdout | xclip -selection clipboard -t image/png -i", modifier: ["modkey"], key: "d"),
|
||||
// Application keybinds
|
||||
// (command: Execute, value: "sh -e dmenu_run", modifier: ["modkey"], key: "p"),
|
||||
(command: Execute, value: "alacritty", modifier: ["modkey", "Shift"], key: "Return"),
|
||||
(command: Execute, value: "firefox", modifier: ["modkey"], key: "i"),
|
||||
(command: Execute, value: "brave", modifier: ["modkey", "Shift"], key: "i"),
|
||||
(command: Execute, value: "steam", modifier: ["modkey", "Shift"], key: "s"),
|
||||
(command: Execute, value: "obs", modifier: ["modkey", "Shift"], key: "o"),
|
||||
(command: Execute, value: "telegram-desktop", modifier: ["modkey", "Control"], key: "t"),
|
||||
(command: Execute, value: "signal-desktop", modifier: ["modkey", "Control"], key: "s"),
|
||||
(command: Execute, value: "element-desktop", modifier: ["modkey", "Control"], key: "e"),
|
||||
(command: Execute, value: "webcord", modifier: ["modkey", "Control"], key: "d"),
|
||||
(command: Execute, value: "mumble", modifier: ["modkey"], key: "m"),
|
||||
// Window keybinds
|
||||
(command: ToggleFullScreen, value: "", modifier: ["modkey"], key: "f"),
|
||||
(command: SwapTags, value: "", modifier: ["modkey"], key: "w"),
|
||||
(command: MoveToLastWorkspace, value: "", modifier: ["modkey", "Shift"], key: "w"),
|
||||
(command: CloseWindow, value: "", modifier: ["modkey", "Shift"], key: "c"),
|
||||
(command: FloatingToTile, value: "", modifier: ["modkey"], key: "t"),
|
||||
(command: MoveWindowUp, value: "", modifier: ["modkey", "Shift"], key: "k"),
|
||||
(command: MoveWindowUp, value: "", modifier: ["modkey", "Shift"], key: "Up"),
|
||||
(command: MoveWindowDown, value: "", modifier: ["modkey", "Shift"], key: "j"),
|
||||
(command: MoveWindowDown, value: "", modifier: ["modkey", "Shift"], key: "Down"),
|
||||
(command: MoveWindowTop, value: "", modifier: ["modkey"], key: "Return"),
|
||||
(command: FocusWindowUp, value: "", modifier: ["modkey"], key: "k"),
|
||||
(command: FocusWindowUp, value: "", modifier: ["modkey"], key: "Up"),
|
||||
(command: FocusWindowDown, value: "", modifier: ["modkey"], key: "j"),
|
||||
(command: FocusWindowDown, value: "", modifier: ["modkey"], key: "Down"),
|
||||
// Layout keybinds
|
||||
(command: NextLayout, value: "", modifier: ["modkey", "Control"], key: "k"),
|
||||
(command: PreviousLayout, value: "", modifier: ["modkey", "Control"], key: "j"),
|
||||
(command: FocusWorkspaceNext, value: "", modifier: ["modkey"], key: "l"),
|
||||
(command: FocusWorkspacePrevious, value: "", modifier: ["modkey"], key: "h"),
|
||||
|
||||
(command: NextLayout, value: "", modifier: ["modkey", "Control"], key: "Up"),
|
||||
(command: PreviousLayout, value: "", modifier: ["modkey", "Control"], key: "Down"),
|
||||
(command: FocusWorkspaceNext, value: "", modifier: ["modkey"], key: "Right"),
|
||||
(command: FocusWorkspacePrevious, value: "", modifier: ["modkey"], key: "Left"),
|
||||
// Tag keybinds
|
||||
(command: GotoTag, value: "1", modifier: ["modkey"], key: "F1"),
|
||||
(command: GotoTag, value: "2", modifier: ["modkey"], key: "F2"),
|
||||
(command: GotoTag, value: "3", modifier: ["modkey"], key: "F3"),
|
||||
(command: GotoTag, value: "4", modifier: ["modkey"], key: "F4"),
|
||||
(command: GotoTag, value: "5", modifier: ["modkey"], key: "F5"),
|
||||
(command: GotoTag, value: "6", modifier: ["modkey"], key: "F6"),
|
||||
(command: GotoTag, value: "7", modifier: ["modkey"], key: "F7"),
|
||||
(command: GotoTag, value: "8", modifier: ["modkey"], key: "F8"),
|
||||
(command: GotoTag, value: "9", modifier: ["modkey"], key: "F9"),
|
||||
(command: GotoTag, value: "10", modifier: ["modkey"], key: "F10"),
|
||||
(command: GotoTag, value: "11", modifier: ["modkey"], key: "F11"),
|
||||
(command: GotoTag, value: "12", modifier: ["modkey"], key: "F12"),
|
||||
(command: MoveToTag, value: "1", modifier: ["modkey", "Shift"], key: "F1"),
|
||||
(command: MoveToTag, value: "2", modifier: ["modkey", "Shift"], key: "F2"),
|
||||
(command: MoveToTag, value: "3", modifier: ["modkey", "Shift"], key: "F3"),
|
||||
(command: MoveToTag, value: "4", modifier: ["modkey", "Shift"], key: "F4"),
|
||||
(command: MoveToTag, value: "5", modifier: ["modkey", "Shift"], key: "F5"),
|
||||
(command: MoveToTag, value: "6", modifier: ["modkey", "Shift"], key: "F6"),
|
||||
(command: MoveToTag, value: "7", modifier: ["modkey", "Shift"], key: "F7"),
|
||||
(command: MoveToTag, value: "8", modifier: ["modkey", "Shift"], key: "F8"),
|
||||
(command: MoveToTag, value: "9", modifier: ["modkey", "Shift"], key: "F9"),
|
||||
(command: MoveToTag, value: "10", modifier: ["modkey", "Shift"], key: "F10"),
|
||||
(command: MoveToTag, value: "11", modifier: ["modkey", "Shift"], key: "F11"),
|
||||
(command: MoveToTag, value: "12", modifier: ["modkey", "Shift"], key: "F12"),
|
||||
],
|
||||
state_path: None,
|
||||
)
|
||||
135
leftwm/config_lamarr.ron
Normal file
135
leftwm/config_lamarr.ron
Normal file
|
|
@ -0,0 +1,135 @@
|
|||
// _ ___ ___ _
|
||||
// | | / __)_ / __|_)
|
||||
// | | ____| |__| |_ _ _ _ ____ ____ ___ ____ | |__ _ ____ ____ ___ ____
|
||||
// | |/ _ ) __) _) | | | \ / ___) _ \| _ \| __) |/ _ | / ___) _ \| _ \
|
||||
// | ( (/ /| | | |_| | | | | | | ( (__| |_| | | | | | | ( ( | |_| | | |_| | | | |
|
||||
// |_|\____)_| \___)____|_|_|_| \____)___/|_| |_|_| |_|\_|| (_)_| \___/|_| |_|
|
||||
// A WindowManager for Adventurers (____/
|
||||
// For info about configuration please visit https://github.com/leftwm/leftwm/wiki
|
||||
|
||||
#![enable(implicit_some)]
|
||||
#![enable(unwrap_newtypes)]
|
||||
(
|
||||
modkey: "Mod4",
|
||||
mousekey: "Mod4",
|
||||
workspaces: [
|
||||
(output: "eDP-1", x: 0, y: 0, width: 1920, height: 1080)
|
||||
],
|
||||
tags: [
|
||||
"1",
|
||||
"2",
|
||||
"3",
|
||||
"4",
|
||||
"5",
|
||||
"6",
|
||||
"7",
|
||||
"8",
|
||||
"9",
|
||||
"10",
|
||||
"11",
|
||||
"12"
|
||||
],
|
||||
max_window_width: None,
|
||||
layouts: [
|
||||
"MainAndVertStack",
|
||||
"EvenHorizontal",
|
||||
"Grid",
|
||||
],
|
||||
layout_definitions: [
|
||||
(name: "MainAndVertStack", flip: None, rotate: North, reserve: None, columns: (flip: None, rotate: North, main: (count: 1, size: 0.5, flip: None, rotate: North, split: Vertical), stack: (flip: None, rotate: North, split: Horizontal), second_stack: None)),
|
||||
(name: "EvenHorizontal", flip: None, rotate: North, reserve: None, columns: (flip: None, rotate: North, main: None, stack: (flip: None, rotate: North, split: Vertical), second_stack: None)),
|
||||
(name: "Monocle", flip: None, rotate: North, reserve: None, columns: (flip: None, rotate: North, main: None, stack: (flip: None, rotate: North, split: None), second_stack: None)),
|
||||
(name: "Grid", flip: None, rotate: North, reserve: None, columns: (flip: None, rotate: North, main: None, stack: (flip: None, rotate: North, split: Grid), second_stack: None)),
|
||||
(name: "Fibonacci", flip: None, rotate: North, reserve: None, columns: (flip: None, rotate: North, main: (count: 1, size: 0.5, flip: None, rotate: North, split: Vertical), stack: (flip: None, rotate: North, split: Fibonacci), second_stack: None)),
|
||||
(name: "Dwindle", flip: None, rotate: North, reserve: None, columns: (flip: None, rotate: North, main: (count: 1, size: 0.5, flip: None, rotate: North, split: Vertical), stack: (flip: None, rotate: North, split: Dwindle), second_stack: None)),
|
||||
],
|
||||
layout_mode: Tag,
|
||||
insert_behavior: Bottom,
|
||||
scratchpad: [
|
||||
(name: "Alacritty", value: "alacritty", x: 10, y: 32, width: 1900, height: 200),
|
||||
],
|
||||
window_rules: [],
|
||||
disable_current_tag_swap: false,
|
||||
disable_tile_drag: false,
|
||||
disable_window_snap: true,
|
||||
focus_behaviour: Sloppy,
|
||||
focus_new_windows: true,
|
||||
single_window_border: true,
|
||||
sloppy_mouse_follows_focus: true,
|
||||
create_follows_cursor: None,
|
||||
auto_derive_workspaces: true,
|
||||
disable_cursor_reposition_on_resize: false,
|
||||
keybind: [
|
||||
// General keybinds
|
||||
(command: HardReload, value: "", modifier: ["modkey", "Shift"], key: "b"),
|
||||
(command: SoftReload, value: "", modifier: ["modkey", "Shift"], key: "r"),
|
||||
(command: Execute, value: "loginctl kill-session $XDG_SESSION_ID", modifier: ["modkey", "Shift"], key: "x"),
|
||||
(command: Execute, value: "slock", modifier: ["modkey", "Control"], key: "l"),
|
||||
(command: Execute, value: "rofi -show run", modifier: ["modkey"], key: "p"),
|
||||
(command: ToggleScratchPad, value: "Alacritty", modifier: ["modkey", "Shift"], key: "p"),
|
||||
(command: Execute, value: "maim -s --format png /dev/stdout | xclip -selection clipboard -t image/png -i", modifier: ["modkey"], key: "d"),
|
||||
// Application keybinds
|
||||
// (command: Execute, value: "sh -e dmenu_run", modifier: ["modkey"], key: "p"),
|
||||
(command: Execute, value: "alacritty", modifier: ["modkey", "Shift"], key: "Return"),
|
||||
(command: Execute, value: "firefox", modifier: ["modkey"], key: "i"),
|
||||
(command: Execute, value: "brave", modifier: ["modkey", "Shift"], key: "i"),
|
||||
(command: Execute, value: "steam", modifier: ["modkey", "Shift"], key: "s"),
|
||||
(command: Execute, value: "obs", modifier: ["modkey", "Shift"], key: "o"),
|
||||
(command: Execute, value: "telegram-desktop", modifier: ["modkey", "Control"], key: "t"),
|
||||
(command: Execute, value: "signal-desktop", modifier: ["modkey", "Control"], key: "s"),
|
||||
(command: Execute, value: "element-desktop", modifier: ["modkey", "Control"], key: "e"),
|
||||
(command: Execute, value: "webcord", modifier: ["modkey", "Control"], key: "d"),
|
||||
(command: Execute, value: "mumble", modifier: ["modkey"], key: "m"),
|
||||
// Window keybinds
|
||||
(command: ToggleFullScreen, value: "", modifier: ["modkey"], key: "f"),
|
||||
(command: SwapTags, value: "", modifier: ["modkey"], key: "w"),
|
||||
(command: MoveToLastWorkspace, value: "", modifier: ["modkey", "Shift"], key: "w"),
|
||||
(command: CloseWindow, value: "", modifier: ["modkey", "Shift"], key: "c"),
|
||||
(command: FloatingToTile, value: "", modifier: ["modkey"], key: "t"),
|
||||
(command: MoveWindowUp, value: "", modifier: ["modkey", "Shift"], key: "k"),
|
||||
(command: MoveWindowUp, value: "", modifier: ["modkey", "Shift"], key: "Up"),
|
||||
(command: MoveWindowDown, value: "", modifier: ["modkey", "Shift"], key: "j"),
|
||||
(command: MoveWindowDown, value: "", modifier: ["modkey", "Shift"], key: "Down"),
|
||||
(command: MoveWindowTop, value: "", modifier: ["modkey"], key: "Return"),
|
||||
(command: FocusWindowUp, value: "", modifier: ["modkey"], key: "k"),
|
||||
(command: FocusWindowUp, value: "", modifier: ["modkey"], key: "Up"),
|
||||
(command: FocusWindowDown, value: "", modifier: ["modkey"], key: "j"),
|
||||
(command: FocusWindowDown, value: "", modifier: ["modkey"], key: "Down"),
|
||||
// Layout keybinds
|
||||
(command: NextLayout, value: "", modifier: ["modkey", "Control"], key: "k"),
|
||||
(command: PreviousLayout, value: "", modifier: ["modkey", "Control"], key: "j"),
|
||||
(command: FocusWorkspaceNext, value: "", modifier: ["modkey"], key: "l"),
|
||||
(command: FocusWorkspacePrevious, value: "", modifier: ["modkey"], key: "h"),
|
||||
|
||||
(command: NextLayout, value: "", modifier: ["modkey", "Control"], key: "Up"),
|
||||
(command: PreviousLayout, value: "", modifier: ["modkey", "Control"], key: "Down"),
|
||||
(command: FocusWorkspaceNext, value: "", modifier: ["modkey"], key: "Right"),
|
||||
(command: FocusWorkspacePrevious, value: "", modifier: ["modkey"], key: "Left"),
|
||||
// Tag keybinds
|
||||
(command: GotoTag, value: "1", modifier: ["modkey"], key: "F1"),
|
||||
(command: GotoTag, value: "2", modifier: ["modkey"], key: "F2"),
|
||||
(command: GotoTag, value: "3", modifier: ["modkey"], key: "F3"),
|
||||
(command: GotoTag, value: "4", modifier: ["modkey"], key: "F4"),
|
||||
(command: GotoTag, value: "5", modifier: ["modkey"], key: "F5"),
|
||||
(command: GotoTag, value: "6", modifier: ["modkey"], key: "F6"),
|
||||
(command: GotoTag, value: "7", modifier: ["modkey"], key: "F7"),
|
||||
(command: GotoTag, value: "8", modifier: ["modkey"], key: "F8"),
|
||||
(command: GotoTag, value: "9", modifier: ["modkey"], key: "F9"),
|
||||
(command: GotoTag, value: "10", modifier: ["modkey"], key: "F10"),
|
||||
(command: GotoTag, value: "11", modifier: ["modkey"], key: "F11"),
|
||||
(command: GotoTag, value: "12", modifier: ["modkey"], key: "F12"),
|
||||
(command: MoveToTag, value: "1", modifier: ["modkey", "Shift"], key: "F1"),
|
||||
(command: MoveToTag, value: "2", modifier: ["modkey", "Shift"], key: "F2"),
|
||||
(command: MoveToTag, value: "3", modifier: ["modkey", "Shift"], key: "F3"),
|
||||
(command: MoveToTag, value: "4", modifier: ["modkey", "Shift"], key: "F4"),
|
||||
(command: MoveToTag, value: "5", modifier: ["modkey", "Shift"], key: "F5"),
|
||||
(command: MoveToTag, value: "6", modifier: ["modkey", "Shift"], key: "F6"),
|
||||
(command: MoveToTag, value: "7", modifier: ["modkey", "Shift"], key: "F7"),
|
||||
(command: MoveToTag, value: "8", modifier: ["modkey", "Shift"], key: "F8"),
|
||||
(command: MoveToTag, value: "9", modifier: ["modkey", "Shift"], key: "F9"),
|
||||
(command: MoveToTag, value: "10", modifier: ["modkey", "Shift"], key: "F10"),
|
||||
(command: MoveToTag, value: "11", modifier: ["modkey", "Shift"], key: "F11"),
|
||||
(command: MoveToTag, value: "12", modifier: ["modkey", "Shift"], key: "F12"),
|
||||
],
|
||||
state_path: None,
|
||||
)
|
||||
BIN
leftwm/themes/current/background.jpeg
Normal file
BIN
leftwm/themes/current/background.jpeg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 948 KiB |
19
leftwm/themes/current/down
Executable file
19
leftwm/themes/current/down
Executable file
|
|
@ -0,0 +1,19 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )"
|
||||
|
||||
#set background
|
||||
if [ -x "$(command -v feh)" ]; then
|
||||
feh --bg-scale $SCRIPTPATH/down.jpg
|
||||
fi
|
||||
|
||||
leftwm-command "UnloadTheme"
|
||||
|
||||
pkill compton
|
||||
pkill picom
|
||||
pkill polybar
|
||||
pkill conky
|
||||
pkill dunst
|
||||
if [ -x "$(command -v eww)" ]; then
|
||||
eww kill
|
||||
fi
|
||||
BIN
leftwm/themes/current/down.jpg
Normal file
BIN
leftwm/themes/current/down.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 539 B |
3
leftwm/themes/current/sizes.liquid
Normal file
3
leftwm/themes/current/sizes.liquid
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{% for workspace in workspaces %}
|
||||
{{workspace.w}}x{{workspace.h}}+{{workspace.x}}+{{workspace.y}}
|
||||
{% endfor %}
|
||||
19
leftwm/themes/current/template.liquid
Normal file
19
leftwm/themes/current/template.liquid
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
{% assign mine_open = ' (button :class "ws-button-mine" :onclick "leftwm-command \"SendWorkspaceToTag ' %}
|
||||
{% assign visible_open = ' (button :class "ws-button-visible" :onclick "leftwm-command \"SendWorkspaceToTag ' %}
|
||||
{% assign busy_open = ' (button :class "ws-button-busy" :onclick "leftwm-command \"SendWorkspaceToTag ' %}
|
||||
{% assign close = '`)' %}
|
||||
{% assign unoccupied = ' (button :class "ws-button" :onclick "leftwm-command \"SendWorkspaceToTag ' %}
|
||||
|
||||
{{'(box :class "workspaces" :orientation "h" :space-evenly true :halign "start" :spacing 10'}}
|
||||
{% for tag in workspace.tags %}
|
||||
{% if tag.mine %}
|
||||
{{mine_open}}{{workspace.index | append: ' ' | append: tag.index | append: '\"" `'}}{{ tag.name }}{{close}}
|
||||
{% elsif tag.visible %}
|
||||
{{visible_open}}{{workspace.index | append: ' ' | append: tag.index | append: '\"" `'}}{{ tag.name }}{{close}}
|
||||
{% elsif tag.busy %}
|
||||
{{busy_open}}{{workspace.index | append: ' ' | append: tag.index | append: '\"" `'}}{{ tag.name }}{{close}}
|
||||
{% else %}
|
||||
{{unoccupied}}{{workspace.index | append: ' ' | append: tag.index | append: '\"" `'}}{{ "·" }}{{close}}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{{")"}}
|
||||
7
leftwm/themes/current/theme.ron
Normal file
7
leftwm/themes/current/theme.ron
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
(
|
||||
border_width: 2,
|
||||
margin: 4,
|
||||
default_border_color: "#37474F",
|
||||
floating_border_color: "#225588",
|
||||
focused_border_color: "#885522",
|
||||
)
|
||||
51
leftwm/themes/current/up
Executable file
51
leftwm/themes/current/up
Executable file
|
|
@ -0,0 +1,51 @@
|
|||
#!/usr/bin/env bash
|
||||
export SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )"
|
||||
|
||||
#if path to liblinkt is not not exported do so:
|
||||
if [ -z "$LD_LIBRARY_PATH" ]; then
|
||||
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib"
|
||||
fi
|
||||
|
||||
# Down the last running theme
|
||||
if [ -f "/tmp/leftwm-theme-down" ]; then
|
||||
/tmp/leftwm-theme-down
|
||||
rm /tmp/leftwm-theme-down
|
||||
fi
|
||||
ln -s $SCRIPTPATH/down /tmp/leftwm-theme-down
|
||||
|
||||
# start eww daemon
|
||||
eww daemon &
|
||||
|
||||
# Boot picom or compton if it exists
|
||||
if [ -x "$(command -v picom)" ]; then
|
||||
picom &> /dev/null &
|
||||
# picom &> /dev/null &
|
||||
elif [ -x "$(command -v compton)" ]; then
|
||||
compton &> /dev/null &
|
||||
fi
|
||||
|
||||
# Set the theme.ron config
|
||||
leftwm-command "LoadTheme $SCRIPTPATH/theme.ron"
|
||||
|
||||
# Set background
|
||||
if [ -x "$(command -v feh)" ]; then
|
||||
feh --bg-scale $SCRIPTPATH/background.jpeg
|
||||
fi
|
||||
|
||||
# Boot dunst as notification daemon
|
||||
if [ -x "$(command -v dunst)" ]; then
|
||||
dunst &> /dev/null &
|
||||
fi
|
||||
|
||||
setxkbmap -layout us -variant dvp -option caps:escape -option compose:Muhenkan
|
||||
|
||||
#open eww 'bar' windows
|
||||
#this is a bit of an uggly hack, a more elegant way will hopefully be possible with a future `eww` version
|
||||
sleep 1
|
||||
index=0
|
||||
sizes=( $(leftwm-state -q -n -t $SCRIPTPATH/sizes.liquid | sed -r '/^\s*$/d' ) )
|
||||
for size in "${sizes[@]}"
|
||||
do
|
||||
eww open bar --id bar$index --arg index=$index
|
||||
let index=index+1
|
||||
done
|
||||
946
nushell/config.nu
Normal file
946
nushell/config.nu
Normal file
|
|
@ -0,0 +1,946 @@
|
|||
# Nushell Config File
|
||||
#
|
||||
# version = "0.95.0"
|
||||
|
||||
source nix-your-shell.nu
|
||||
|
||||
# Use helix as the default editor
|
||||
$env.EDITOR = "hx"
|
||||
|
||||
# Enable macro backtraces by default in rust
|
||||
$env.RUSTFLAGS = "-Zmacro-backtrace"
|
||||
|
||||
# $env.MANPAGER = "sh -c 'col -bx | bat -l man -p'"
|
||||
$env.MANPAGER = "bat --style=header-filesize,grid,numbers -l man"
|
||||
|
||||
# Change into a different directory and show the contents
|
||||
def d [$path] { cd $path | ls }
|
||||
def lt [] { ls | sort-by type name -i | grid -c | str trim }
|
||||
|
||||
alias j = joshuto
|
||||
alias e = hx .
|
||||
alias code = cd /Barium/repos/
|
||||
|
||||
# Go to the repository with the name and start a nix development shell there.
|
||||
# If no argument is given a nix development shell will be started in the current dir.
|
||||
# Pass --nonix to skip
|
||||
def --env dev [project?: string, --nonix (-n)] {
|
||||
|
||||
# Switch directory to the project in case a name was passed
|
||||
if $project != null {
|
||||
let path = $"/Barium/repos/($project)"
|
||||
if ($path | path exists) {
|
||||
cd $path
|
||||
} else {
|
||||
print $"`($path)` is not a valid path. Please make sure the project exists"
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
# Start development shell here if not disabled
|
||||
if $nonix == false {
|
||||
print "Starting nix development shell"
|
||||
nix develop
|
||||
}
|
||||
}
|
||||
|
||||
# Grab a quick reference from the saved quick reference handbooks saved and
|
||||
# display it in the terminal
|
||||
def qrh [what: string = "sdl"] {
|
||||
cd /home/zentux/qrh
|
||||
|
||||
# Turn into glab for all files that begin with the topic
|
||||
let what = $"($what)*"
|
||||
|
||||
# Get matches that could fit the given name
|
||||
let opts = ls ($what | into glob)
|
||||
|
||||
# Open the matching documents in bat
|
||||
bat ...$opts.name
|
||||
}
|
||||
|
||||
# For more information on defining custom themes, see
|
||||
# https://www.nushell.sh/book/coloring_and_theming.html
|
||||
# And here is the theme collection
|
||||
# https://github.com/nushell/nu_scripts/tree/main/themes
|
||||
let dark_theme = {
|
||||
# color for nushell primitives
|
||||
separator: white
|
||||
leading_trailing_space_bg: { attr: n } # no fg, no bg, attr none effectively turns this off
|
||||
header: green_bold
|
||||
empty: blue
|
||||
# Closures can be used to choose colors for specific values.
|
||||
# The value (in this case, a bool) is piped into the closure.
|
||||
# eg) {|| if $in { 'light_cyan' } else { 'light_gray' } }
|
||||
bool: light_cyan
|
||||
int: white
|
||||
filesize: cyan
|
||||
duration: white
|
||||
date: purple
|
||||
range: white
|
||||
float: white
|
||||
string: white
|
||||
nothing: white
|
||||
binary: white
|
||||
cell-path: white
|
||||
row_index: green_bold
|
||||
record: white
|
||||
list: white
|
||||
block: white
|
||||
hints: dark_gray
|
||||
search_result: { bg: red fg: white }
|
||||
shape_and: purple_bold
|
||||
shape_binary: purple_bold
|
||||
shape_block: blue_bold
|
||||
shape_bool: light_cyan
|
||||
shape_closure: green_bold
|
||||
shape_custom: green
|
||||
shape_datetime: cyan_bold
|
||||
shape_directory: cyan
|
||||
shape_external: cyan
|
||||
shape_externalarg: green_bold
|
||||
shape_external_resolved: light_yellow_bold
|
||||
shape_filepath: cyan
|
||||
shape_flag: blue_bold
|
||||
shape_float: purple_bold
|
||||
# shapes are used to change the cli syntax highlighting
|
||||
shape_garbage: { fg: white bg: red attr: b}
|
||||
shape_glob_interpolation: cyan_bold
|
||||
shape_globpattern: cyan_bold
|
||||
shape_int: purple_bold
|
||||
shape_internalcall: cyan_bold
|
||||
shape_keyword: cyan_bold
|
||||
shape_list: cyan_bold
|
||||
shape_literal: blue
|
||||
shape_match_pattern: green
|
||||
shape_matching_brackets: { attr: u }
|
||||
shape_nothing: light_cyan
|
||||
shape_operator: yellow
|
||||
shape_or: purple_bold
|
||||
shape_pipe: purple_bold
|
||||
shape_range: yellow_bold
|
||||
shape_record: cyan_bold
|
||||
shape_redirection: purple_bold
|
||||
shape_signature: green_bold
|
||||
shape_string: green
|
||||
shape_string_interpolation: cyan_bold
|
||||
shape_table: blue_bold
|
||||
shape_variable: purple
|
||||
shape_vardecl: purple
|
||||
shape_raw_string: light_purple
|
||||
}
|
||||
|
||||
let light_theme = {
|
||||
# color for nushell primitives
|
||||
separator: dark_gray
|
||||
leading_trailing_space_bg: { attr: n } # no fg, no bg, attr none effectively turns this off
|
||||
header: green_bold
|
||||
empty: blue
|
||||
# Closures can be used to choose colors for specific values.
|
||||
# The value (in this case, a bool) is piped into the closure.
|
||||
# eg) {|| if $in { 'dark_cyan' } else { 'dark_gray' } }
|
||||
bool: dark_cyan
|
||||
int: dark_gray
|
||||
filesize: cyan_bold
|
||||
duration: dark_gray
|
||||
date: purple
|
||||
range: dark_gray
|
||||
float: dark_gray
|
||||
string: dark_gray
|
||||
nothing: dark_gray
|
||||
binary: dark_gray
|
||||
cell-path: dark_gray
|
||||
row_index: green_bold
|
||||
record: dark_gray
|
||||
list: dark_gray
|
||||
block: dark_gray
|
||||
hints: dark_gray
|
||||
search_result: { fg: white bg: red }
|
||||
shape_and: purple_bold
|
||||
shape_binary: purple_bold
|
||||
shape_block: blue_bold
|
||||
shape_bool: light_cyan
|
||||
shape_closure: green_bold
|
||||
shape_custom: green
|
||||
shape_datetime: cyan_bold
|
||||
shape_directory: cyan
|
||||
shape_external: cyan
|
||||
shape_externalarg: green_bold
|
||||
shape_external_resolved: light_purple_bold
|
||||
shape_filepath: cyan
|
||||
shape_flag: blue_bold
|
||||
shape_float: purple_bold
|
||||
# shapes are used to change the cli syntax highlighting
|
||||
shape_garbage: { fg: white bg: red attr: b}
|
||||
shape_globpattern: cyan_bold
|
||||
shape_int: purple_bold
|
||||
shape_internalcall: cyan_bold
|
||||
shape_keyword: cyan_bold
|
||||
shape_list: cyan_bold
|
||||
shape_literal: blue
|
||||
shape_match_pattern: green
|
||||
shape_matching_brackets: { attr: u }
|
||||
shape_nothing: light_cyan
|
||||
shape_operator: yellow
|
||||
shape_or: purple_bold
|
||||
shape_pipe: purple_bold
|
||||
shape_range: yellow_bold
|
||||
shape_record: cyan_bold
|
||||
shape_redirection: purple_bold
|
||||
shape_signature: green_bold
|
||||
shape_string: green
|
||||
shape_string_interpolation: cyan_bold
|
||||
shape_table: blue_bold
|
||||
shape_variable: purple
|
||||
shape_vardecl: purple
|
||||
shape_raw_string: light_purple
|
||||
}
|
||||
|
||||
# External completer example
|
||||
# let carapace_completer = {|spans|
|
||||
# carapace $spans.0 nushell ...$spans | from json
|
||||
# }
|
||||
|
||||
# The default config record. This is where much of your global configuration is setup.
|
||||
$env.config = {
|
||||
show_banner: false # true or false to enable or disable the welcome banner at startup
|
||||
|
||||
ls: {
|
||||
use_ls_colors: true # use the LS_COLORS environment variable to colorize output
|
||||
clickable_links: true # enable or disable clickable links. Your terminal has to support links.
|
||||
}
|
||||
|
||||
rm: {
|
||||
always_trash: false # always act as if -t was given. Can be overridden with -p
|
||||
}
|
||||
|
||||
table: {
|
||||
mode: compact # basic, compact, compact_double, light, thin, with_love, rounded, reinforced, heavy, none, other
|
||||
index_mode: always # "always" show indexes, "never" show indexes, "auto" = show indexes when a table has "index" column
|
||||
show_empty: true # show 'empty list' and 'empty record' placeholders for command output
|
||||
padding: { left: 1, right: 1 } # a left right padding of each column in a table
|
||||
trim: {
|
||||
methodology: wrapping # wrapping or truncating
|
||||
wrapping_try_keep_words: true # A strategy used by the 'wrapping' methodology
|
||||
truncating_suffix: "..." # A suffix used by the 'truncating' methodology
|
||||
}
|
||||
header_on_separator: false # show header text on separator/border line
|
||||
# abbreviated_row_count: 10 # limit data rows from top and bottom after reaching a set point
|
||||
}
|
||||
|
||||
error_style: "fancy" # "fancy" or "plain" for screen reader-friendly error messages
|
||||
|
||||
# datetime_format determines what a datetime rendered in the shell would look like.
|
||||
# Behavior without this configuration point will be to "humanize" the datetime display,
|
||||
# showing something like "a day ago."
|
||||
datetime_format: {
|
||||
# normal: '%a, %d %b %Y %H:%M:%S %z' # shows up in displays of variables or other datetime's outside of tables
|
||||
# table: '%m/%d/%y %I:%M:%S%p' # generally shows up in tabular outputs such as ls. commenting this out will change it to the default human readable datetime format
|
||||
}
|
||||
|
||||
explore: {
|
||||
status_bar_background: { fg: "#1D1F21", bg: "#C4C9C6" },
|
||||
command_bar_text: { fg: "#C4C9C6" },
|
||||
highlight: { fg: "black", bg: "yellow" },
|
||||
status: {
|
||||
error: { fg: "white", bg: "red" },
|
||||
warn: {}
|
||||
info: {}
|
||||
},
|
||||
selected_cell: { bg: light_blue },
|
||||
}
|
||||
|
||||
history: {
|
||||
max_size: 100_000 # Session has to be reloaded for this to take effect
|
||||
sync_on_enter: true # Enable to share history between multiple sessions, else you have to close the session to write history to file
|
||||
file_format: "plaintext" # "sqlite" or "plaintext"
|
||||
isolation: false # only available with sqlite file_format. true enables history isolation, false disables it. true will allow the history to be isolated to the current session using up/down arrows. false will allow the history to be shared across all sessions.
|
||||
}
|
||||
|
||||
completions: {
|
||||
case_sensitive: false # set to true to enable case-sensitive completions
|
||||
quick: true # set this to false to prevent auto-selecting completions when only one remains
|
||||
partial: true # set this to false to prevent partial filling of the prompt
|
||||
algorithm: "prefix" # prefix or fuzzy
|
||||
external: {
|
||||
enable: true # set to false to prevent nushell looking into $env.PATH to find more suggestions, `false` recommended for WSL users as this look up may be very slow
|
||||
max_results: 100 # setting it lower can improve completion performance at the cost of omitting some options
|
||||
completer: null # check 'carapace_completer' above as an example
|
||||
}
|
||||
use_ls_colors: true # set this to true to enable file/path/directory completions using LS_COLORS
|
||||
}
|
||||
|
||||
filesize: {
|
||||
unit: binary
|
||||
}
|
||||
|
||||
cursor_shape: {
|
||||
emacs: line # block, underscore, line, blink_block, blink_underscore, blink_line, inherit to skip setting cursor shape (line is the default)
|
||||
vi_insert: block # block, underscore, line, blink_block, blink_underscore, blink_line, inherit to skip setting cursor shape (block is the default)
|
||||
vi_normal: underscore # block, underscore, line, blink_block, blink_underscore, blink_line, inherit to skip setting cursor shape (underscore is the default)
|
||||
}
|
||||
|
||||
color_config: $dark_theme # if you want a more interesting theme, you can replace the empty record with `$dark_theme`, `$light_theme` or another custom record
|
||||
footer_mode: always # always, never, number_of_rows, auto
|
||||
float_precision: 2 # the precision for displaying floats in tables
|
||||
buffer_editor: "" # command that will be used to edit the current line buffer with ctrl+o, if unset fallback to $env.EDITOR and $env.VISUAL
|
||||
use_ansi_coloring: true
|
||||
bracketed_paste: true # enable bracketed paste, currently useless on windows
|
||||
edit_mode: emacs # emacs, vi
|
||||
shell_integration: {
|
||||
# osc2 abbreviates the path if in the home_dir, sets the tab/window title, shows the running command in the tab/window title
|
||||
osc2: true
|
||||
# osc7 is a way to communicate the path to the terminal, this is helpful for spawning new tabs in the same directory
|
||||
osc7: true
|
||||
# osc8 is also implemented as the deprecated setting ls.show_clickable_links, it shows clickable links in ls output if your terminal supports it. show_clickable_links is deprecated in favor of osc8
|
||||
osc8: true
|
||||
# osc9_9 is from ConEmu and is starting to get wider support. It's similar to osc7 in that it communicates the path to the terminal
|
||||
osc9_9: false
|
||||
# osc133 is several escapes invented by Final Term which include the supported ones below.
|
||||
# 133;A - Mark prompt start
|
||||
# 133;B - Mark prompt end
|
||||
# 133;C - Mark pre-execution
|
||||
# 133;D;exit - Mark execution finished with exit code
|
||||
# This is used to enable terminals to know where the prompt is, the command is, where the command finishes, and where the output of the command is
|
||||
osc133: true
|
||||
# osc633 is closely related to osc133 but only exists in visual studio code (vscode) and supports their shell integration features
|
||||
# 633;A - Mark prompt start
|
||||
# 633;B - Mark prompt end
|
||||
# 633;C - Mark pre-execution
|
||||
# 633;D;exit - Mark execution finished with exit code
|
||||
# 633;E - NOT IMPLEMENTED - Explicitly set the command line with an optional nonce
|
||||
# 633;P;Cwd=<path> - Mark the current working directory and communicate it to the terminal
|
||||
# and also helps with the run recent menu in vscode
|
||||
osc633: true
|
||||
# reset_application_mode is escape \x1b[?1l and was added to help ssh work better
|
||||
reset_application_mode: true
|
||||
}
|
||||
render_right_prompt_on_last_line: false # true or false to enable or disable right prompt to be rendered on last line of the prompt.
|
||||
use_kitty_protocol: false # enables keyboard enhancement protocol implemented by kitty console, only if your terminal support this.
|
||||
highlight_resolved_externals: false # true enables highlighting of external commands in the repl resolved by which.
|
||||
recursion_limit: 50 # the maximum number of times nushell allows recursion before stopping it
|
||||
|
||||
plugins: {} # Per-plugin configuration. See https://www.nushell.sh/contributor-book/plugins.html#configuration.
|
||||
|
||||
plugin_gc: {
|
||||
# Configuration for plugin garbage collection
|
||||
default: {
|
||||
enabled: true # true to enable stopping of inactive plugins
|
||||
stop_after: 10sec # how long to wait after a plugin is inactive to stop it
|
||||
}
|
||||
plugins: {
|
||||
# alternate configuration for specific plugins, by name, for example:
|
||||
#
|
||||
# gstat: {
|
||||
# enabled: false
|
||||
# }
|
||||
}
|
||||
}
|
||||
|
||||
hooks: {
|
||||
pre_prompt: [{ null }] # run before the prompt is shown
|
||||
pre_execution: [{ null }] # run before the repl input is run
|
||||
env_change: {
|
||||
PWD: [{|before, after| null }] # run if the PWD environment is different since the last repl input
|
||||
}
|
||||
display_output: "if (term size).columns >= 100 { table -e } else { table }" # run to display the output of a pipeline
|
||||
command_not_found: { null } # return an error message when a command is not found
|
||||
}
|
||||
|
||||
menus: [
|
||||
# Configuration for default nushell menus
|
||||
# Note the lack of source parameter
|
||||
{
|
||||
name: completion_menu
|
||||
only_buffer_difference: false
|
||||
marker: "| "
|
||||
type: {
|
||||
layout: columnar
|
||||
columns: 4
|
||||
col_width: 20 # Optional value. If missing all the screen width is used to calculate column width
|
||||
col_padding: 2
|
||||
}
|
||||
style: {
|
||||
text: green
|
||||
selected_text: { attr: r }
|
||||
description_text: yellow
|
||||
match_text: { attr: u }
|
||||
selected_match_text: { attr: ur }
|
||||
}
|
||||
}
|
||||
{
|
||||
name: ide_completion_menu
|
||||
only_buffer_difference: false
|
||||
marker: "| "
|
||||
type: {
|
||||
layout: ide
|
||||
min_completion_width: 0,
|
||||
max_completion_width: 50,
|
||||
max_completion_height: 10, # will be limited by the available lines in the terminal
|
||||
padding: 0,
|
||||
border: true,
|
||||
cursor_offset: 0,
|
||||
description_mode: "prefer_right"
|
||||
min_description_width: 0
|
||||
max_description_width: 50
|
||||
max_description_height: 10
|
||||
description_offset: 1
|
||||
# If true, the cursor pos will be corrected, so the suggestions match up with the typed text
|
||||
#
|
||||
# C:\> str
|
||||
# str join
|
||||
# str trim
|
||||
# str split
|
||||
correct_cursor_pos: false
|
||||
}
|
||||
style: {
|
||||
text: green
|
||||
selected_text: { attr: r }
|
||||
description_text: yellow
|
||||
match_text: { attr: u }
|
||||
selected_match_text: { attr: ur }
|
||||
}
|
||||
}
|
||||
{
|
||||
name: history_menu
|
||||
only_buffer_difference: true
|
||||
marker: "? "
|
||||
type: {
|
||||
layout: list
|
||||
page_size: 10
|
||||
}
|
||||
style: {
|
||||
text: green
|
||||
selected_text: green_reverse
|
||||
description_text: yellow
|
||||
}
|
||||
}
|
||||
{
|
||||
name: help_menu
|
||||
only_buffer_difference: true
|
||||
marker: "? "
|
||||
type: {
|
||||
layout: description
|
||||
columns: 4
|
||||
col_width: 20 # Optional value. If missing all the screen width is used to calculate column width
|
||||
col_padding: 2
|
||||
selection_rows: 4
|
||||
description_rows: 10
|
||||
}
|
||||
style: {
|
||||
text: green
|
||||
selected_text: green_reverse
|
||||
description_text: yellow
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
keybindings: [
|
||||
{
|
||||
name: completion_menu
|
||||
modifier: none
|
||||
keycode: tab
|
||||
mode: [emacs vi_normal vi_insert]
|
||||
event: {
|
||||
until: [
|
||||
{ send: menu name: completion_menu }
|
||||
{ send: menunext }
|
||||
{ edit: complete }
|
||||
]
|
||||
}
|
||||
}
|
||||
{
|
||||
name: ide_completion_menu
|
||||
modifier: control
|
||||
keycode: char_n
|
||||
mode: [emacs vi_normal vi_insert]
|
||||
event: {
|
||||
until: [
|
||||
{ send: menu name: ide_completion_menu }
|
||||
{ send: menunext }
|
||||
{ edit: complete }
|
||||
]
|
||||
}
|
||||
}
|
||||
{
|
||||
name: history_menu
|
||||
modifier: control
|
||||
keycode: char_r
|
||||
mode: [emacs, vi_insert, vi_normal]
|
||||
event: { send: menu name: history_menu }
|
||||
}
|
||||
{
|
||||
name: help_menu
|
||||
modifier: none
|
||||
keycode: f1
|
||||
mode: [emacs, vi_insert, vi_normal]
|
||||
event: { send: menu name: help_menu }
|
||||
}
|
||||
{
|
||||
name: completion_previous_menu
|
||||
modifier: shift
|
||||
keycode: backtab
|
||||
mode: [emacs, vi_normal, vi_insert]
|
||||
event: { send: menuprevious }
|
||||
}
|
||||
{
|
||||
name: next_page_menu
|
||||
modifier: control
|
||||
keycode: char_x
|
||||
mode: emacs
|
||||
event: { send: menupagenext }
|
||||
}
|
||||
{
|
||||
name: undo_or_previous_page_menu
|
||||
modifier: control
|
||||
keycode: char_z
|
||||
mode: emacs
|
||||
event: {
|
||||
until: [
|
||||
{ send: menupageprevious }
|
||||
{ edit: undo }
|
||||
]
|
||||
}
|
||||
}
|
||||
{
|
||||
name: escape
|
||||
modifier: none
|
||||
keycode: escape
|
||||
mode: [emacs, vi_normal, vi_insert]
|
||||
event: { send: esc } # NOTE: does not appear to work
|
||||
}
|
||||
{
|
||||
name: cancel_command
|
||||
modifier: control
|
||||
keycode: char_c
|
||||
mode: [emacs, vi_normal, vi_insert]
|
||||
event: { send: ctrlc }
|
||||
}
|
||||
{
|
||||
name: quit_shell
|
||||
modifier: control
|
||||
keycode: char_d
|
||||
mode: [emacs, vi_normal, vi_insert]
|
||||
event: { send: ctrld }
|
||||
}
|
||||
{
|
||||
name: clear_screen
|
||||
modifier: control
|
||||
keycode: char_l
|
||||
mode: [emacs, vi_normal, vi_insert]
|
||||
event: { send: clearscreen }
|
||||
}
|
||||
{
|
||||
name: search_history
|
||||
modifier: control
|
||||
keycode: char_q
|
||||
mode: [emacs, vi_normal, vi_insert]
|
||||
event: { send: searchhistory }
|
||||
}
|
||||
{
|
||||
name: open_command_editor
|
||||
modifier: control
|
||||
keycode: char_o
|
||||
mode: [emacs, vi_normal, vi_insert]
|
||||
event: { send: openeditor }
|
||||
}
|
||||
{
|
||||
name: move_up
|
||||
modifier: none
|
||||
keycode: up
|
||||
mode: [emacs, vi_normal, vi_insert]
|
||||
event: {
|
||||
until: [
|
||||
{ send: menuup }
|
||||
{ send: up }
|
||||
]
|
||||
}
|
||||
}
|
||||
{
|
||||
name: move_down
|
||||
modifier: none
|
||||
keycode: down
|
||||
mode: [emacs, vi_normal, vi_insert]
|
||||
event: {
|
||||
until: [
|
||||
{ send: menudown }
|
||||
{ send: down }
|
||||
]
|
||||
}
|
||||
}
|
||||
{
|
||||
name: move_left
|
||||
modifier: none
|
||||
keycode: left
|
||||
mode: [emacs, vi_normal, vi_insert]
|
||||
event: {
|
||||
until: [
|
||||
{ send: menuleft }
|
||||
{ send: left }
|
||||
]
|
||||
}
|
||||
}
|
||||
{
|
||||
name: move_right_or_take_history_hint
|
||||
modifier: none
|
||||
keycode: right
|
||||
mode: [emacs, vi_normal, vi_insert]
|
||||
event: {
|
||||
until: [
|
||||
{ send: historyhintcomplete }
|
||||
{ send: menuright }
|
||||
{ send: right }
|
||||
]
|
||||
}
|
||||
}
|
||||
{
|
||||
name: move_one_word_left
|
||||
modifier: control
|
||||
keycode: left
|
||||
mode: [emacs, vi_normal, vi_insert]
|
||||
event: { edit: movewordleft }
|
||||
}
|
||||
{
|
||||
name: move_one_word_right_or_take_history_hint
|
||||
modifier: control
|
||||
keycode: right
|
||||
mode: [emacs, vi_normal, vi_insert]
|
||||
event: {
|
||||
until: [
|
||||
{ send: historyhintwordcomplete }
|
||||
{ edit: movewordright }
|
||||
]
|
||||
}
|
||||
}
|
||||
{
|
||||
name: move_to_line_start
|
||||
modifier: none
|
||||
keycode: home
|
||||
mode: [emacs, vi_normal, vi_insert]
|
||||
event: { edit: movetolinestart }
|
||||
}
|
||||
{
|
||||
name: move_to_line_start
|
||||
modifier: control
|
||||
keycode: char_a
|
||||
mode: [emacs, vi_normal, vi_insert]
|
||||
event: { edit: movetolinestart }
|
||||
}
|
||||
{
|
||||
name: move_to_line_end_or_take_history_hint
|
||||
modifier: none
|
||||
keycode: end
|
||||
mode: [emacs, vi_normal, vi_insert]
|
||||
event: {
|
||||
until: [
|
||||
{ send: historyhintcomplete }
|
||||
{ edit: movetolineend }
|
||||
]
|
||||
}
|
||||
}
|
||||
{
|
||||
name: move_to_line_end_or_take_history_hint
|
||||
modifier: control
|
||||
keycode: char_e
|
||||
mode: [emacs, vi_normal, vi_insert]
|
||||
event: {
|
||||
until: [
|
||||
{ send: historyhintcomplete }
|
||||
{ edit: movetolineend }
|
||||
]
|
||||
}
|
||||
}
|
||||
{
|
||||
name: move_to_line_start
|
||||
modifier: control
|
||||
keycode: home
|
||||
mode: [emacs, vi_normal, vi_insert]
|
||||
event: { edit: movetolinestart }
|
||||
}
|
||||
{
|
||||
name: move_to_line_end
|
||||
modifier: control
|
||||
keycode: end
|
||||
mode: [emacs, vi_normal, vi_insert]
|
||||
event: { edit: movetolineend }
|
||||
}
|
||||
{
|
||||
name: move_up
|
||||
modifier: control
|
||||
keycode: char_p
|
||||
mode: [emacs, vi_normal, vi_insert]
|
||||
event: {
|
||||
until: [
|
||||
{ send: menuup }
|
||||
{ send: up }
|
||||
]
|
||||
}
|
||||
}
|
||||
{
|
||||
name: move_down
|
||||
modifier: control
|
||||
keycode: char_t
|
||||
mode: [emacs, vi_normal, vi_insert]
|
||||
event: {
|
||||
until: [
|
||||
{ send: menudown }
|
||||
{ send: down }
|
||||
]
|
||||
}
|
||||
}
|
||||
{
|
||||
name: delete_one_character_backward
|
||||
modifier: none
|
||||
keycode: backspace
|
||||
mode: [emacs, vi_insert]
|
||||
event: { edit: backspace }
|
||||
}
|
||||
{
|
||||
name: delete_one_word_backward
|
||||
modifier: control
|
||||
keycode: backspace
|
||||
mode: [emacs, vi_insert]
|
||||
event: { edit: backspaceword }
|
||||
}
|
||||
{
|
||||
name: delete_one_character_forward
|
||||
modifier: none
|
||||
keycode: delete
|
||||
mode: [emacs, vi_insert]
|
||||
event: { edit: delete }
|
||||
}
|
||||
{
|
||||
name: delete_one_character_forward
|
||||
modifier: control
|
||||
keycode: delete
|
||||
mode: [emacs, vi_insert]
|
||||
event: { edit: delete }
|
||||
}
|
||||
{
|
||||
name: delete_one_character_backward
|
||||
modifier: control
|
||||
keycode: char_h
|
||||
mode: [emacs, vi_insert]
|
||||
event: { edit: backspace }
|
||||
}
|
||||
{
|
||||
name: delete_one_word_backward
|
||||
modifier: control
|
||||
keycode: char_w
|
||||
mode: [emacs, vi_insert]
|
||||
event: { edit: backspaceword }
|
||||
}
|
||||
{
|
||||
name: move_left
|
||||
modifier: none
|
||||
keycode: backspace
|
||||
mode: vi_normal
|
||||
event: { edit: moveleft }
|
||||
}
|
||||
{
|
||||
name: newline_or_run_command
|
||||
modifier: none
|
||||
keycode: enter
|
||||
mode: emacs
|
||||
event: { send: enter }
|
||||
}
|
||||
{
|
||||
name: move_left
|
||||
modifier: control
|
||||
keycode: char_b
|
||||
mode: emacs
|
||||
event: {
|
||||
until: [
|
||||
{ send: menuleft }
|
||||
{ send: left }
|
||||
]
|
||||
}
|
||||
}
|
||||
{
|
||||
name: move_right_or_take_history_hint
|
||||
modifier: control
|
||||
keycode: char_f
|
||||
mode: emacs
|
||||
event: {
|
||||
until: [
|
||||
{ send: historyhintcomplete }
|
||||
{ send: menuright }
|
||||
{ send: right }
|
||||
]
|
||||
}
|
||||
}
|
||||
{
|
||||
name: redo_change
|
||||
modifier: control
|
||||
keycode: char_g
|
||||
mode: emacs
|
||||
event: { edit: redo }
|
||||
}
|
||||
{
|
||||
name: undo_change
|
||||
modifier: control
|
||||
keycode: char_z
|
||||
mode: emacs
|
||||
event: { edit: undo }
|
||||
}
|
||||
{
|
||||
name: paste_before
|
||||
modifier: control
|
||||
keycode: char_y
|
||||
mode: emacs
|
||||
event: { edit: pastecutbufferbefore }
|
||||
}
|
||||
{
|
||||
name: cut_word_left
|
||||
modifier: control
|
||||
keycode: char_w
|
||||
mode: emacs
|
||||
event: { edit: cutwordleft }
|
||||
}
|
||||
{
|
||||
name: cut_line_to_end
|
||||
modifier: control
|
||||
keycode: char_k
|
||||
mode: emacs
|
||||
event: { edit: cuttoend }
|
||||
}
|
||||
{
|
||||
name: cut_line_from_start
|
||||
modifier: control
|
||||
keycode: char_u
|
||||
mode: emacs
|
||||
event: { edit: cutfromstart }
|
||||
}
|
||||
{
|
||||
name: swap_graphemes
|
||||
modifier: control
|
||||
keycode: char_t
|
||||
mode: emacs
|
||||
event: { edit: swapgraphemes }
|
||||
}
|
||||
{
|
||||
name: move_one_word_left
|
||||
modifier: alt
|
||||
keycode: left
|
||||
mode: emacs
|
||||
event: { edit: movewordleft }
|
||||
}
|
||||
{
|
||||
name: move_one_word_right_or_take_history_hint
|
||||
modifier: alt
|
||||
keycode: right
|
||||
mode: emacs
|
||||
event: {
|
||||
until: [
|
||||
{ send: historyhintwordcomplete }
|
||||
{ edit: movewordright }
|
||||
]
|
||||
}
|
||||
}
|
||||
{
|
||||
name: move_one_word_left
|
||||
modifier: alt
|
||||
keycode: char_b
|
||||
mode: emacs
|
||||
event: { edit: movewordleft }
|
||||
}
|
||||
{
|
||||
name: move_one_word_right_or_take_history_hint
|
||||
modifier: alt
|
||||
keycode: char_f
|
||||
mode: emacs
|
||||
event: {
|
||||
until: [
|
||||
{ send: historyhintwordcomplete }
|
||||
{ edit: movewordright }
|
||||
]
|
||||
}
|
||||
}
|
||||
{
|
||||
name: delete_one_word_forward
|
||||
modifier: alt
|
||||
keycode: delete
|
||||
mode: emacs
|
||||
event: { edit: deleteword }
|
||||
}
|
||||
{
|
||||
name: delete_one_word_backward
|
||||
modifier: alt
|
||||
keycode: backspace
|
||||
mode: emacs
|
||||
event: { edit: backspaceword }
|
||||
}
|
||||
{
|
||||
name: delete_one_word_backward
|
||||
modifier: alt
|
||||
keycode: char_m
|
||||
mode: emacs
|
||||
event: { edit: backspaceword }
|
||||
}
|
||||
{
|
||||
name: cut_word_to_right
|
||||
modifier: alt
|
||||
keycode: char_d
|
||||
mode: emacs
|
||||
event: { edit: cutwordright }
|
||||
}
|
||||
{
|
||||
name: upper_case_word
|
||||
modifier: alt
|
||||
keycode: char_u
|
||||
mode: emacs
|
||||
event: { edit: uppercaseword }
|
||||
}
|
||||
{
|
||||
name: lower_case_word
|
||||
modifier: alt
|
||||
keycode: char_l
|
||||
mode: emacs
|
||||
event: { edit: lowercaseword }
|
||||
}
|
||||
{
|
||||
name: capitalize_char
|
||||
modifier: alt
|
||||
keycode: char_c
|
||||
mode: emacs
|
||||
event: { edit: capitalizechar }
|
||||
}
|
||||
# The following bindings with `*system` events require that Nushell has
|
||||
# been compiled with the `system-clipboard` feature.
|
||||
# This should be the case for Windows, macOS, and most Linux distributions
|
||||
# Not available for example on Android (termux)
|
||||
# If you want to use the system clipboard for visual selection or to
|
||||
# paste directly, uncomment the respective lines and replace the version
|
||||
# using the internal clipboard.
|
||||
{
|
||||
name: copy_selection
|
||||
modifier: control_shift
|
||||
keycode: char_c
|
||||
mode: emacs
|
||||
event: { edit: copyselection }
|
||||
# event: { edit: copyselectionsystem }
|
||||
}
|
||||
{
|
||||
name: cut_selection
|
||||
modifier: control_shift
|
||||
keycode: char_x
|
||||
mode: emacs
|
||||
event: { edit: cutselection }
|
||||
# event: { edit: cutselectionsystem }
|
||||
}
|
||||
# {
|
||||
# name: paste_system
|
||||
# modifier: control_shift
|
||||
# keycode: char_v
|
||||
# mode: emacs
|
||||
# event: { edit: pastesystem }
|
||||
# }
|
||||
{
|
||||
name: select_all
|
||||
modifier: control_shift
|
||||
keycode: char_a
|
||||
mode: emacs
|
||||
event: { edit: selectall }
|
||||
}
|
||||
]
|
||||
}
|
||||
17
picom.conf
Normal file
17
picom.conf
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
backend = "glx";
|
||||
|
||||
corner-radius = 5.0;
|
||||
shadow = true;
|
||||
shadow-radius = 10;
|
||||
|
||||
blur:
|
||||
{
|
||||
method = "dual_kawase";
|
||||
}
|
||||
|
||||
blur-background-exclude = [
|
||||
"window_type = 'dock'",
|
||||
"class_g ~= 'slop'",
|
||||
];
|
||||
|
||||
vsync = true;
|
||||
14
rofi/config.rasi
Normal file
14
rofi/config.rasi
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
configuration {
|
||||
font: "DaddyTimeMono Nerd Font 14";
|
||||
show-icons: true;
|
||||
sort: true;
|
||||
sorting-method: "fzf";
|
||||
timeout {
|
||||
action: "kb-cancel";
|
||||
delay: 0;
|
||||
}
|
||||
filebrowser {
|
||||
directories-first: true;
|
||||
sorting-method: "name";
|
||||
}
|
||||
}
|
||||
1
xinitrc
Normal file
1
xinitrc
Normal file
|
|
@ -0,0 +1 @@
|
|||
exec leftwm
|
||||
Loading…
Add table
Add a link
Reference in a new issue