commit ed15254969a5291d7993e641c0fb0327b0889df3 Author: st Date: Thu Jul 2 09:18:51 2026 -0500 first commit! diff --git a/i3/config b/i3/config new file mode 100644 index 0000000..e9271f0 --- /dev/null +++ b/i3/config @@ -0,0 +1,225 @@ +# This file has been auto-generated by i3-config-wizard(1). +# It will not be overwritten, so edit it as you like. +# +# Should you change your keyboard layout some time, delete +# this file and re-run i3-config-wizard(1). +# + +# i3 config file (v4) +# +# Please see https://i3wm.org/docs/userguide.html for a complete reference! + +set $mod Mod4 + +# Font for window titles. Will also be used by the bar unless a different font +# is used in the bar {} block below. +font monospace 8 + +# This font is widely installed, provides lots of unicode glyphs, right-to-left +# text rendering and scalability on retina/hidpi displays (thanks to pango). +#font pango:DejaVu Sans Mono 8 + +exec --no-startup-id feh --bg-fill $HOME/walls/akira.png + +# Start XDG autostart .desktop files using dex. See also +# https://wiki.archlinux.org/index.php/XDG_Autostart +exec --no-startup-id dex --autostart --environment i3 + +# The combination of xss-lock, nm-applet and pactl is a popular choice, so +# they are included here as an example. Modify as you see fit. + +# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the +# screen before suspend. Use loginctl lock-session to lock your screen. +exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork + +# startup apps +exec --no-startup-id nm-applet +exec --no-startup-id mullvad-vpn +exec --no-startup-id alttab -w 1 -fg "#c5c8c6" -bg "#1d1f21" -frame "#fc595f" -t 128x150 -i 128x64 +exec --no-startup-id gammastep -l 42.035770:-88.102383 +exec --no-startup-id musicpresence + +# Use pactl to adjust volume in PulseAudio. +set $refresh_i3status killall -SIGUSR1 i3status +bindsym XF86AudioRaiseVolume exec --no-startup-id wpctl set-volume @DEFAULT_AUDIO_SINK@ 10%+ && $refresh_i3status +bindsym XF86AudioLowerVolume exec --no-startup-id wpctl set-volume @DEFAULT_AUDIO_SINK@ 10%- && $refresh_i3status +bindsym XF86AudioMute exec --no-startup-id wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && $refresh_i3status +bindsym XF86AudioMicMute exec --no-startup-id pactl set-mute @DEFAULT_AUDIO_SOURCE@ toggle && $refresh_i3status + +# Use Mouse+$mod to drag floating windows to their wanted position +floating_modifier $mod + +# move tiling windows via drag & drop by left-clicking into the title bar, +# or left-clicking anywhere into the window while holding the floating modifier. +tiling_drag modifier titlebar + +# start a terminal +bindsym $mod+Return exec terminology + +# kill focused window +bindsym $mod+Shift+q kill + +# start dmenu (a program launcher) +bindsym $mod+d exec --no-startup-id rofi -show drun +# A more modern dmenu replacement is rofi: +# bindcode $mod+40 exec "rofi -modi drun,run -show drun" +# There also is i3-dmenu-desktop which only displays applications shipping a +# .desktop file. It is a wrapper around dmenu, so you need that installed. +# bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop + +# change focus +bindsym $mod+j focus left +bindsym $mod+k focus down +bindsym $mod+l focus up +bindsym $mod+semicolon focus right + +# alternatively, you can use the cursor keys: +bindsym $mod+Left focus left +bindsym $mod+Down focus down +bindsym $mod+Up focus up +bindsym $mod+Right focus right + +# move focused window +bindsym $mod+Shift+j move left +bindsym $mod+Shift+k move down +bindsym $mod+Shift+l move up +bindsym $mod+Shift+semicolon move right + +# alternatively, you can use the cursor keys: +bindsym $mod+Shift+Left move left +bindsym $mod+Shift+Down move down +bindsym $mod+Shift+Up move up +bindsym $mod+Shift+Right move right + +# split in horizontal orientation +bindsym $mod+h split h + +# split in vertical orientation +bindsym $mod+v split v + +# enter fullscreen mode for the focused container +bindsym $mod+f fullscreen toggle + +# change container layout (stacked, tabbed, toggle split) +bindsym $mod+s layout stacking +bindsym $mod+w layout tabbed +bindsym $mod+e layout toggle split + +# toggle tiling / floating +bindsym $mod+Shift+space floating toggle + +# change focus between tiling / floating windows +bindsym $mod+space focus mode_toggle + +# focus the parent container +bindsym $mod+a focus parent + +# focus the child container +#bindsym $mod+d focus child + +bindsym $mod+Shift+x exec --no-startup-id maim --select | xclip -selection clipboard -t image/png + +# Define names for default workspaces for which we configure key bindings later on. +# We use variables to avoid repeating the names in multiple places. +set $ws1 "1" +set $ws2 "2" +set $ws3 "3" +set $ws4 "4" +set $ws5 "5" +set $ws6 "6" +set $ws7 "7" +set $ws8 "8" +set $ws9 "9" +set $ws10 "10" + +# switch to workspace +bindsym $mod+1 workspace number $ws1 +bindsym $mod+2 workspace number $ws2 +bindsym $mod+3 workspace number $ws3 +bindsym $mod+4 workspace number $ws4 +bindsym $mod+5 workspace number $ws5 +bindsym $mod+6 workspace number $ws6 +bindsym $mod+7 workspace number $ws7 +bindsym $mod+8 workspace number $ws8 +bindsym $mod+9 workspace number $ws9 +bindsym $mod+0 workspace number $ws10 + +# move focused container to workspace +bindsym $mod+Shift+1 move container to workspace number $ws1 +bindsym $mod+Shift+2 move container to workspace number $ws2 +bindsym $mod+Shift+3 move container to workspace number $ws3 +bindsym $mod+Shift+4 move container to workspace number $ws4 +bindsym $mod+Shift+5 move container to workspace number $ws5 +bindsym $mod+Shift+6 move container to workspace number $ws6 +bindsym $mod+Shift+7 move container to workspace number $ws7 +bindsym $mod+Shift+8 move container to workspace number $ws8 +bindsym $mod+Shift+9 move container to workspace number $ws9 +bindsym $mod+Shift+0 move container to workspace number $ws10 + +# reload the configuration file +bindsym $mod+Shift+c reload +# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) +bindsym $mod+Shift+r restart +# exit i3 (logs you out of your X session) +bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'" + +# resize window (you can also use the mouse for that) +mode "resize" { + # These bindings trigger as soon as you enter the resize mode + + # Pressing left will shrink the window’s width. + # Pressing right will grow the window’s width. + # Pressing up will shrink the window’s height. + # Pressing down will grow the window’s height. + bindsym j resize shrink width 10 px or 10 ppt + bindsym k resize grow height 10 px or 10 ppt + bindsym l resize shrink height 10 px or 10 ppt + bindsym semicolon resize grow width 10 px or 10 ppt + + # same bindings, but for the arrow keys + bindsym Left resize shrink width 10 px or 10 ppt + bindsym Down resize grow height 10 px or 10 ppt + bindsym Up resize shrink height 10 px or 10 ppt + bindsym Right resize grow width 10 px or 10 ppt + + # back to normal: Enter or Escape or $mod+r + bindsym Return mode "default" + bindsym Escape mode "default" + bindsym $mod+r mode "default" +} + +bindsym $mod+r mode "resize" + +default_border pixel 1 +default_floating_border pixel 1 + +# class border background text indicator child_border +client.focused #fc595f #d3494e #f5f5f5 #ff443e #fc595f +client.focused_inactive #832e31 #252525 #a1b0b8 #832e31 #832e31 +client.unfocused #252525 #151515 #5d6f71 #252525 #252525 +client.urgent #df9395 #832e31 #f5f5f5 #df9395 #df9395 +client.placeholder #151515 #151515 #5d6f71 #151515 #151515 +client.background #151515 + +gaps inner 5 +gaps outer 5 + +# -- Bar (i3bar / i3status) ---------------------------------- +bar { + font pango:DejaVuSansM Nerd Font Mono 7 + status_command i3status-rs $HOME/.config/i3status-rs/config.toml + position top + + colors { + background #151515 + statusline #a1b0b8 + separator #5d6f71 + + # class border background text + focused_workspace #fc595f #d3494e #f5f5f5 + active_workspace #a63c40 #832e31 #f5f5f5 + inactive_workspace #252525 #252525 #a1b0b8 + urgent_workspace #df9395 #832e31 #f5f5f5 + binding_mode #df9395 #a63c40 #f5f5f5 + } +} diff --git a/i3status-rs/config.toml b/i3status-rs/config.toml new file mode 100644 index 0000000..f2cc4aa --- /dev/null +++ b/i3status-rs/config.toml @@ -0,0 +1,118 @@ +# i3status-rust config.toml +# Place at: ~/.config/i3status-rust/config.toml +# Docs: https://github.com/greshake/i3status-rust/blob/master/doc/blocks.md +# +# Requires a Nerd Font or Font Awesome 6 for icons. +# Set in your i3 bar config, e.g.: +# font pango:JetBrainsMono Nerd Font 10 + +[theme] +theme = "plain" + +[theme.overrides] +idle_bg = "#1d1f21" +idle_fg = "#c5c8c6" +info_bg = "#1d1f21" +info_fg = "#81a2be" # blue +good_bg = "#1d1f21" +good_fg = "#b5bd68" # green +warning_bg = "#1d1f21" +warning_fg = "#f0c674" # yellow +critical_bg = "#cc6666" # red bg for critical alerts +critical_fg = "#1d1f21" +separator_bg = "#1d1f21" +separator_fg = "#373b41" +# Other built-in themes: plain, solarized-dark, modern, bad-wolf, native, dracula, nord + +[icons] +icons = "awesome6" +# Fallback if you don't have a Nerd Font: icons = "none" + +# ── Focused window title ────────────────────────────────────────────────────── +[[block]] +block = "focused_window" + +# ── CPU utilization ─────────────────────────────────────────────────────────── +[[block]] +block = "cpu" +interval = 1 +format = "  $utilization " +format_alt = "  $frequency " # Left-click to toggle + +# ── CPU temperature ─────────────────────────────────────────────────────────── +[[block]] +block = "temperature" +interval = 5 +format = " $icon $max " +# Run `sensors` to find your chip name and adjust below if needed: +# chip = "*-isa-*" +warning = 60.0 + +# ── Memory ──────────────────────────────────────────────────────────────────── +[[block]] +block = "memory" +format = " $icon $mem_used_percents " +format_alt = " $icon_swap $swap_used_percents " # Left-click to toggle + +# ── Disk space ──────────────────────────────────────────────────────────────── +[[block]] +block = "disk_space" +path = "/" +info_type = "available" +alert_unit = "GB" +alert = 10.0 +warning = 20.0 +format = " $icon $available " + +# ── Network ─────────────────────────────────────────────────────────────────── +[[block]] +block = "net" +format = " $icon {$speed_down $speed_up|Disconnected} " +interval = 2 + +[[block]] +block = "vpn" +driver = "mullvad" +interval = 5 +format_connected = " vpn: 󰌘 " +format_disconnected = " vpn: 󰌙 " +state_connected = "good" +state_disconnected = "warning" + +# ── Bluetooth ───────────────────────────────────────────────────────────────── +# Uncomment and set your device MAC once you have a paired device: +# [[block]] +# block = "bluetooth" +# mac = "XX:XX:XX:XX:XX:XX" +# format = " $icon {$name|} " + +# ── Spotify ─────────────────────────────────────────────────────────────────── +[[block]] +block = "music" +interface_name_exclude = [".*kdeconnect.*", "mpd"] +format = " $icon {$combo.str(max_w:60) $play |}" +format_alt = " $icon {$title.str(max_w:25)|no track} " # Left-click to toggle +# Scroll on block to seek, right-click to go to next track + +# ── Volume ──────────────────────────────────────────────────────────────────── +[[block]] +block = "sound" +format = " $icon $volume " +# Left-click: mute/unmute | Scroll: change volume + +# ── Battery ─────────────────────────────────────────────────────────────────── +[[block]] +block = "battery" +interval = 10 +format = " $icon $percentage {$time |}" +empty_format = " $icon Empty " +missing_format = "" # Hides the block entirely if no battery is present +full_threshold = 99 + +# ── Date and time ───────────────────────────────────────────────────────────── +[[block]] +block = "time" +interval = 1 +[block.format] +full = " $timestamp.datetime(f:'%m/%d %I:%M %P') " +short = " $timestamp.datetime(f:'%Y-%m-%d') " diff --git a/rofi/config.rasi b/rofi/config.rasi new file mode 100644 index 0000000..bd22620 --- /dev/null +++ b/rofi/config.rasi @@ -0,0 +1,2 @@ + +@theme "./tommorow_night_burns.rasi" diff --git a/rofi/tommorow_night_burns.rasi b/rofi/tommorow_night_burns.rasi new file mode 100644 index 0000000..20babb4 --- /dev/null +++ b/rofi/tommorow_night_burns.rasi @@ -0,0 +1,127 @@ +/** + * Tomorrow Night Burns — Rofi Theme + * Font: DejaVuSansMono Nerd Font Mono 7 + */ + +* { + /* ── Palette ─────────────────────────────────── */ + bg0: #1d1f21; /* base background */ + bg1: #282a2e; /* current line / alt row */ + bg2: #373b41; /* selection / highlight bg */ + fg0: #c5c8c6; /* primary text */ + fg1: #969896; /* comment / subtle */ + red: #cc6666; + orange: #cc6666; /* the "burns" accent */ + yellow: #832e31; + green: #b5bd68; + teal: #8abeb7; + blue: #81a2be; + purple: #b294bb; + + font: "DejaVuSansM Nerd Font Mono 7"; + background-color: transparent; + text-color: @fg0; +} + +/* ── Window ────────────────────────────────────────── */ +window { + background-color: @bg0; + border: 1px solid; + border-color: @orange; + border-radius: 0px; + padding: 0px; + width: 30%; +} + +/* ── Layout ────────────────────────────────────────── */ +mainbox { + background-color: transparent; + padding: 0px; + spacing: 0px; + children: [ inputbar, listview, message ]; +} + +/* ── Input bar ─────────────────────────────────────── */ +inputbar { + background-color: @bg1; + border: 0px 0px 1px 0px; + border-color: @bg2; + padding: 6px 8px; + spacing: 4px; + children: [ prompt, entry ]; +} + +prompt { + background-color: transparent; + text-color: @orange; +} + +entry { + background-color: transparent; + text-color: @fg0; + cursor-color: @orange; + placeholder: " search"; + placeholder-color: @fg1; +} + +/* ── List ──────────────────────────────────────────── */ +listview { + background-color: transparent; + padding: 4px; + spacing: 1px; + scrollbar: false; + lines: 10; + columns: 1; + cycle: true; + dynamic: true; +} + +element { + background-color: transparent; + border-radius: 0px; + padding: 3px 6px; + spacing: 6px; + orientation: horizontal; +} + +element-icon { + background-color: transparent; + size: 1em; + vertical-align: 0.5; +} + +element-text { + background-color: transparent; + text-color: inherit; + highlight: bold #ff443e; + vertical-align: 0.5; +} + +/* normal rows */ +element normal.normal { background-color: transparent; text-color: @fg0; } +element normal.urgent { background-color: transparent; text-color: @red; } +element normal.active { background-color: transparent; text-color: @green; } + +/* selected row */ +element selected.normal { background-color: @bg2; text-color: @orange; } +element selected.urgent { background-color: @bg2; text-color: @red; } +element selected.active { background-color: @bg2; text-color: @teal; } + +/* alternate rows */ +element alternate.normal { background-color: @bg1; text-color: @fg0; } +element alternate.urgent { background-color: @bg1; text-color: @red; } +element alternate.active { background-color: @bg1; text-color: @green; } + +/* ── Message / error bar ───────────────────────────── */ +message { + background-color: @bg1; + border: 1px 0px 0px 0px; + border-color: @bg2; + padding: 4px 8px; +} + +textbox { + background-color: transparent; + text-color: @yellow; +} + diff --git a/terminology/config/standard/base.cfg b/terminology/config/standard/base.cfg new file mode 100644 index 0000000..b9ecdac Binary files /dev/null and b/terminology/config/standard/base.cfg differ