From 3e1b5e48566e960d7b2405c76457ee7762c0d096 Mon Sep 17 00:00:00 2001 From: "Skylar \"The Cobra\" Widulski" Date: Wed, 23 Nov 2022 15:18:02 -0500 Subject: [PATCH] update for guix Signed-off-by: Skylar "The Cobra" Widulski --- .bash_profile | 18 +++- .bashrc | 35 ++++--- .config/foot/foot.ini | 175 ++++++++++++++++++++++++++++++++-- .config/guix/home.scm | 57 ++++++++++++ .config/sway/config | 182 ++++++++++++++++++++++++++++++++++++ .config/waybar/config | 175 ++++++++++++++++++++++++++++++++++ .config/waybar/style.css | 196 +++++++++++++++++++++++++++++++++++++++ .devspec | 5 + .local/bin/backtick | 15 +++ .local/bin/lock | 4 + .local/bin/logout-wofi | 10 ++ .local/bin/screenshot | 44 +++++++++ .newsboat/config | 2 +- .profile | 12 --- .screenrc | 36 +++++++ README.md | 2 + guix/config.scm | 100 ++++++++++++++++++++ 17 files changed, 1036 insertions(+), 32 deletions(-) create mode 100644 .config/guix/home.scm create mode 100755 .config/sway/config create mode 100644 .config/waybar/config create mode 100644 .config/waybar/style.css create mode 100755 .local/bin/backtick create mode 100755 .local/bin/lock create mode 100755 .local/bin/logout-wofi create mode 100755 .local/bin/screenshot delete mode 100644 .profile create mode 100644 .screenrc create mode 100644 guix/config.scm diff --git a/.bash_profile b/.bash_profile index d1fb79b..86e3073 100644 --- a/.bash_profile +++ b/.bash_profile @@ -1 +1,17 @@ -. ~/.bashrc +# Honor per-interactive-shell startup file +if [ -f ~/.bashrc ]; then . ~/.bashrc; fi +export PATH="~/.local/bin:$PATH" +export EDITOR="vim" +export LESS_TERMCAP_mb='' +export LESS_TERMCAP_md='' +export LESS_TERMCAP_me='' +export LESS_TERMCAP_se='' +export LESS_TERMCAP_so='' +export LESS_TERMCAP_ue='' +export LESS_TERMCAP_us='' +export LESS=-R +export TERM=xterm-256color + +if [[ $(tty) == /dev/tty2 ]]; then + sway +fi diff --git a/.bashrc b/.bashrc index 7d778a9..f43893a 100644 --- a/.bashrc +++ b/.bashrc @@ -3,7 +3,6 @@ [ -r ~/.devspec ] && . ~/.devspec [ -r ~/.config/isotope.dark ] && . ~/.config/isotope.dark -[ -z "$EDITOR" ] && . ~/.profile [ "$TERM" == "screen.linux" ] && export TERM="screen" # History stuff @@ -17,24 +16,18 @@ clear() { printf '\033c' # faster than ncurses clear by a lot } -# We hate sudo here -alias sudo='sh -c "exit 1"' # Other aliases alias c='clear' alias ls='ls --color=auto -FAh' alias ll='ls -l' alias nf='neofetch' -alias sshd='boas /usr/sbin/sshd' alias ga='git add' alias gc='git commit -sS' alias gp='git push' -alias wv='mpv $($PASTE_COMMAND)' +alias wv='swayhide mpv $($PASTE_COMMAND)' alias curl='curl -L' alias prof='profanity' -# Completions for elevation program (https://codeberg.org/Bowuigi/Unit21 in management/boas) -complete -cf boas - # Random string (passwords) randstr() { tr -cd '[:graph:]' $(date -I).svg +tnplot() { + ssh typhoon "${1:-~/gnuplot/gnuplot.sh}; cat ~/gnuplot/${1:-$(date -u -I)}.svg" > ${1:-$(date -u -I)}.svg +} + +vnplot() { + ssh vern "${1:-/opt/gnuplot/net/gnuplot.sh}; cat /opt/gnuplot/net/${1:-$(date -u -I)}.svg" > ${1:-$(date -u -I)}.svg +} + +vpplot() { + ssh vern "${1:-/opt/gnuplot/power/gnuplot.sh}; cat /opt/gnuplot/power/${1:-$(date -u -I)}.svg" > ${1:-$(date -u -I)}.svg +} + +inplot() { + ssh iceberg "${1:-~/gnuplot/gnuplot.sh}; cat ~/gnuplot/${1:-$(date -u -I)}.svg" > ${1:-$(date -u -I)}.svg +} + +cnplot() { + ssh crescent "${1:-/opt/gnuplot/net/gnuplot.sh}; cat /opt/gnuplot/net/${1:-$(date -u -I)}.svg" > ${1:-$(date -u -I)}.svg +} + +cpplot() { + ssh crescent "${1:-/opt/gnuplot/power/gnuplot.sh}; cat /opt/gnuplot/power/${1:-$(date -u -I)}.svg" > ${1:-$(date -u -I)}.svg } diff --git a/.config/foot/foot.ini b/.config/foot/foot.ini index 5a329e0..b00febc 100644 --- a/.config/foot/foot.ini +++ b/.config/foot/foot.ini @@ -1,15 +1,79 @@ -# configversion: 1 -font=monospace:size=6 -dpi-aware=no +# -*- conf -*- +# shell=$SHELL (if set, otherwise user's default shell from /etc/passwd) +# term=foot (or xterm-256color if built with -Dterminfo=disabled) +# login-shell=no + +# app-id=foot +# title=foot +# locked-title=no + + font= Fira Code:size=8 + +# font-bold= +# font-italic= +# font-bold-italic= +# line-height= +# letter-spacing=0 +# horizontal-letter-offset=0 +# vertical-letter-offset=0 +# underline-offset= +# box-drawings-uses-font-glyphs=no + +dpi-aware=false + +# initial-window-size-pixels=700x500 # Or, +# initial-window-size-chars= +# initial-window-mode=windowed +pad=10x10 # optionally append 'center' +# resize-delay-ms=100 + +# notify=notify-send -a ${app-id} -i ${app-id} ${title} ${body} + +bold-text-in-bright=no +# word-delimiters=,│`|:"'()[]{}<> +# selection-target=primary +# workers= + +[bell] +# urgent=no +# notify=no +# command= +# command-focused=no + +[scrollback] +# lines=1000 +# multiplier=3.0 +# indicator-position=relative +# indicator-format= + +[url] +# launch=xdg-open ${url} +# label-letters=sadfjklewcmpgh +# osc8-underline=url-mode +# protocols=http, https, ftp, ftps, file, gemini, gopher +# uri-characters=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+="'()[] + +[cursor] +# style=block +# color= +blink=yes +# beam-thickness=1.5 +# underline-thickness= + +[mouse] +hide-when-typing=yes +# alternate-scroll-mode=yes [colors] -alpha=0.7 +alpha=0.8 +#Default + foreground=d0d0d0 background=000000 -regular0=000000 # black +regular0=222222 # black regular1=ff0000 # red regular2=33ff00 # green -regular3=ff0099 # yellow +regular3=ff9900 # yellow regular4=0066ff # blue regular5=cc00ff # magenta regular6=00ffff # cyan @@ -17,9 +81,106 @@ regular7=d0d0d0 # white bright0=808080 # bright black bright1=ff0000 # bright red bright2=33ff00 # bright green -bright3=ff0099 # bright yellow +bright3=ff9900 # bright yellow bright4=0066ff # bright blue bright5=cc00ff # bright magenta bright6=00ffff # bright cyan bright7=ffffff # bright white +## dimmed colors (see foot.ini(5) man page) +# dim0= +# ... +# dim7= + +## The remaining 256-color palette +#16 = <256-color palette #16> +# ... +#255 = <256-color palette #255> + +## Misc colors +#selection-foreground= +#selection-background= +#jump-labels= +#urls= +#scrollback-indicator= + +[csd] +# preferred=server +# size=26 +# font= +# color= +# hide-when-typing=no +# border-width=0 +# border-color= +# button-width=26 +# button-color= +# button-minimize-color= +# button-maximize-color= +# button-close-color= + +[key-bindings] +scrollback-up-page=none +scrollback-up-half-page=Mod1+Shift+e +scrollback-up-line=Mod1+e +scrollback-down-page=none +scrollback-down-half-page=Mod1+Shift+n +scrollback-down-line=Mod1+n +#clipboard-copy=Control+Shift+c XF86Copy +#clipboard-paste=Control+Shift+v XF86Paste +# primary-paste=Shift+Insert +# search-start=Control+Shift+r +# font-increase=Control+plus Control+equal Control+KP_Add +# font-decrease=Control+minus Control+KP_Subtract +# font-reset=Control+0 Control+KP_0 +# spawn-terminal=Control+Shift+n +# minimize=none +# maximize=none +# fullscreen=none +# pipe-visible=[sh -c "xurls | fuzzel | xargs -r firefox"] none +# pipe-scrollback=[sh -c "xurls | fuzzel | xargs -r firefox"] none +# pipe-selected=[xargs -r firefox] none +# show-urls-launch=Control+Shift+u +# show-urls-copy=none +# show-urls-persistent=none +# noop=none + +[search-bindings] +# cancel=Control+g Control+c Escape +# commit=Return +# find-prev=Control+r +# find-next=Control+s +# cursor-left=Left Control+b +# cursor-left-word=Control+Left Mod1+b +# cursor-right=Right Control+f +# cursor-right-word=Control+Right Mod1+f +# cursor-home=Home Control+a +# cursor-end=End Control+e +# delete-prev=BackSpace +# delete-prev-word=Mod1+BackSpace Control+BackSpace +# delete-next=Delete +# delete-next-word=Mod1+d Control+Delete +# extend-to-word-boundary=Control+w +# extend-to-next-whitespace=Control+Shift+w +# clipboard-paste=Control+v Control+Shift+v Control+y XF86Paste +# primary-paste=Shift+Insert + +[url-bindings] +# cancel=Control+g Control+c Control+d Escape +# toggle-url-visible=t + +[text-bindings] +# \x03=Mod4+c # Map Super+c -> Ctrl+c + +[mouse-bindings] +# selection-override-modifiers=Shift +# primary-paste=BTN_MIDDLE +# select-begin=BTN_LEFT +# select-begin-block=Control+BTN_LEFT +# select-extend=BTN_RIGHT +# select-extend-character-wise=Control+BTN_RIGHT +# select-word=BTN_LEFT-2 +# select-word-whitespace=Control+BTN_LEFT-2 +# select-row=BTN_LEFT-3 + +# vim: ft=dosini + diff --git a/.config/guix/home.scm b/.config/guix/home.scm new file mode 100644 index 0000000..4d7a412 --- /dev/null +++ b/.config/guix/home.scm @@ -0,0 +1,57 @@ +(use-modules + (gnu home) + (gnu packages) + (gnu services) + (gnu home services shells) +) + +(home-environment + (packages (cons* + (specifications->packages (list + "git" + "libqalculate" + "bc" + "icecat" + "cryptsetup" + "gnupg" + "openssh" + "profanity" + "go" + "adanaxisgpl" + "supertuxkart" + "minetest" + "mpv" + "imagemagick" + "rsync" + "neofetch" + "gnunet" + "lm-sensors" + "acpi" + "gnupg" + "password-store" + "xclip" + "font-fira-mono" + "font-fira-code" + "newsboat" + "kodi" + "yt-dlp" + "gcc-toolchain" + "icedove" + "irssi" + "monero-gui" + "pamixer" + "slurp" + "grim" + "foot" + "wofi" + "swayidle" + "swayhide" + "wl-clipboard" + "mako" + "xorg-server-xwayland" + "htop" + "pinentry" + "ungoogled-chromium-wayland" + "make" + )) +))) diff --git a/.config/sway/config b/.config/sway/config new file mode 100755 index 0000000..a64658b --- /dev/null +++ b/.config/sway/config @@ -0,0 +1,182 @@ +# SWAY CONFIG + + +# Variables + +set $mod Mod4 +set $left h +set $down n +set $up e +set $right i +set $menu wofi --show drun -i -H 500 -W 450 +set $term foot + +floating_modifier $mod normal +default_border pixel 1 +client.focused #ffffff #ffffff #000000 #fc2d2d +client.unfocused #000000 #000000 #ffffff +client.focused_inactive #000000 #000000 #ffffff +gaps inner 5 +gaps outer 0 +font pango: Fira Code 12 + +# No gaps if there's only 1 window +smart_gaps on + +# Hides the borders if theres only 1 window +hide_edge_borders smart + +# Output configuration +output * { + bg ~/.config/sway/background.png fill +} +# Input configuration + +# Key bindings +bindsym $mod+Return exec $term +bindsym $mod+Shift+Return exec $term -a float +bindsym $mod+q kill +bindsym $mod+F4 wkill +bindsym $mod+d exec $menu +bindsym $mod+Shift+c reload +bindsym mod1+shift+w exec setbg -s +bindsym $mod+m exec pulsemixer --toggle-mute +bindsym $mod+p exec ~/.local/bin/screenshot -w +bindsym $mod+Shift+l exec ~/.local/bin/lock +bindsym $mod+Shift+q exec ~/.local/bin/logout-wofi + +# Moving around: + +# Move your focus around +bindsym $mod+$left focus left +bindsym $mod+$down focus down +bindsym $mod+$up focus up +bindsym $mod+$right focus right +bindsym $mod+Left focus left +bindsym $mod+Down focus down +bindsym $mod+Up focus up +bindsym $mod+Right focus right + +# Move the focused window with the same, but add Shift +bindsym $mod+Shift+$left move left +bindsym $mod+Shift+$down move down +bindsym $mod+Shift+$up move up +bindsym $mod+Shift+$right move right +bindsym $mod+Shift+Left move left +bindsym $mod+Shift+Down move down +bindsym $mod+Shift+Up move up +bindsym $mod+Shift+Right move right + +#resize +bindsym $mod+mod1+$left exec swaymsg resize shrink right 10px || swaymsg resize grow left 10px +bindsym $mod+mod1+$down exec swaymsg resize grow down 10px || swaymsg resize shrink up 10px +bindsym $mod+mod1+$up exec swaymsg resize shrink down 10px || swaymsg resize grow up 10px +bindsym $mod+mod1+$right exec swaymsg resize grow right 10px || swaymsg resize shrink left 10px + +# Workspaces: + +# Switch to workspace +bindsym $mod+1 workspace number 1 +bindsym $mod+2 workspace number 2 +bindsym $mod+3 workspace number 3 +bindsym $mod+4 workspace number 4 +bindsym $mod+5 workspace number 5 +bindsym $mod+6 workspace number 6 +bindsym $mod+7 workspace number 7 +bindsym $mod+8 workspace number 8 +bindsym $mod+9 workspace number 9 +bindsym $mod+0 workspace number 10 +# Move focused container to workspace +bindsym $mod+Shift+1 move container to workspace number 1 +bindsym $mod+Shift+2 move container to workspace number 2 +bindsym $mod+Shift+3 move container to workspace number 3 +bindsym $mod+Shift+4 move container to workspace number 4 +bindsym $mod+Shift+5 move container to workspace number 5 +bindsym $mod+Shift+6 move container to workspace number 6 +bindsym $mod+Shift+7 move container to workspace number 7 +bindsym $mod+Shift+8 move container to workspace number 8 +bindsym $mod+Shift+9 move container to workspace number 9 +bindsym $mod+Shift+0 move container to workspace number 10 + +# Layout stuff: +bindsym $mod+b splith +bindsym $mod+v splitv + +# Switch the current container between different layout styles +bindsym $mod+t layout toggle split +bindsym $mod+Shift+t layout tabbed +bindsym $mod+Shift+s layout stacking + +# Make the current focus fullscreen +bindsym $mod+f fullscreen + +# Toggle the current focus between tiling and floating mode +bindsym $mod+space floating toggle + +# Swap focus between the tiling area and the floating area +bindsym $mod+Shift+space focus mode_toggle + +# Move focus to the parent container +bindsym $mod+a focus parent + +# Sticky +bindsym $mod+s sticky toggle +# Scratchpad: + +bindsym $mod+bracketleft move scratchpad +bindsym $mod+bracketright scratchpad show + + +# Resizing containers: + +mode "resize" { + bindsym $left resize shrink width 10px + bindsym $down resize grow height 10px + bindsym $up resize shrink height 10px + bindsym $right resize grow width 10px + + # Ditto, with arrow keys + bindsym Left resize shrink width 10px + bindsym Down resize grow height 10px + bindsym Up resize shrink height 10px + bindsym Right resize grow width 10px + + # Return to default mode + bindsym Return mode "default" + bindsym Escape mode "default" +} + + +# Media Keys +bindsym XF86AudioLowerVolume exec pamixer -d 5 +bindsym XF86AudioRaiseVolume exec pamixer -i 5 +bindsym XF86AudioMute exec pulsemixer --toggle-mute + +bindsym XF86MonBrightnessUp exec brightnessctl s +5% +bindsym XF86MonBrightnessDown exec brightnessctl s 5%- + +#bindsym XF86KbdBrightnessDown exec brightnessctl -d apple::kbd_backlight s 10%- +#bindsym XF86KbdBrightnessUp exec brightnessctl -d apple::kbd_backlight s 10%+ + +bindsym XF86AudioStop exec playerctl stop +bindsym XF86AudioPlay exec playerctl play-pause +bindsym XF86AudioNext exec playerctl next +bindsym XF86AudioPrev exec playerctl previous + + +# Rules +for_window [app_id="float"] floating enable; +for_window [app_id="org.gnome.Calculator"] floating enable; +for_window [app_id="org.kde.kdenlive"] floating enable; +for_window [app_id="gcolor3"] floating enable; + +exec autotiling +exec swayidle -w timeout 240 '~/.local/bin/lock' before-sleep '~/.local/bin/lock' +bindswitch --reload --locked lid:on exec ~/.local/bin/lock + +bar { + swaybar_command waybar + } +} + +include /etc/sway/config.d/* diff --git a/.config/waybar/config b/.config/waybar/config new file mode 100644 index 0000000..f98c51f --- /dev/null +++ b/.config/waybar/config @@ -0,0 +1,175 @@ +// ============================================================================= +// +// Waybar configuration +// +// Configuration reference: https://github.com/Alexays/Waybar/wiki/Configuration +// +// ============================================================================= + +{ + // ------------------------------------------------------------------------- + // Global configuration + // ------------------------------------------------------------------------- + + "layer": "top", + + "position": "top", + + // If height property would be not present, it'd be calculated dynamically + "height": 30, + + "modules-left": [ + "sway/workspaces", + "sway/window", + "sway/mode", + ], +// "modules-center": [ +// ], + "modules-right": [ + "network", + "memory", + "cpu", + "temperature", + "custom/keyboard-layout", + "battery", + "tray", + "clock#date", + "clock#time" + ], + + + // ------------------------------------------------------------------------- + // Modules + // ------------------------------------------------------------------------- + + "battery": { + "interval": 10, + "states": { + "warning": 30, + "critical": 15 + }, + // Connected to AC + "format": "BAT ^{capacity}%", // Icon: bolt + // Not connected to AC + "format-discharging": "BAT {capacity}%", + "format-icons": [ + "DEAD", // Icon: battery-full + "LOW", // Icon: battery-three-quarters + "HALF", // Icon: battery-half + "OK", // Icon: battery-quarter + "FULL" // Icon: battery-empty + ], + "tooltip": true + }, + + "clock#time": { + "interval": 1, + "format": "{:%H:%M:%S}", + "tooltip": false + }, + + "clock#date": { + "interval": 10, + "format": " {:%e %b %Y}", // Icon: calendar-alt + "tooltip-format": "{:%e %B %Y}" + }, + + "cpu": { + "interval": 5, + "format": "CPU {usage}% ({load})", // Icon: microchip + "states": { + "warning": 70, + "critical": 90 + } + }, + + "custom/keyboard-layout": { + "exec": "swaymsg -t get_inputs | grep -m1 'xkb_active_layout_name' | cut -d '\"' -f4", + // Interval set only as a fallback, as the value is updated by signal + "interval": 30, + "format": "{}", // Icon: keyboard + // Signal sent by Sway key binding (~/.config/sway/key-bindings) + "signal": 1, // SIGHUP + "tooltip": false + }, + + "memory": { + "interval": 5, + "format": "RAM {}%", // Icon: memory + "states": { + "warning": 70, + "critical": 90 + } + }, + + "network": { + "interval": 5, + "format-wifi": "WIFI {essid} ({signalStrength}%)", // Icon: wifi + "format-ethernet": "ETH {ifname}: {ipaddr}/{cidr}", // Icon: ethernet + "format-disconnected": "⚠ Disconnected", + "tooltip-format": "{ifname}: {ipaddr}" + }, + + "sway/mode": { + "format": " {}", // Icon: expand-arrows-alt + "tooltip": false + }, + + "sway/window": { + "format": "{}", + "max-length": 120 + }, + + "sway/workspaces": { + "all-outputs": false, + "disable-scroll": true, + "format": "{icon} {name}", + "format-icons": { +// "1:www": "龜", // Icon: firefox-browser +// "2:mail": "", // Icon: mail +// "3:editor": "", // Icon: code +// "4:terminals": "", // Icon: terminal +// "5:portal": "", // Icon: terminal +// "urgent": "", + "focused": "", + "default": "" + } + }, + + //"pulseaudio": { + // //"scroll-step": 1, + // "format": "{icon} {volume}%", + // "format-bluetooth": "{icon} {volume}%", + // "format-muted": "", + // "format-icons": { + // "headphones": "", + // "handsfree": "", + // "headset": "", + // "phone": "", + // "portable": "", + // "car": "", + // "default": ["", ""] + // }, + // "on-click": "pavucontrol" + //}, + + "temperature": { + "critical-threshold": 80, + "interval": 5, + "format": "{temperatureC}°C", + "format-icons": [ + "", // Icon: temperature-empty + "", // Icon: temperature-quarter + "", // Icon: temperature-half + "", // Icon: temperature-three-quarters + "" // Icon: temperature-full + ], + "tooltip": true + }, + + "tray": { + "icon-size": 21, + "spacing": 10 + } + +} diff --git a/.config/waybar/style.css b/.config/waybar/style.css new file mode 100644 index 0000000..8e0c03b --- /dev/null +++ b/.config/waybar/style.css @@ -0,0 +1,196 @@ +/* ============================================================================= + * + * Waybar configuration + * + * Configuration reference: https://github.com/Alexays/Waybar/wiki/Configuration + * + * =========================================================================== */ + +/* ----------------------------------------------------------------------------- + * Keyframes + * -------------------------------------------------------------------------- */ + +@keyframes blink-warning { + 70% { + color: white; + } + + to { + color: white; + background-color: orange; + } +} + +@keyframes blink-critical { + 70% { + color: white; + } + + to { + color: white; + background-color: red; + } +} + + +/* ----------------------------------------------------------------------------- + * Base styles + * -------------------------------------------------------------------------- */ + +/* Reset all styles */ +* { + border: none; + border-radius: 0; + min-height: 0; + margin: 0; + padding: 0; +} + +/* The whole bar */ +#waybar { + background: #323232; + color: white; + font-family: 'FiraMono Nerd Font'; + font-size: 12px; +} + +/* Each module */ +#battery, +#clock, +#cpu, +#custom-keyboard-layout, +#memory, +#mode, +#network, +#pulseaudio, +#temperature, +#tray { + padding-left: 10px; + padding-right: 10px; +} + + +/* ----------------------------------------------------------------------------- + * Module styles + * -------------------------------------------------------------------------- */ + +#battery { + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +#battery.warning { + color: orange; +} + +#battery.critical { + color: red; +} + +#battery.warning.discharging { + animation-name: blink-warning; + animation-duration: 3s; +} + +#battery.critical.discharging { + animation-name: blink-critical; + animation-duration: 2s; +} + +#clock { + font-weight: bold; +} + +#cpu { + /* No styles */ +} + +#cpu.warning { + color: orange; +} + +#cpu.critical { + color: red; +} + +#memory { + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +#memory.warning { + color: orange; +} + +#memory.critical { + color: red; + animation-name: blink-critical; + animation-duration: 2s; +} + +#mode { + background: #64727D; + border-top: 2px solid white; + /* To compensate for the top border and still have vertical centering */ + padding-bottom: 2px; + margin-left: 10px; +} + +#network { + /* No styles */ +} + +#network.disconnected { + color: orange; +} + +#pulseaudio { + /* No styles */ +} + +#pulseaudio.muted { + /* No styles */ +} + +#custom-spotify { + color: rgb(102, 220, 105); +} + +#temperature { + /* No styles */ +} + +#temperature.critical { + color: red; +} + +#tray { + /* No styles */ +} + +#window { + font-weight: bold; + padding-left: 5px; +} + +#workspaces button { + border-top: 2px solid transparent; + /* To compensate for the top border and still have vertical centering */ + padding-bottom: 2px; + padding-left: 10px; + padding-right: 10px; + color: #888888; +} + +#workspaces button.focused { + border-color: #4c7899; + color: white; + background-color: #285577; +} + +#workspaces button.urgent { + border-color: #c9545d; + color: #c9545d; +} diff --git a/.devspec b/.devspec index f172a78..4bab055 100644 --- a/.devspec +++ b/.devspec @@ -5,6 +5,11 @@ if [[ "$SXMO_WM" ]]; then COPY_COMMAND="wl-copy" PASTE_COMMAND="wl-paste" WIFI=wlan0 +elif [[ -d /gnu ]]; then + UPDATE="guix pull --branch=master && guix package -u" + COPY_COMMAND="wl-copy" + PASTE_COMMAND="wl-paste" + WIFI=wlp2s0 else UPDATE="apt update && apt upgrade && apt autoremove" COPY_COMMAND="xclip -i -selection clipboard" diff --git a/.local/bin/backtick b/.local/bin/backtick new file mode 100755 index 0000000..073fb46 --- /dev/null +++ b/.local/bin/backtick @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +cpu() { + bc<<<"scale=3;$(ps aux | awk 'BEGIN {sum=0} {sum+=$3}; END {print sum}') / $(nproc --all)" +} + +ram() { + free -h | sed '2!d' | (read _ _ used _; echo $used) +} + +bat() { + acpi -b | sed 's/Battery /BAT/' +} + +echo "$(cpu)% $(ram) $(bat)" diff --git a/.local/bin/lock b/.local/bin/lock new file mode 100755 index 0000000..90a51fb --- /dev/null +++ b/.local/bin/lock @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +swayidle -w timeout 15 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' & +swaylock -eFfkl -i ~/.config/sway/background.png --font "Fira Code" +pkill --newest swayidle diff --git a/.local/bin/logout-wofi b/.local/bin/logout-wofi new file mode 100755 index 0000000..f6ab2ba --- /dev/null +++ b/.local/bin/logout-wofi @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +case "$(printf "logout\nreboot\nshutdown\nsleep\n" | wofi --dmenu -i -H 500 -W 250 -x 0 -y 0 )" in + 'logout') swaymsg exit;; + 'sleep') swaylock -f -F -e -i ~/.config/sway/wall -k -l -s fill --font IBM Plex Mono && systemctl suspend ;; + 'reboot') reboot ;; + 'shutdown') poweroff ;; + *) exit 1 ;; +esac + diff --git a/.local/bin/screenshot b/.local/bin/screenshot new file mode 100755 index 0000000..44ef8d6 --- /dev/null +++ b/.local/bin/screenshot @@ -0,0 +1,44 @@ +#!/usr/bin/env bash + +if [ ! -d $HOME/Pictures/Screenshots ] +then + mkdir -p $HOME/Pictures/Screenshots +fi + +fullscreen() { + filename=$HOME/Pictures/Screenshots/$(date +%Y%m%d_%H:%M:%S_Fullscreen).png + grim $filename + cat $filename | wl-copy \ + && notify-send -i $filename "Fullscreen Screenshot taken" + } + +selecting() { + filename=$HOME/Pictures/Screenshots/$(date +%Y%m%d_%H:%M:%S_Selected).png + grim -g "$(slurp -b e3eaf699)" $filename \ + && notify-send -i $filename "Selective Screenshot taken" + cat $filename | wl-copy + } + +wofirun() { + case "$(printf "fullscreen\nselect\n" | wofi --dmenu -i -H 500 -W 250 -x 0 -y 0 )" in + 'fullscreen')fullscreen;; + 'select')selecting;; + esac +} + +helpscreen() { + echo "Usage: screenshot [-f] [-s] [-w] [-h] " + echo "Options:" + echo "-f : Fullscreen screenshot" + echo "-s : Select a region for the screenshot" + echo "-w : Shows a wofi prompt for screenshot" + echo "-h : Shows this fucking help menu" + echo "If no flags are selected then -f is chosen" +} +case $1 in + -f)fullscreen;; + -s)selecting;; + -h)helpscreen;; + -w)wofirun;; + *)fullscreen;; +esac diff --git a/.newsboat/config b/.newsboat/config index c32db97..3bdb1ce 100644 --- a/.newsboat/config +++ b/.newsboat/config @@ -1,4 +1,4 @@ -browser "mpv --user-agent=Mozilla/5.0 '--ytdl-format=bestvideo[height=?480][fps<=?30]+bestaudio/best' %u" +browser "swayhide mpv --user-agent=Mozilla/5.0 '--ytdl-format=bestvideo[height=?480][fps<=?30]+bestaudio/best' %u" use-proxy yes proxy-type socks5h proxy 127.0.0.1:9050 diff --git a/.profile b/.profile deleted file mode 100644 index 73c0e93..0000000 --- a/.profile +++ /dev/null @@ -1,12 +0,0 @@ -export EDITOR=vim -export INVIDIOUS="https://inv.vern.cc" -export PATH="$HOME/.local/bin:$PATH" - -export LESS_TERMCAP_mb='' -export LESS_TERMCAP_md='' -export LESS_TERMCAP_me='' -export LESS_TERMCAP_se='' -export LESS_TERMCAP_so='' -export LESS_TERMCAP_ue='' -export LESS_TERMCAP_us='' -export LESS=-R diff --git a/.screenrc b/.screenrc new file mode 100644 index 0000000..3d31d6c --- /dev/null +++ b/.screenrc @@ -0,0 +1,36 @@ +backtick 0 1 1 "/home/cobra/.local/bin/backtick" + +hardstatus alwayslastline "%{=b}%{G}%{b}%w %=%{r}%` %{kG}%C%A %d/%M/%Y " + + +termcapinfo xterm|xterms|xs|rxvt ti@:te@ +startup_message off +msgwait 3 +defscrollback 4096 + +vbell off +bell " %n %t !" + +nethack on +caption splitonly "%2n %t" + + +bindkey -k k1 select 0 +bindkey -k k2 select 1 +bindkey -k k3 select 2 +bindkey -k k4 select 3 +bindkey -k k5 select 4 +bindkey -k k6 select 5 + +bindkey -k k7 copy +bindkey -k k8 paste . + +bindkey -k k9 screen + +#bindkey -k k8 kill +#bindkey -k k9 screen +#bindkey -k k; title +#bindkey -k F1 prev +#bindkey -k F2 next +#unbind s +bind s diff --git a/README.md b/README.md index 78306a2..70e14fe 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ # Dotfiles My configs, its that simple + +Some of the stuff is copied and modified from others' configs, including .config/sway, .config/waybar, and some files under .local/bin, so they are not under the same license. diff --git a/guix/config.scm b/guix/config.scm new file mode 100644 index 0000000..6120a83 --- /dev/null +++ b/guix/config.scm @@ -0,0 +1,100 @@ +(use-modules + (gnu) + (gnu system nss) +) +(use-package-modules + certs + linux + wm +) +(use-service-modules + desktop + networking + xorg + cups + ssh +) +(operating-system + (kernel linux-libre) + (keyboard-layout (keyboard-layout "us" "altgr-intl")) + (bootloader + (bootloader-configuration + (bootloader (bootloader + (inherit grub-bootloader) + (installer #~(const #t)) + )) + (keyboard-layout keyboard-layout) + ) + ) + (host-name "PC") + (mapped-devices (list + (mapped-device + (source (uuid "e836ef6e-97a8-442b-a025-e81ab58bbc04")) + (target "fde") + (type luks-device-mapping) + ) + (mapped-device + (source "matrix") + (targets (list + "matrix-rootvol" + "matrix-swapvol" + )) + (type lvm-device-mapping) + ) + )) + (file-systems (append (list + (file-system + (type "btrfs") + (mount-point "/") + (device (file-system-label "root")) + (flags '(no-atime)) + (options "space_cache=v2") + (needed-for-boot? #t) + (dependencies mapped-devices)) + ) %base-file-systems)) + (swap-devices (list (swap-space (target (file-system-label "swap"))))) + (users (append (list + (user-account + (name "cobra") + (comment "Skylar \"The Cobra\" Widulski") + (group "users") + (supplementary-groups '("audio" "cdrom" "kvm" "lp" "netdev" "tape" "video" "wheel"))) + ) %base-user-accounts)) + (packages (append + (map specification->package (list + "nss-certs" + "tor" + "vim" + "screen" + "lynx" + "curl" + "wget" + "net-tools" + "sway" + "waybar" + "swaylock" + "openssh" + "i2pd" + )) + (cons* + %base-packages + ) + )) + (timezone "America/New_York") + (locale "en_US.utf8") + (name-service-switch %mdns-host-lookup-nss) + (services + (cons* + (service openssh-service-type) + (service network-manager-service-type) + (service wpa-supplicant-service-type) + (service gpm-service-type) + (service ntp-service-type) + (service cups-service-type) + (service tor-service-type) + (service elogind-service-type) + (screen-locker-service swaylock) + %base-services + ) + ) +)