From ed15254969a5291d7993e641c0fb0327b0889df3 Mon Sep 17 00:00:00 2001 From: st Date: Thu, 2 Jul 2026 09:18:51 -0500 Subject: [PATCH] first commit! --- i3/config | 225 +++++++++++++++++++++++++++ i3status-rs/config.toml | 118 ++++++++++++++ rofi/config.rasi | 2 + rofi/tommorow_night_burns.rasi | 127 +++++++++++++++ terminology/config/standard/base.cfg | Bin 0 -> 5654 bytes 5 files changed, 472 insertions(+) create mode 100644 i3/config create mode 100644 i3status-rs/config.toml create mode 100644 rofi/config.rasi create mode 100644 rofi/tommorow_night_burns.rasi create mode 100644 terminology/config/standard/base.cfg 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 0000000000000000000000000000000000000000..b9ecdac1adfea106267ae83c9a4d97983a98c98e GIT binary patch literal 5654 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