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:
Arne Dußin 2025-02-26 00:02:52 +01:00
commit 2c0e4f885e
26 changed files with 2531 additions and 0 deletions

103
alacritty.toml Normal file
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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"

View file

@ -0,0 +1,2 @@
inherits = "doom_acario_dark"
"ui.background" = {}

View file

@ -0,0 +1,2 @@
inherits = "iroaseta"
"ui.background" = {}

137
leftwm/config_chell.ron Normal file
View 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
View 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,
)

Binary file not shown.

After

Width:  |  Height:  |  Size: 948 KiB

19
leftwm/themes/current/down Executable file
View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 539 B

View file

@ -0,0 +1,3 @@
{% for workspace in workspaces %}
{{workspace.w}}x{{workspace.h}}+{{workspace.x}}+{{workspace.y}}
{% endfor %}

View 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 %}
{{")"}}

View 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
View 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
View 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
View 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
View 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
View file

@ -0,0 +1 @@
exec leftwm