*
This commit is contained in:
cho 2024-01-27 15:42:16 +07:00
parent 0e6199ab8b
commit 9ceb9dbd33
47 changed files with 4633 additions and 267 deletions

1
.gitignore vendored
View File

@ -16,5 +16,6 @@ home/default/.config/doom/bookmarks
home/default/.config/doom/custom.el home/default/.config/doom/custom.el
home/default/.config/doom/config/+priv-config.el home/default/.config/doom/config/+priv-config.el
home/default/.config/sway/priv home/default/.config/sway/priv
home/default/.config/river/init-priv
home/default/.doom.d/bookmarks home/default/.doom.d/bookmarks
home/default/.doom.d/custom.el home/default/.doom.d/custom.el

1252
docs/instructions.html Normal file

File diff suppressed because it is too large Load Diff

View File

@ -7,15 +7,50 @@ pad= 16x16
[url] [url]
launch=xdg-open ${url} launch=xdg-open ${url}
# Tomorrow Night (grey background) # Tomorrow Light
##[cursor]
##color=373b41
#[colors]
#foreground=373b41
#background=ffffff
#regular0=1d1f21
#regular1=cc6666
#regular2=b5bd68
#regular3=f0c674
#regular4=81a2be
#regular5=b294bb
#regular6=8abeb7
#regular7=c5c8c6
#bright0=969896
#bright1=cc6666
#bright2=b5bd68
#bright3=f0c674
#bright4=81a2be
#bright5=b294bb
#bright6=8abeb7
#bright7=ffffff
# #
#[cursor] #color16=#de935f
#color17=#a3685a
#color18=#282a2e
#color19=#373b41
#color20=#b4b7b4
#color21=#e0e0e0
# Tomorrow Night (grey background)
[cursor]
#color=c5c8c6 #color=c5c8c6
[colors] [colors]
alpha=0.80 #alpha=0.80
#background=1d1f21 # tomorrow night default
background=161616 background=1d1f21
#background=000000
# grey
#background=161616
foreground=c5c8c6 foreground=c5c8c6
regular0=1d1f21 regular0=1d1f21
@ -39,7 +74,7 @@ bright7=ffffff
# Catpuccin (with grey background) # Catpuccin (with grey background)
#[cursor] #[cursor]
#color=1A1826 D9E0EE #color=1A1826 D9E0EE
#
#[colors] #[colors]
##alpha=0.85 ##alpha=0.85
#foreground=ffffff #foreground=ffffff
@ -61,3 +96,30 @@ bright7=ffffff
#bright5=F5C2E7 # bright magenta #bright5=F5C2E7 # bright magenta
#bright6=89DCEB # bright cyan #bright6=89DCEB # bright cyan
#bright7=D9E0EE # bright white #bright7=D9E0EE # bright white
# PaperColorDark
# Palette based on https://github.com/NLKNguyen/papercolor-theme
#[cursor]
# color=1c1c1c eeeeee
#
#[colors]
##alpha=0.80
# background=1c1c1c
# foreground=eeeeee
# regular0=1c1c1c # black
# regular1=af005f # red
# regular2=5faf00 # green
# regular3=d7af5f # yellow
# regular4=5fafd7 # blue
# regular5=808080 # magenta
# regular6=d7875f # cyan
# regular7=d0d0d0 # white
# bright0=bcbcbc # bright black
# bright1=5faf5f # bright red
# bright2=afd700 # bright green
# bright3=af87d7 # bright yellow
# bright4=ffaf00 # bright blue
# bright5=ff5faf # bright magenta
# bright6=00afaf # bright cyan
# bright7=5f8787 # bright white

View File

@ -1,18 +0,0 @@
# DO NOT EDIT! This file will be overwritten by LXAppearance.
# Any customization should be done in ~/.gtkrc-2.0.mine instead.
include "/home/default/.gtkrc-2.0.mine"
gtk-theme-name="Materia-dark"
gtk-icon-theme-name="Papirus-Dark"
gtk-font-name="Sans 10"
gtk-cursor-theme-name="Adwaita"
gtk-cursor-theme-size=0
gtk-toolbar-style=GTK_TOOLBAR_BOTH
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=1
gtk-menu-images=1
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=1
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle="hintfull"

View File

@ -0,0 +1,22 @@
/* No (default) titlebar on wayland */
/*headerbar.titlebar.default-decoration {
background: transparent;
padding: 0;
margin: 0 0 -17px 0;
border: 0;
min-height: 0;
font-size: 0;
box-shadow: none;
}*/
/* rm -rf window shadows */
/*window.csd, /* gtk4? */
/*window.csd decoration { /* gtk3 */
/* box-shadow: none;
}*/
.titlebar, .css, headerbar {
background-image:none;
background-color:transparent;
margin-top:-100px;
margin-bottom:50px;
}

View File

@ -1,16 +0,0 @@
[Settings]
gtk-theme-name=Materia-dark
gtk-icon-theme-name=Papirus-Dark
gtk-font-name=Sans 10
gtk-cursor-theme-name=Adwaita
gtk-cursor-theme-size=0
gtk-toolbar-style=GTK_TOOLBAR_BOTH
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=1
gtk-menu-images=1
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=1
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle=hintfull
gtk-application-prefer-dark-theme=1

View File

@ -1,7 +1,7 @@
profile { profile {
output HDMI-A-1 scale 1 mode 1366x768 position 0,0 output HDMI-A-1 enable scale 1 mode 1920x1080 position 0,0
output DVI-D-1 scale 1 mode 1280x1024 position 1366,0 output DVI-D-1 enable scale 1 mode 1280x1024 position 1920,0
} }
profile { profile {
output HDMI-A-1 scale 1 mode 1366x768 output HDMI-A-1 enable scale 1 mode 1920x1080
} }

View File

@ -1,7 +1,7 @@
profile { profile {
output HDMI-A-1 scale 1 mode 1366x768 position 0,0 output HDMI-A-1 enable scale 1 mode 1920x1080 position 0,0
output DVI-D-1 disable output DVI-D-1 disable
} }
profile { profile {
output HDMI-A-1 scale 1 mode 1366x768 output HDMI-A-1 enable scale 1 mode 1920x1080
} }

View File

@ -17,12 +17,12 @@ cmd open ${{
*.kra|*.krz|*.ora) setsid -f krita $f >/dev/null 2>&1 && exit 0 ;; *.kra|*.krz|*.ora) setsid -f krita $f >/dev/null 2>&1 && exit 0 ;;
*.xlsx) setsid -f libreoffice $f >/dev/null 2>&1 && exit 0 ;; *.xlsx) setsid -f libreoffice $f >/dev/null 2>&1 && exit 0 ;;
*.sc) sc-im $f && exit 0;; *.sc) sc-im $f && exit 0;;
*.org) setsid -f em $f >/dev/null 2>&1 && exit 0 ;; #*.org) setsid -f $EDITOR $f >/dev/null 2>&1 && exit 0 ;;
esac esac
case $(file --mime-type "$(readlink -f $f)" -b) in case $(file --mime-type "$(readlink -f $f)" -b) in
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet) localc $fx ;; application/vnd.openxmlformats-officedocument.spreadsheetml.sheet) localc $fx ;;
image/vnd.djvu|application/pdf|application/octet-stream|application/postscript) setsid -f zathura $fx >/dev/null 2>&1 ;; image/vnd.djvu|application/pdf|application/octet-stream|application/postscript) setsid -f zathura $fx >/dev/null 2>&1 ;;
text/*|application/json|inode/x-empty) em $fx;; text/*|application/json|inode/x-empty) $EDITOR $fx;;
image/x-xcf) setsid -f gimp $f >/dev/null 2>&1 ;; image/x-xcf) setsid -f gimp $f >/dev/null 2>&1 ;;
image/svg+xml) display -- $f ;; image/svg+xml) display -- $f ;;
image/*) rotdir $f | grep -i "\.\(png\|jpg\|jpeg\|gif\|webp\|tif\|ico\)\(_large\)*$" | image/*) rotdir $f | grep -i "\.\(png\|jpg\|jpeg\|gif\|webp\|tif\|ico\)\(_large\)*$" |

View File

@ -53,7 +53,8 @@ case "$(file --dereference --brief --mime-type -- "$1")" in
mediainfo "$1";; mediainfo "$1";;
text/html) lynx -width="$4" -display_charset=utf-8 -dump "$1" ;; text/html) lynx -width="$4" -display_charset=utf-8 -dump "$1" ;;
text/troff) man ./ "$1" | col -b ;; text/troff) man ./ "$1" | col -b ;;
text/* | */xml | application/json) bat -p --terminal-width "$(($4-2))" -f "$1" ;; text/* | */xml | application/json) highlight --out-format=ansi --width "$(($4-2))" "$1" ;;
#text/* | */xml | application/json) bat -p --terminal-width "$(($4-2))" -f "$1" ;;
audio/* | application/octet-stream) mediainfo "$1" || exit 1 ;; audio/* | application/octet-stream) mediainfo "$1" || exit 1 ;;
video/* ) video/* )
CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/lf/thumb.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | cut -d' ' -f1)" CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/lf/thumb.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | cut -d' ' -f1)"

View File

@ -7,6 +7,7 @@ message_delay_time = "1"
visualizer_type = "spectrum" visualizer_type = "spectrum"
song_list_format = {$4%a - }{%t}|{$8%f$9}$R{$3(%l)$9} song_list_format = {$4%a - }{%t}|{$8%f$9}$R{$3(%l)$9}
song_status_format = $b{{$8"%t"}} $3by {$4%a{ $3in $7%b{ (%y)}} $3}|{$8%f} song_status_format = $b{{$8"%t"}} $3by {$4%a{ $3in $7%b{ (%y)}} $3}|{$8%f}
#song_status_format = $b{{$8"%t"}} $8by {$8%a{ $8in $8%b{ (%y)}} $8}|{$8%f}
song_library_format = {%n - }{%t}|{%f} song_library_format = {%n - }{%t}|{%f}
alternative_header_first_line_format = $b$1$aqqu$/a$9 {%t}|{%f} $1$atqq$/a$9$/b alternative_header_first_line_format = $b$1$aqqu$/a$9 {%t}|{%f} $1$atqq$/a$9$/b
alternative_header_second_line_format = {{$4$b%a$/b$9}{ - $7%b$9}{ ($4%y$9)}}|{%D} alternative_header_second_line_format = {{$4$b%a$/b$9}{ - $7%b$9}{ ($4%y$9)}}|{%D}
@ -31,3 +32,6 @@ progressbar_elapsed_color = blue:b
statusbar_color = red statusbar_color = red
statusbar_time_color = cyan:b statusbar_time_color = cyan:b
allow_for_physical_item_deletion = "yes" allow_for_physical_item_deletion = "yes"
#main_window_color = black
#song_status_format = $b{{$1"%t"}} $3by {$4%a{ $3in $7%b{ (%y)}} $3}|{$1%f}

View File

@ -1,8 +1,9 @@
#show-read-feeds no #show-read-feeds no
auto-reload yes auto-reload yes
external-url-viewer "urlscan -dc -r 'linkhandler {}'" #external-url-viewer "urlscan -dc -r 'linkhandler {}'"
## vim bindings
bind-key j down bind-key j down
bind-key k up bind-key k up
bind-key j next articlelist bind-key j next articlelist
@ -18,31 +19,79 @@ bind-key h quit
bind-key a toggle-article-read bind-key a toggle-article-read
bind-key n next-unread bind-key n next-unread
bind-key N prev-unread bind-key N prev-unread
bind-key D pb-download
bind-key U show-urls bind-key U show-urls
bind-key x pb-delete
#bind-key D pb-download
#bind-key x pb-delete
browser linkhandler
macro , open-in-browser
#macro t set browser "qndl" ; open-in-browser ; set browser linkhandler
#macro a set browser "tsp yt-dlp --embed-metadata --embed-thumbnail -xc -f bestaudio/best --restrict-filenames" ; open-in-browser ; set browser linkhandler
#macro v set browser "setsid -f mpv" ; open-in-browser ; set browser linkhandler
#macro w set browser "lynx" ; open-in-browser ; set browser linkhandler
#macro d set browser "dmenuhandler" ; open-in-browser ; set browser linkhandler
#macro c set browser "echo %u | xclip -r -sel c" ; open-in-browser ; set browser linkhandler
#macro C set browser "setsid -f $TERMINAL -e pipe-viewer --comments=%u" ; open-in-browser ; set browser linkhandler
#macro p set browser "peertubetorrent %u 480" ; open-in-browser ; set browser linkhandler
#macro P set browser "peertubetorrent %u 1080" ; open-in-browser ; set browser linkhandler
#macro y set browser "setsid -f flatpak run io.freetubeapp.FreeTube %u >/dev/null 2>&1" ; open-in-browser ; set browser linkhandler
# random
#color background white black
#color listnormal color244 black
#color listfocus default red
#color listnormal_unread white default
#color listfocus_unread default red
#color info black yellow
#color article white black
# gruvbox
#color listnormal cyan default
#color listfocus black yellow standout bold
#color listnormal_unread blue default
#color listfocus_unread yellow default bold
#color info red black bold
#color article white default bold
color info white default bold
#color listfocus white color8
#color listfocus_unread white color8 bold
color listnormal cyan default color listnormal cyan default
color listfocus black yellow standout bold color listfocus black yellow standout bold
color listnormal_unread blue default color listnormal_unread blue default
color listfocus_unread yellow default bold color listfocus_unread yellow default bold
#color info red black bold #color info red black bold
color info red default
color article white default bold color article white default bold
browser linkhandler #color info white color8
macro , open-in-browser #color listnormal white black
macro t set browser "qndl" ; open-in-browser ; set browser linkhandler #color listnormal_unread white black bold
macro a set browser "tsp yt-dlp --embed-metadata --embed-thumbnail -xc -f bestaudio/best --restrict-filenames" ; open-in-browser ; set browser linkhandler #color article white black
macro v set browser "setsid -f mpv" ; open-in-browser ; set browser linkhandler
macro w set browser "lynx" ; open-in-browser ; set browser linkhandler
macro d set browser "dmenuhandler" ; open-in-browser ; set browser linkhandler
macro c set browser "echo %u | xclip -r -sel c" ; open-in-browser ; set browser linkhandler
macro C set browser "setsid -f $TERMINAL -e pipe-viewer --comments=%u" ; open-in-browser ; set browser linkhandler
macro p set browser "peertubetorrent %u 480" ; open-in-browser ; set browser linkhandler
macro P set browser "peertubetorrent %u 1080" ; open-in-browser ; set browser linkhandler
macro y set browser "setsid -f flatpak run io.freetubeapp.FreeTube %u >/dev/null 2>&1" ; open-in-browser ; set browser linkhandler
#color listfocus white color8
#color listfocus_unread color8 black bold
#color listfocus cyan color8 bold
#color listfocus_unread cyan color8 bold
#color listnormal cyan default
#color listfocus black yellow standout bold
#color listnormal_unread blue default
#color listfocus_unread yellow default bold
#color info red black bold
##color info white color8
#color article white default
#color listnormal cyan default
#color listnormal_unread blue default
#color listnormal white default bold
#color listnormal_unread color8 default
highlight all "--.*--" white
highlight all "---.*---" yellow highlight all "---.*---" yellow
highlight feedlist ".*(0/0))" black highlight feedlist ".*(0/0))" black
highlight article "(^Feed:.*|^Title:.*|^Author:.*)" cyan default bold highlight article "(^Feed:.*|^Title:.*|^Author:.*)" cyan default bold
@ -55,3 +104,4 @@ highlight article "\\[embedded flash: [0-9][0-9]*\\]" green default bold
highlight article ":.*\\(link\\)$" cyan default highlight article ":.*\\(link\\)$" cyan default
highlight article ":.*\\(image\\)$" blue default highlight article ":.*\\(image\\)$" blue default
highlight article ":.*\\(embedded flash\\)$" magenta default highlight article ":.*\\(embedded flash\\)$" magenta default

View File

@ -0,0 +1,3 @@
prefix=${XDG_DATA_HOME}/npm
cache=${XDG_CACHE_HOME}/npm
init-module=${XDG_CONFIG_HOME}/npm/config/npm-init.js

272
home/default/.config/river/init Executable file
View File

@ -0,0 +1,272 @@
#!/bin/sh
# TODO
# This is the example configuration file for river.
#
# If you wish to edit this, you will probably want to copy it to
# $XDG_CONFIG_HOME/river/init or $HOME/.config/river/init first.
#
# See the river(1), riverctl(1), and rivertile(1) man pages for complete
# documentation.
# Note: the "Super" modifier is also known as Logo, GUI, Windows, Mod4, etc.
# Super+Return to start an instance of foot (https://codeberg.org/dnkl/foot)
riverctl map normal Super Return spawn $TERMINAL
riverctl map normal Super E spawn "emacsclient -c -a ''"
riverctl map normal Super D spawn "wofi --show drun"
riverctl map normal Super+Shift D spawn "wofi --show run"
riverctl map normal Super W spawn $BROWSER
riverctl map normal Super M spawn "$TERMINAL -e ncmpcpp"
riverctl map normal Super R spawn "$TERMINAL -e lf"
riverctl map normal Super+Shift N spawn "$TERMINAL -e newsboat"
riverctl map normal Super T spawn "swaync-client -t"
riverctl map normal Super+Control P spawn "$TERMINAL -e pulsemixer"
riverctl map normal Super B spawn "emacsclient -c -a '' ~/notebook/bookmarks.org"
riverctl map normal Super+Shift B spawn "bookmark"
# riverctl map normal Super Insert spawn 'wtype "$(grep -v '^#' ~/notebook/bookmarks.org | dmenu -l 50 | cut -d' ' -f1)"' # TODO broken?
riverctl map normal Print spawn 'screenshot.sh output'
riverctl map normal Super Print spawn 'screenshot.sh active'
riverctl map normal Super+Shift Print spawn 'screenshot.sh window'
riverctl map normal Super+Control u spawn 'screenshot.sh output'
riverctl map normal Super u spawn 'screenshot.sh active'
riverctl map normal Super+Shift u spawn 'screenshot.sh window'
riverctl map normal Super Equal spawn 'wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+'
riverctl map normal Super Minus spawn 'wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-'
riverctl map normal Super+Shift Equal spawn 'wpctl set-volume @DEFAULT_AUDIO_SINK@ 15%+'
riverctl map normal Super+Shift Minus spawn 'wpctl set-volume @DEFAULT_AUDIO_SINK@ 15%-'
riverctl map normal Super+Shift m spawn 'wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle'
# Super+Q to close the focused view
riverctl map normal Super Q close
# Super+Shift+Backspace to exit river
riverctl map normal Super+Shift Backspace exit
# riverctl map normal Super+Shift Backspace 'prompt "Do you really wont to exit river? This will end your Wayland session" "riverctl exit"'
riverctl map normal Super+Shift R spawn "$HOME/.config/river/init"
riverctl map normal Super Backspace spawn sysact
# Super+X to toggle waybar
riverctl map normal Super X spawn 'killall -SIGUSR1 waybar'
# Super+J and Super+K to focus the next/previous view in the layout stack
riverctl map normal Super J focus-view next
riverctl map normal Super K focus-view previous
# Super+Shift+J and Super+Shift+K to swap the focused view with the next/previous
# view in the layout stack
riverctl map normal Super+Shift J swap next
riverctl map normal Super+Shift K swap previous
# Super+Period and Super+Comma to focus the next/previous output
riverctl map normal Super Period focus-output next
riverctl map normal Super Comma focus-output previous
riverctl map normal Super Right focus-output next
riverctl map normal Super Left focus-output previous
# Super+Shift+{Period,Comma} to send the focused view to the next/previous output
#riverctl map normal Super+Shift Period send-to-output -current-tags next
#riverctl map normal Super+Shift Comma send-to-output -current-tags previous
riverctl map normal Super+Shift Period spawn "riverctl send-to-output -current-tags previous && riverctl focus-output previous"
riverctl map normal Super+Shift Comma spawn "riverctl send-to-output -current-tags next && riverctl focus-output next"
riverctl map normal Super+Shift Right spawn "riverctl send-to-output -current-tags previous && riverctl focus-output previous"
riverctl map normal Super+Shift Left spawn "riverctl send-to-output -current-tags next && riverctl focus-output next"
# Same but with alt
#riverctl map normal Super+Alt Period send-to-output -current-tags next
#riverctl map normal Super+Alt Comma send-to-output -current-tags previous
riverctl map normal Super+Alt Period spawn "riverctl send-to-output -current-tags previous && riverctl focus-output previous"
riverctl map normal Super+Alt Comma spawn "riverctl send-to-output -current-tags next && riverctl focus-output next"
riverctl map normal Super+Alt Right send-to-output next
riverctl map normal Super+Alt Left send-to-output previous
# Super+Return to bump the focused view to the top of the layout stack
riverctl map normal Super+Shift Return zoom
riverctl map normal Super Space zoom
# Super+H and Super+L to decrease/increase the main ratio of rivertile(1)
riverctl map normal Super H send-layout-cmd rivertile "main-ratio -0.05"
riverctl map normal Super L send-layout-cmd rivertile "main-ratio +0.05"
# Super+Shift+H and Super+Shift+L to increment/decrement the main count of rivertile(1)
riverctl map normal Super+Shift H send-layout-cmd rivertile "main-count +1"
riverctl map normal Super+Shift L send-layout-cmd rivertile "main-count -1"
# Super+Alt+{H,J,K,L} to move views
riverctl map normal Super+Alt H move left 100
riverctl map normal Super+Alt J move down 100
riverctl map normal Super+Alt K move up 100
riverctl map normal Super+Alt L move right 100
# Super+Alt+Control+{H,J,K,L} to snap views to screen edges
riverctl map normal Super+Alt+Control H snap left
riverctl map normal Super+Alt+Control J snap down
riverctl map normal Super+Alt+Control K snap up
riverctl map normal Super+Alt+Control L snap right
# Super+Alt+Shift+{H,J,K,L} to resize views (default by 100)
riverctl map normal Super+Alt+Shift H resize horizontal -50
riverctl map normal Super+Alt+Shift J resize vertical 50
riverctl map normal Super+Alt+Shift K resize vertical -50
riverctl map normal Super+Alt+Shift L resize horizontal 50
# Super + Left Mouse Button to move views
riverctl map-pointer normal Super BTN_LEFT move-view
# Super + Right Mouse Button to resize views
riverctl map-pointer normal Super BTN_RIGHT resize-view
for i in $(seq 1 9)
do
tags=$((1 << ($i - 1)))
# Super+[1-9] to focus tag [0-8]
riverctl map normal Super $i set-focused-tags $tags
# Super+Shift+[1-9] to tag focused view with tag [0-8]
riverctl map normal Super+Shift $i set-view-tags $tags
# Super+Ctrl+[1-9] to toggle focus of tag [0-8]
riverctl map normal Super+Control $i toggle-focused-tags $tags
# Super+Shift+Ctrl+[1-9] to toggle tag [0-8] of focused view
riverctl map normal Super+Shift+Control $i toggle-view-tags $tags
done
# Super+0 to focus all tags
# Super+Shift+0 to tag focused view with all tags
all_tags=$(((1 << 32) - 1))
riverctl map normal Super 0 set-focused-tags $all_tags
riverctl map normal Super+Shift 0 set-view-tags $all_tags
# Super+Shift+Space to toggle float
riverctl map normal Super+Shift Space toggle-float
# Super+F to toggle fullscreen
riverctl map normal Super F toggle-fullscreen
# Super+{Up,Right,Down,Left} to change layout orientation
riverctl map normal Super Up send-layout-cmd rivertile "main-location top"
riverctl map normal Super Right send-layout-cmd rivertile "main-location right"
riverctl map normal Super Down send-layout-cmd rivertile "main-location bottom"
riverctl map normal Super Left send-layout-cmd rivertile "main-location left"
# Declare a passthrough mode. This mode has only a single mapping to return to
# normal mode. This makes it useful for testing a nested wayland compositor
riverctl declare-mode passthrough
# Super+F11 to enter passthrough mode
riverctl map normal Super F11 enter-mode passthrough
# Super+F11 to return to normal mode
riverctl map passthrough Super F11 enter-mode normal
# Various media key mapping examples for both normal and locked mode which do
# not have a modifier
for mode in normal locked
do
# Eject the optical drive (well if you still have one that is)
riverctl map $mode None XF86Eject spawn 'eject -T'
# Control pulse audio volume with pamixer (https://github.com/cdemoulins/pamixer)
riverctl map $mode None XF86AudioRaiseVolume spawn 'wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+'
riverctl map $mode None XF86AudioLowerVolume spawn 'wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-'
riverctl map $mode None XF86AudioMute spawn 'wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle'
riverctl map $mode None XF86AudioMicMute spawn 'wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle'
# Control MPRIS aware media players with playerctl (https://github.com/altdesktop/playerctl)
riverctl map $mode None XF86AudioMedia spawn 'playerctl play-pause'
riverctl map $mode None XF86AudioPlay spawn 'playerctl play-pause'
riverctl map $mode None XF86AudioPrev spawn 'playerctl previous'
riverctl map $mode None XF86AudioNext spawn 'playerctl next'
# Control screen backlight brightness with light (https://github.com/haikarainen/light)
riverctl map $mode None XF86MonBrightnessUp spawn 'brightnessctl set 10%+'
riverctl map $mode None XF86MonBrightnessDown spawn 'brightnessctl set 10%-'
done
# Set background and border color
riverctl background-color 0x002b36
riverctl border-color-focused 0x93a1a1
riverctl border-color-unfocused 0x586e75
## Autostart
riverctl spawn swaync
riverctl spawn 'killall waybar'
riverctl spawn 'sleep 2 && waybar -c ~/.config/waybar/config-river'
riverctl spawn change-background
riverctl spawn 'sleep 5 && xrdb -load $HOME/.config/x11/xresources'
#riverctl spawn mpd
#riverctl spawn fcitx5
#riverctl spawn deluged
riverctl spawn "setsid -f syncthing --no-browser"
riverctl spawn "sleep 10 && kanshi"
riverctl spawn 'killall swayidle ; sleep 3 && idle'
#riverctl spawn 'gammastep -P -l <lat>:<long> -t 6500:5000'
riverctl spawn '~/.config/river/init-priv'
riverctl spawn "systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=river"
riverctl spawn "dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=river"
# Set keyboard repeat rate
riverctl set-repeat 30 300
# Make certain views start floating
riverctl float-filter-add app-id float
riverctl float-filter-add title "popup title with spaces"
#riverctl rule-add -app-id "*" ssd
riverctl rule-add -app-id "emacs" ssd
riverctl rule-add -app-id "LibreWolf" ssd
riverctl rule-add -app-id "deluge" ssd
riverctl rule-add -app-id "steam" ssd
riverctl rule-add -app-id "im.dino.Dino" ssd
# Make all views with an app-id that starts with "float" and title "foo" start floating.
riverctl rule-add -app-id 'float*' -title 'foo' float
# Make all views with app-id "bar" and any title use client-side decorations
riverctl rule-add -app-id "bar" csd
# Set app-ids and titles of views which should use client side decorations
riverctl csd-filter-add app-id "gedit"
# Set the default layout generator to be rivertile and start it.
# River will send the process group of the init executable SIGTERM on exit.
riverctl default-layout rivertile
rivertile -view-padding 15 -outer-padding 15
# default 6
#: Performance tuning {{{
#repaint_delay 0
#: Delay (in milliseconds) between screen updates. Decreasing it,
#: increases frames-per-second (FPS) at the cost of more CPU usage.
#: The default value yields ~100 FPS which is more than sufficient for
#: most uses. Note that to actually achieve 100 FPS you have to either
#: set sync_to_monitor to no or use a monitor with a high refresh
#: rate. Also, to minimize latency when there is pending input to be
#: processed, repaint_delay is ignored.
#input_delay 0
#: Delay (in milliseconds) before input from the program running in
#: the terminal is processed. Note that decreasing it will increase
#: responsiveness, but also increase CPU usage and might cause flicker
#: in full screen programs that redraw the entire screen on each loop,
#: because kitty is so fast that partial screen updates will be drawn.
sync_to_monitor no
#: Sync screen updates to the refresh rate of the monitor. This
#: prevents tearing (https://en.wikipedia.org/wiki/Screen_tearing)
#: when scrolling. However, it limits the rendering speed to the
#: refresh rate of your monitor. With a very high speed mouse/high
#: keyboard repeat rate, you may notice some slight input latency. If
#: so, set this to no.
#: }}}

View File

@ -0,0 +1,163 @@
#!/bin/sh
# This is the example configuration file for river.
#
# If you wish to edit this, you will probably want to copy it to
# $XDG_CONFIG_HOME/river/init or $HOME/.config/river/init first.
#
# See the river(1), riverctl(1), and rivertile(1) man pages for complete
# documentation.
# Note: the "Super" modifier is also known as Logo, GUI, Windows, Mod4, etc.
# Super+Shift+Return to start an instance of foot (https://codeberg.org/dnkl/foot)
riverctl map normal Super+Shift Return spawn foot
# Super+Q to close the focused view
riverctl map normal Super Q close
# Super+Shift+E to exit river
riverctl map normal Super+Shift E exit
# Super+J and Super+K to focus the next/previous view in the layout stack
riverctl map normal Super J focus-view next
riverctl map normal Super K focus-view previous
# Super+Shift+J and Super+Shift+K to swap the focused view with the next/previous
# view in the layout stack
riverctl map normal Super+Shift J swap next
riverctl map normal Super+Shift K swap previous
# Super+Period and Super+Comma to focus the next/previous output
riverctl map normal Super Period focus-output next
riverctl map normal Super Comma focus-output previous
# Super+Shift+{Period,Comma} to send the focused view to the next/previous output
riverctl map normal Super+Shift Period send-to-output -current-tags next
riverctl map normal Super+Shift Comma send-to-output -current-tagsjprevious
# Super+Return to bump the focused view to the top of the layout stack
riverctl map normal Super Return zoom
# Super+H and Super+L to decrease/increase the main ratio of rivertile(1)
riverctl map normal Super H send-layout-cmd rivertile "main-ratio -0.05"
riverctl map normal Super L send-layout-cmd rivertile "main-ratio +0.05"
# Super+Shift+H and Super+Shift+L to increment/decrement the main count of rivertile(1)
riverctl map normal Super+Shift H send-layout-cmd rivertile "main-count +1"
riverctl map normal Super+Shift L send-layout-cmd rivertile "main-count -1"
# Super+Alt+{H,J,K,L} to move views
riverctl map normal Super+Alt H move left 100
riverctl map normal Super+Alt J move down 100
riverctl map normal Super+Alt K move up 100
riverctl map normal Super+Alt L move right 100
# Super+Alt+Control+{H,J,K,L} to snap views to screen edges
riverctl map normal Super+Alt+Control H snap left
riverctl map normal Super+Alt+Control J snap down
riverctl map normal Super+Alt+Control K snap up
riverctl map normal Super+Alt+Control L snap right
# Super+Alt+Shift+{H,J,K,L} to resize views
riverctl map normal Super+Alt+Shift H resize horizontal -100
riverctl map normal Super+Alt+Shift J resize vertical 100
riverctl map normal Super+Alt+Shift K resize vertical -100
riverctl map normal Super+Alt+Shift L resize horizontal 100
# Super + Left Mouse Button to move views
riverctl map-pointer normal Super BTN_LEFT move-view
# Super + Right Mouse Button to resize views
riverctl map-pointer normal Super BTN_RIGHT resize-view
# Super + Middle Mouse Button to toggle float
riverctl map-pointer normal Super BTN_MIDDLE toggle-float
for i in $(seq 1 9)
do
tags=$((1 << ($i - 1)))
# Super+[1-9] to focus tag [0-8]
riverctl map normal Super $i set-focused-tags $tags
# Super+Shift+[1-9] to tag focused view with tag [0-8]
riverctl map normal Super+Shift $i set-view-tags $tags
# Super+Control+[1-9] to toggle focus of tag [0-8]
riverctl map normal Super+Control $i toggle-focused-tags $tags
# Super+Shift+Control+[1-9] to toggle tag [0-8] of focused view
riverctl map normal Super+Shift+Control $i toggle-view-tags $tags
done
# Super+0 to focus all tags
# Super+Shift+0 to tag focused view with all tags
all_tags=$(((1 << 32) - 1))
riverctl map normal Super 0 set-focused-tags $all_tags
riverctl map normal Super+Shift 0 set-view-tags $all_tags
# Super+Space to toggle float
riverctl map normal Super Space toggle-float
# Super+F to toggle fullscreen
riverctl map normal Super F toggle-fullscreen
# Super+{Up,Right,Down,Left} to change layout orientation
riverctl map normal Super Up send-layout-cmd rivertile "main-location top"
riverctl map normal Super Right send-layout-cmd rivertile "main-location right"
riverctl map normal Super Down send-layout-cmd rivertile "main-location bottom"
riverctl map normal Super Left send-layout-cmd rivertile "main-location left"
# Declare a passthrough mode. This mode has only a single mapping to return to
# normal mode. This makes it useful for testing a nested wayland compositor
riverctl declare-mode passthrough
# Super+F11 to enter passthrough mode
riverctl map normal Super F11 enter-mode passthrough
# Super+F11 to return to normal mode
riverctl map passthrough Super F11 enter-mode normal
# Various media key mapping examples for both normal and locked mode which do
# not have a modifier
for mode in normal locked
do
# Eject the optical drive (well if you still have one that is)
riverctl map $mode None XF86Eject spawn 'eject -T'
# Control pulse audio volume with pamixer (https://github.com/cdemoulins/pamixer)
riverctl map $mode None XF86AudioRaiseVolume spawn 'pamixer -i 5'
riverctl map $mode None XF86AudioLowerVolume spawn 'pamixer -d 5'
riverctl map $mode None XF86AudioMute spawn 'pamixer --toggle-mute'
# Control MPRIS aware media players with playerctl (https://github.com/altdesktop/playerctl)
riverctl map $mode None XF86AudioMedia spawn 'playerctl play-pause'
riverctl map $mode None XF86AudioPlay spawn 'playerctl play-pause'
riverctl map $mode None XF86AudioPrev spawn 'playerctl previous'
riverctl map $mode None XF86AudioNext spawn 'playerctl next'
# Control screen backlight brightness with light (https://github.com/haikarainen/light)
riverctl map $mode None XF86MonBrightnessUp spawn 'light -A 5'
riverctl map $mode None XF86MonBrightnessDown spawn 'light -U 5'
done
# Set background and border color
riverctl background-color 0x002b36
riverctl border-color-focused 0x93a1a1
riverctl border-color-unfocused 0x586e75
# Set keyboard repeat rate
riverctl set-repeat 50 300
# Make all views with an app-id that starts with "float" and title "foo" start floating.
riverctl rule-add -app-id 'float*' -title 'foo' float
# Make all views with app-id "bar" and any title use client-side decorations
riverctl rule-add -app-id "bar" csd
# Set the default layout generator to be rivertile and start it.
# River will send the process group of the init executable SIGTERM on exit.
riverctl default-layout rivertile
rivertile -view-padding 6 -outer-padding 6 &

View File

@ -0,0 +1 @@
set copy_to_clipboard_delimited_tab=1

View File

@ -1,66 +1,51 @@
#!/bin/sh #!/bin/sh
# Use neovim for vim if present.
[ -x "$(command -v nvim)" ] && alias vim="nvim" vimdiff="nvim -d"
# Use $XINITRC variable if file exists. # Use $XINITRC variable if file exists.
[ -f "$XINITRC" ] && alias startx="startx $XINITRC" [ -f "$XINITRC" ] && alias startx="startx $XINITRC"
[ -f "$MBSYNCRC" ] && alias mbsync="mbsync -c $MBSYNCRC"
# sudo not required for some system commands # sudo not required for some system commands
for command in mount umount sv pacman updatedb su shutdown poweroff reboot ; do for command in mount umount updatedb su shutdown poweroff reboot ; do
alias $command="sudo $command" alias $command="sudo $command"
done; unset command done; unset command
se() { cd ~/.local/bin; $EDITOR $(fzf) ;}
# Verbosity and settings that you pretty much just always are going to want.
alias \ alias \
e="emacsclient -tty -a ''" \
emc="setsid -f emacsclient -c -a '' >/dev/null 2>&1" \
emo="emacsclient" \
kem="emacsclient -e '(kill-emacs)'" \
vimdiff="nvim -d" \
cp="cp -iv" \ cp="cp -iv" \
mv="mv -iv" \ mv="mv -iv" \
rm="rm -vI" \ rm="rm -vI" \
bc="bc -ql" \ bc="bc -ql" \
pg="ps -aux | grep --color=auto" \
mkd="mkdir -pv" \ mkd="mkdir -pv" \
ffmpeg="ffmpeg -hide_banner" ffmpeg="ffmpeg -hide_banner" \
wedit(){
which $@ >/dev/null 2>&1 && [ -n "$1" ] && vim $(which $@) || printf "file doesn't exist.\n"
}
# Colorize commands when possible.
alias \
ls="ls -hN --color=auto --group-directories-first" \ ls="ls -hN --color=auto --group-directories-first" \
grep="grep --color=auto" \ grep="grep --color=auto" \
diff="diff --color=auto" \ diff="diff --color=auto" \
ccat="highlight --out-format=ansi" \ ccat="highlight --out-format=ansi" \
ip="ip -color=auto" ip="ip -color=auto" \
# These common commands are just too long! Abbreviate them.
alias \
ka="killall" \ ka="killall" \
g="git" \ g="git" \
sdn="shutdown -h now" \ sdn="shutdown -h now" \
e="$EDITOR" \
v="nvim" \ v="nvim" \
z="zathura" \ z="zathura" \
i="nsxiv -a" d="sdcv" \
i="nsxiv -a" \
alias \ pg="ps -aux | grep --color=auto" \
magit="nvim -c MagitOnly" \ weath="curl wttr.in" \
ref="shortcuts >/dev/null; source ${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc ; source ${XDG_CONFIG_HOME:-$HOME/.config}/shell/zshnameddirrc" \
weath="curl wttr.in"
# misc
alias \
ytmus="yt-dlp --embed-metadata --embed-thumbnail -xc -f 'bestaudio[ext=m4a]'" \ ytmus="yt-dlp --embed-metadata --embed-thumbnail -xc -f 'bestaudio[ext=m4a]'" \
ytvid="yt-dlp --embed-metadata --embed-thumbnail --embed-chapters --write-auto-subs -f bestvideo'[height<=1080]''[ext=mp4]'+bestaudio'[ext=m4a]'/best'[ext=mp4]'/best" \ ytvid="yt-dlp --embed-metadata --embed-thumbnail --embed-chapters --write-auto-subs -f bestvideo'[height<=1080]''[ext=mp4]'+bestaudio'[ext=m4a]'/best'[ext=mp4]'/best" \
t="todo.sh -t -d $HOME/notebook/todo/todo.cfg" \ hgs="hugo server --noHTTPCache --disableFastRender" \
fj="firejail --profile=$HOME/.config/firejail/game.profile" \ left='uxnemu ~/.local/uxn/left.rom' \
dj="dijo" \ bouc='uxnemu ~/.local/uxn/bouc.rom' \
hgs="hugo server --noHTTPCache --disableFastRender" catclock='uxnemu ~/.local/uxn/catclock.rom' \
b='$BROWSER'\
sc='sc-im'\
l='ledger -f ~/notebook/ac/ac.ledger'
# ytfzf wedit(){
#alias \ which $@ >/dev/null 2>&1 && [ -n "$1" ] && $EDITOR $(which $@) || printf "file doesn't exist.\n"
# ytfzf="ytfzf --thumb-viewer=imv" \ }
# ytfzf-video="ytfzf --detach -t" \
# ytfzf-audio="ytfzf -m" \
# ytfzf-history="ytfzf --detach -H"

View File

@ -1,17 +1,17 @@
#!/bin/zsh #!/bin/sh
# shellcheck disable=SC2155
# profile file. Runs on login. Environmental variables are set here. # profile file. Runs on login. Environmental variables are set here.
# Paths
# If you don't plan on reverting to bash, you can remove the link in ~/.profile
# to clean up.
# paths
export PATH="$PATH:$HOME/.local/bin" export PATH="$PATH:$HOME/.local/bin"
export PATH="$PATH:$HOME/.local/uxn"
export PATH="$PATH:$HOME/.local/sec"
export PATH="$PATH:$HOME/.emacs.d/bin"
export PATH="$PATH:/var/lib/flatpak/exports/bin" export PATH="$PATH:/var/lib/flatpak/exports/bin"
export PATH="$PATH:$HOME/.local/share/go/bin" export PATH="$PATH:$HOME/.local/share/go/bin"
export PATH="$PATH:$HOME/.local/share/cargo/bin" export PATH="$PATH:$HOME/.local/share/cargo/bin"
export PATH="$PATH:$HOME/.emacs.d/bin"
unsetopt PROMPT_SP unsetopt PROMPT_SP 2>/dev/null
# Default programs: # Default programs:
export EDITOR="nvim" export EDITOR="nvim"
@ -22,35 +22,37 @@ export BROWSER="io.gitlab.librewolf-community"
export XDG_CONFIG_HOME="$HOME/.config" export XDG_CONFIG_HOME="$HOME/.config"
export XDG_DATA_HOME="$HOME/.local/share" export XDG_DATA_HOME="$HOME/.local/share"
export XDG_CACHE_HOME="$HOME/.cache" export XDG_CACHE_HOME="$HOME/.cache"
export XINITRC="${XDG_CONFIG_HOME:-$HOME/.config}/x11/xinitrc" export XINITRC="$XDG_CONFIG_HOME/x11/xinitrc"
#export XAUTHORITY="$XDG_RUNTIME_DIR/Xauthority" # This line will break some DMs. #export XAUTHORITY="$XDG_RUNTIME_DIR/Xauthority" # This line will break some DMs.
export NOTMUCH_CONFIG="${XDG_CONFIG_HOME:-$HOME/.config}/notmuch-config" export NOTMUCH_CONFIG="$XDG_CONFIG_HOME/notmuch-config"
export GTK2_RC_FILES="${XDG_CONFIG_HOME:-$HOME/.config}/gtk-2.0/gtkrc-2.0" export GTK2_RC_FILES="$XDG_CONFIG_HOME/gtk-2.0/gtkrc-2.0"
export LESSHISTFILE="-" export WGETRC="$XDG_CONFIG_HOME/wget/wgetrc"
export WGETRC="${XDG_CONFIG_HOME:-$HOME/.config}/wget/wgetrc" export INPUTRC="$XDG_CONFIG_HOME/shell/inputrc"
export INPUTRC="${XDG_CONFIG_HOME:-$HOME/.config}/shell/inputrc" export ZDOTDIR="$XDG_CONFIG_HOME/zsh"
export ZDOTDIR="${XDG_CONFIG_HOME:-$HOME/.config}/zsh" #export GNUPGHOME="$XDG_DATA_HOME/gnupg"
#export ALSA_CONFIG_PATH="$XDG_CONFIG_HOME/alsa/asoundrc" export WINEPREFIX="$XDG_DATA_HOME/wineprefixes/default"
#export GNUPGHOME="${XDG_DATA_HOME:-$HOME/.local/share}/gnupg" export KODI_DATA="$XDG_DATA_HOME/kodi"
export WINEPREFIX="${XDG_DATA_HOME:-$HOME/.local/share}/wineprefixes/default" export PASSWORD_STORE_DIR="$XDG_DATA_HOME/password-store"
export KODI_DATA="${XDG_DATA_HOME:-$HOME/.local/share}/kodi"
export PASSWORD_STORE_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/password-store"
export TMUX_TMPDIR="$XDG_RUNTIME_DIR" export TMUX_TMPDIR="$XDG_RUNTIME_DIR"
export ANDROID_SDK_HOME="${XDG_CONFIG_HOME:-$HOME/.config}/android" export ANDROID_SDK_HOME="$XDG_CONFIG_HOME/android"
export CARGO_HOME="${XDG_DATA_HOME:-$HOME/.local/share}/cargo" export CARGO_HOME="$XDG_DATA_HOME/cargo"
export GOPATH="${XDG_DATA_HOME:-$HOME/.local/share}/go" export GOPATH="$XDG_DATA_HOME/go"
export ANSIBLE_CONFIG="${XDG_CONFIG_HOME:-$HOME/.config}/ansible/ansible.cfg" export GOMODCACHE="$XDG_CACHE_HOME/go/mod"
export UNISON="${XDG_DATA_HOME:-$HOME/.local/share}/unison" export ANSIBLE_CONFIG="$XDG_CONFIG_HOME/ansible/ansible.cfg"
export HISTFILE="${XDG_DATA_HOME:-$HOME/.local/share}/history" export UNISON="$XDG_DATA_HOME/unison"
export WEECHAT_HOME="${XDG_CONFIG_HOME:-$HOME/.config}/weechat" export HISTFILE="$XDG_DATA_HOME/history"
export MBSYNCRC="${XDG_CONFIG_HOME:-$HOME/.config}/mbsync/config" export MBSYNCRC="$XDG_CONFIG_HOME/mbsync/config"
export ELECTRUMDIR="${XDG_DATA_HOME:-$HOME/.local/share}/electrum" export ELECTRUMDIR="$XDG_DATA_HOME/electrum"
export PYTHONSTARTUP="$XDG_CONFIG_HOME/python/pythonrc"
export SQLITE_HISTORY="$XDG_DATA_HOME/sqlite_history"
export NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME/npm/npmrc"
export RUSTUP_HOME="$XDG_DATA_HOME/rustup"
# Other program settings: # Other program settings:
export DICS="/usr/share/stardict/dic/" export DICS="/usr/share/stardict/dic/"
export SUDO_ASKPASS="$HOME/.local/bin/dmenupass" export SUDO_ASKPASS="$HOME/.local/bin/dmenupass"
export FZF_DEFAULT_OPTS="--layout=reverse --height 40%" export FZF_DEFAULT_OPTS="--layout=reverse --height 40%"
export LESS=-R export LESS="R"
export LESS_TERMCAP_mb="$(printf '%b' '')" export LESS_TERMCAP_mb="$(printf '%b' '')"
export LESS_TERMCAP_md="$(printf '%b' '')" export LESS_TERMCAP_md="$(printf '%b' '')"
export LESS_TERMCAP_me="$(printf '%b' '')" export LESS_TERMCAP_me="$(printf '%b' '')"
@ -59,31 +61,32 @@ export LESS_TERMCAP_se="$(printf '%b' '')"
export LESS_TERMCAP_us="$(printf '%b' '')" export LESS_TERMCAP_us="$(printf '%b' '')"
export LESS_TERMCAP_ue="$(printf '%b' '')" export LESS_TERMCAP_ue="$(printf '%b' '')"
export LESSOPEN="| /usr/bin/highlight -O ansi %s 2>/dev/null" export LESSOPEN="| /usr/bin/highlight -O ansi %s 2>/dev/null"
export QT_QPA_PLATFORMTHEME="gtk2" # Have QT use gtk2 theme. export QT_QPA_PLATFORMTHEME="gtk2" # Have QT use gtk2 theme.
export MOZ_USE_XINPUT2="1" # Mozilla smooth scrolling/touchpads. #export MOZ_USE_XINPUT2=1 # Mozilla smooth scrolling/touchpads.
export AWT_TOOLKIT="MToolkit wmname LG3D" #May have to install wmname export AWT_TOOLKIT="MToolkit wmname LG3D" # May have to install wmname
export _JAVA_AWT_WM_NONREPARENTING=1 # Fix for Java applications in dwm export GTK_IM_MODULE="fcitx"
export GTK_IM_MODULE=fcitx export QT_IM_MODULE="fcitx"
export QT_IM_MODULE=fcitx export XMODIFIERS=@im="fcitx"
export XMODIFIERS=@im=fcitx export SDL_IM_MODULE="fcitx"
export SDL_IM_MODULE=fcitx export GLFW_IM_MODULE="ibus"
export GLFW_IM_MODULE=ibus #export QT_STYLE_OVERRIDE=Materia-dark
#export QT_STYLE_OVERRIDE=adwaita-dark export GTK_THEME="Materia-dark"
export GTK_THEME=Materia:dark
#wayland #wayland
#export QT_QPA_PLATFORM=wayland #export QT_QPA_PLATFORM="wayland"
#export XDG_CURRENT_DESKTOP=river #export XDG_CURRENT_DESKTOP="river"
#export XDG_SESSION_DESKTOP=river #export XDG_SESSION_DESKTOP="river"
#export XDG_CURRENT_SESSION_TYPE=wayland #export XDG_CURRENT_SESSION_TYPE="wayland"
#export GDK_BACKEND="wayland,x11" #export GDK_BACKEND="wayland,x11"
export GDK_BACKEND="wayland" export GDK_BACKEND="wayland"
export MOZ_ENABLE_WAYLAND=1 #export MOZ_ENABLE_WAYLAND="1"
#export WLR_RENDERER=vulkan #export WLR_RENDERER="vulkan"
[ ! -f ${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc ] && setsid shortcuts >/dev/null 2>&1
if [ -z $DISPLAY ] && [ "$(tty)" = "/dev/tty1" ]; then if [ -z $DISPLAY ] && [ "$(tty)" = "/dev/tty1" ]; then
export WINDOW_MANAGER=sway
exec /usr/bin/sway exec /usr/bin/sway
fi fi
if [ -z $DISPLAY ] && [ "$(tty)" = "/dev/tty3" ]; then
export WINDOW_MANAGER=river
exec /usr/local/bin/river
fi

View File

@ -39,17 +39,13 @@ exec --no-startup-id kanshi
exec mpd exec mpd
# xresources (nsxiv theme, and other programs) # xresources (nsxiv theme, and other programs)
exec xrdb $HOME/.config/x11/xresources exec sleep 5 && xrdb -load $HOME/.config/x11/xresources
# Syncthing (sync daemon) # Syncthing (sync daemon)
exec syncthing --no-browser exec syncthing --no-browser
# polkit # polkit
exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 exec --no-startup-id /usr/libexec/polkit-gnome-authentication-agent-1
# emacs daemon (locally built)
exec /usr/local/bin/emacs --daemon
exec swaymsg "workspace 1; exec sleep 10 && emacsclient -c;"
# sworkstyle # sworkstyle
#exec sworkstyle &> /tmp/sworkstyle.log #exec sworkstyle &> /tmp/sworkstyle.log
@ -60,6 +56,11 @@ exec swaymsg "workspace 1; exec sleep 10 && emacsclient -c;"
#assign [app_id="dino"] 9 #assign [app_id="dino"] 9
#assign [app_id="deluge"] 10 #assign [app_id="deluge"] 10
#for_window [app_id=".*"] floating enable
for_window [app_id="uxnemu"] floating enable
for_window [app_id="uxnemu"] border pixel 0
#exec_always autotiling #exec_always autotiling
exec systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway exec systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway
exec dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway exec dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway
@ -67,26 +68,33 @@ exec dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DE
# behavior # behavior
focus_follows_mouse no focus_follows_mouse no
hide_edge_borders smart
workspace_auto_back_and_forth no workspace_auto_back_and_forth no
show_marks yes show_marks yes
# looks # looks
font pango: monospace 8 font pango: monospace 8
gaps inner 10 gaps inner 25
default_border pixel 2 default_border pixel 2
hide_edge_borders smart
bindsym $mod+Control+y border toggle bindsym $mod+Control+y border toggle
# swayfx specific # swayfx specific
blur enable blur enable
blur_xray enable blur_xray enable
blur_passes 2 blur_passes 1
blur_radius 3 # 2
blur_radius 1
# 3
#corner_radius 20 #corner_radius 20
shadows enable shadows disable
# 333333
set $cl_high #333333 set $cl_high #333333
set $cl_indi #333333 set $cl_indi #333333
set $cl_back #222222 set $cl_back #222222
#set $cl_high #000000
#set $cl_indi #000000
#set $cl_back #999999
set $cl_fore #d9d8d8 set $cl_fore #d9d8d8
set $cl_urge #FF0000 set $cl_urge #FF0000
@ -95,12 +103,12 @@ client.focused_inactive $cl_back $cl_back $cl_fore $cl_back $cl_back
client.unfocused $cl_back $cl_back $cl_fore $cl_back $cl_back client.unfocused $cl_back $cl_back $cl_fore $cl_back $cl_back
client.urgent $cl_urge $cl_urge $cl_fore $cl_urge $cl_urge client.urgent $cl_urge $cl_urge $cl_fore $cl_urge $cl_urge
set $gnome-schema org.gnome.desktop.interface #set $gnome-schema org.gnome.desktop.interface
exec_always { # exec_always {
gsettings set $gnome-schema gtk-theme 'Materia-dark' # gsettings set $gnome-schema gtk-theme 'Materia-dark'
gsettings set $gnome-schema icon-theme 'Papirus-Dark' # gsettings set $gnome-schema icon-theme 'Papirus-Dark'
gsettings set $gnome-schema color-scheme 'prefer-dark' # gsettings set $gnome-schema color-scheme 'prefer-dark'
} #}
### Idle configuration ### Idle configuration
@ -163,8 +171,8 @@ bindsym $mod+u exec screenshot.sh active
bindsym $mod+Shift+u exec screenshot.sh window bindsym $mod+Shift+u exec screenshot.sh window
# app switcher # app switcher
bindsym $mod+Tab exec sway-select-window #bindsym $mod+Tab exec sway-select-window
bindsym $mod+Shift+Tab exec ss.sh bindsym $mod+Tab exec ss.sh
### programs ### programs
@ -172,7 +180,9 @@ bindsym $mod+Shift+Tab exec ss.sh
bindsym $mod+w exec $browser bindsym $mod+w exec $browser
# agenda # agenda
bindsym $mod+c exec emacsclient -c --eval '(org-agenda-list)' || emacs -c --eval '(org-agenda-list)' bindsym $mod+c exec emacsclient -c -a '' --eval '(org-agenda-list)'
# org-capture
bindsym $mod+Shift+c exec ~/.emacs.d/bin/org-capture bindsym $mod+Shift+c exec ~/.emacs.d/bin/org-capture
# newsboat (rss) # newsboat (rss)
@ -185,14 +195,17 @@ bindsym $mod+t exec swaync-client -t
bindsym $mod+r exec $term -e lf bindsym $mod+r exec $term -e lf
# emacs # emacs
bindsym $mod+e exec emacsclient -c || emacs bindsym $mod+e exec emacsclient -c -a ''
# mail # mail
#bindsym $mod+e exec thunderbird-wayland #bindsym $mod+e exec thunderbird-wayland
# bookmarks # bookmarks
bindsym $mod+b exec emacsclient -c ~/notebook/bookmarks.org || emacs -c ~/notebook/bookmarks.org # open
bindsym $mod+b exec emacsclient -c -a '' ~/notebook/bookmarks.org
# open bookmarks
bindsym $mod+shift+b exec bookmark bindsym $mod+shift+b exec bookmark
# insert
bindsym $mod+Insert exec wtype "$(grep -v '^#' ~/notebook/bookmarks.org | dmenu -l 50 | cut -d' ' -f1)" bindsym $mod+Insert exec wtype "$(grep -v '^#' ~/notebook/bookmarks.org | dmenu -l 50 | cut -d' ' -f1)"
# kaomiji? # kaomiji?
@ -351,7 +364,7 @@ mode "resize" {
# status bar # status bar
#include $HOME/.config/sway/bar #include $HOME/.config/sway/bar
exec_always killall waybar exec_always killall waybar
exec_always sleep 2 && waybar exec_always sleep 3 && waybar
### special keys ### special keys
@ -397,4 +410,4 @@ bindsym $mod+m exec $term -e ncmpcpp
bindsym $mod+Shift+s exec ~/.config/sway/scripts/sway-select-window bindsym $mod+Shift+s exec ~/.config/sway/scripts/sway-select-window
include /etc/sway/config.d/* include /etc/sway/config.d/*
include ~/syncthing/default/config.d/sway/* include ~/.config/sway/priv

View File

@ -0,0 +1,78 @@
{
"$schema": "/etc/xdg/swaync/configSchema.json",
"positionX": "right",
"positionY": "top",
"layer": "overlay",
"control-center-layer": "overlay",
"layer-shell": true,
"cssPriority": "application",
"control-center-margin-top": 0,
"control-center-margin-bottom": 0,
"control-center-margin-right": 0,
"control-center-margin-left": 0,
"notification-2fa-action": true,
"notification-inline-replies": false,
"notification-icon-size": 64,
"notification-body-image-height": 100,
"notification-body-image-width": 200,
"timeout": 10,
"timeout-low": 5,
"timeout-critical": 0,
"fit-to-screen": true,
"control-center-width": 500,
"control-center-height": 600,
"notification-window-width": 500,
"keyboard-shortcuts": true,
"image-visibility": "when-available",
"transition-time": 200,
"hide-on-clear": false,
"hide-on-action": true,
"script-fail-notify": true,
"scripts": {
"example-script": {
"exec": "echo 'Do something...'",
"urgency": "Normal"
},
"example-action-script": {
"exec": "echo 'Do something actionable!'",
"urgency": "Normal",
"run-on": "action"
}
},
"notification-visibility": {
"example-name": {
"state": "muted",
"urgency": "Low",
"app-name": "Spotify"
}
},
"widgets": [
"inhibitors",
"title",
"dnd",
"notifications"
],
"widget-config": {
"inhibitors": {
"text": "Inhibitors",
"button-text": "Clear All",
"clear-all-button": true
},
"title": {
"text": "Notifications",
"clear-all-button": true,
"button-text": "Clear All"
},
"dnd": {
"text": "Do Not Disturb"
},
"label": {
"max-lines": 5,
"text": "Label Text"
},
"mpris": {
"image-size": 96,
"image-radius": 12
}
}
}

View File

@ -0,0 +1,295 @@
/*#303446*/
/*#222222*/
@define-color main-bg #222222;
/*#414559*/
/*#333333*/
@define-color box-fg #222222;
/*#c6d0f5*/
/*#ffffff*/
/*#c5c8c6*/
@define-color text-color #c5c8c6;
/*#a5adce*/
/*#ffffff*/
/*#8c8c8c*/
@define-color text-color-inbox #8c8c8c;
/*#e78284*/
@define-color close-button-bg #e78284;
/*#51576d*/
/*#555555*/
@define-color border-color #333333;
/*#51576d*/
/*#222222*/
@define-color button-fg #333333;
/*#737994*/
@define-color button-border #555555;
* {
all: unset;
font-size: 14px;
font-family: "Ubuntu Nerd Font";
transition: 200ms;
}
.floating-notifications.background .notification-row .notification-background {
box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.8), inset 0 0 0 1px @box-fg;
border-radius: 12.6px;
margin: 18px;
background-color: @main-bg;
color: @text-color;
padding: 0;
}
.floating-notifications.background .notification-row .notification-background .notification {
padding: 7px;
border-radius: 12.6px;
}
.floating-notifications.background .notification-row .notification-background .notification.critical {
box-shadow: inset 0 0 7px 0 @close-button-bg;
}
.floating-notifications.background .notification-row .notification-background .notification .notification-content {
margin: 7px;
}
.floating-notifications.background .notification-row .notification-background .notification .notification-content .summary {
color: @text-color;
}
.floating-notifications.background .notification-row .notification-background .notification .notification-content .time {
color: @text-color-inbox;
}
.floating-notifications.background .notification-row .notification-background .notification .notification-content .body {
color: @text-color;
}
.floating-notifications.background .notification-row .notification-background .notification > *:last-child > * {
min-height: 3.4em;
}
.floating-notifications.background .notification-row .notification-background .notification > *:last-child > * .notification-action {
border-radius: 7px;
color: @text-color;
background-color: @box-fg;
box-shadow: inset 0 0 0 1px @border-color;
margin: 7px;
}
.floating-notifications.background .notification-row .notification-background .notification > *:last-child > * .notification-action:hover {
box-shadow: inset 0 0 0 1px @border-color;
background-color: @box-fg;
color: @text-color;
}
.floating-notifications.background .notification-row .notification-background .notification > *:last-child > * .notification-action:active {
box-shadow: inset 0 0 0 1px @border-color;
background-color: #85c1dc;
color: @text-color;
}
.floating-notifications.background .notification-row .notification-background .close-button {
margin: 7px;
padding: 2px;
border-radius: 6.3px;
color: @main-bg;
background-color: @close-button-bg;
}
.floating-notifications.background .notification-row .notification-background .close-button:hover {
background-color: #ea999c;
color: @main-bg;
}
.floating-notifications.background .notification-row .notification-background .close-button:active {
background-color: @close-button-bg;
color: @main-bg;
}
.control-center {
box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.8), inset 0 0 0 1px @box-fg;
border-radius: 12.6px;
margin: 18px;
background-color: @main-bg;
color: @text-color;
padding: 14px;
}
.control-center .widget-title {
color: @text-color;
font-size: 1.3em;
}
.control-center .widget-title button {
border-radius: 7px;
color: @text-color;
background-color: @box-fg;
box-shadow: inset 0 0 0 1px @border-color;
padding: 8px;
}
.control-center .widget-title button:hover {
box-shadow: inset 0 0 0 1px @border-color;
background-color: #626880;
color: @text-color;
}
.control-center .widget-title button:active {
box-shadow: inset 0 0 0 1px @border-color;
background-color: #85c1dc;
color: @main-bg;
}
.control-center .notification-row .notification-background {
border-radius: 7px;
color: @text-color;
background-color: @box-fg;
box-shadow: inset 0 0 0 1px @border-color;
margin-top: 14px;
}
.control-center .notification-row .notification-background .notification {
padding: 7px;
border-radius: 7px;
}
.control-center .notification-row .notification-background .notification.critical {
box-shadow: inset 0 0 7px 0 @close-button-bg;
}
.control-center .notification-row .notification-background .notification .notification-content {
margin: 7px;
}
.control-center .notification-row .notification-background .notification .notification-content .summary {
color: @text-color;
}
.control-center .notification-row .notification-background .notification .notification-content .time {
color: @text-color-inbox;
}
.control-center .notification-row .notification-background .notification .notification-content .body {
color: @text-color;
}
.control-center .notification-row .notification-background .notification > *:last-child > * {
min-height: 3.4em;
}
.control-center .notification-row .notification-background .notification > *:last-child > * .notification-action {
border-radius: 7px;
color: @text-color;
background-color: #232634;
box-shadow: inset 0 0 0 1px @border-color;
margin: 7px;
}
.control-center .notification-row .notification-background .notification > *:last-child > * .notification-action:hover {
box-shadow: inset 0 0 0 1px @border-color;
background-color: @box-fg;
color: @text-color;
}
.control-center .notification-row .notification-background .notification > *:last-child > * .notification-action:active {
box-shadow: inset 0 0 0 1px @border-color;
background-color: #85c1dc;
color: @text-color;
}
.control-center .notification-row .notification-background .close-button {
margin: 7px;
padding: 2px;
border-radius: 6.3px;
color: @main-bg;
background-color: #ea999c;
}
.control-center .notification-row .notification-background .close-button:hover {
background-color: @close-button-bg;
color: @main-bg;
}
.control-center .notification-row .notification-background .close-button:active {
background-color: @close-button-bg;
color: @main-bg;
}
.control-center .notification-row .notification-background:hover {
box-shadow: inset 0 0 0 1px @border-color;
background-color: #838ba7;
color: @text-color;
}
.control-center .notification-row .notification-background:active {
box-shadow: inset 0 0 0 1px @border-color;
background-color: #85c1dc;
color: @text-color;
}
progressbar,
progress,
trough {
border-radius: 12.6px;
}
progressbar {
box-shadow: inset 0 0 0 1px @border-color;
}
.notification.critical progress {
background-color: @close-button-bg;
}
.notification.low progress,
.notification.normal progress {
background-color: #8caaee;
}
trough {
background-color: @box-fg;
}
.control-center trough {
background-color: @button-fg;
}
.control-center-dnd {
margin-top: 5px;
border-radius: 8px;
background: @box-fg;
border: 1px solid @border-color;
box-shadow: none;
}
.control-center-dnd:checked {
background: @box-fg;
}
.control-center-dnd slider {
background: @button-fg;
border-radius: 8px;
}
.widget-dnd {
margin: 0px;
font-size: 1.1rem;
}
.widget-dnd > switch {
font-size: initial;
border-radius: 8px;
background: @box-fg;
border: 1px solid @border-color;
box-shadow: none;
}
.widget-dnd > switch:checked {
background: @box-fg;
}
.widget-dnd > switch slider {
background: @button-fg;
border-radius: 8px;
border: 1px solid @button-border;
}

View File

@ -0,0 +1,361 @@
/*
* vim: ft=less
*/
@define-color cc-bg rgba(0, 0, 0, 0.7);
@define-color noti-border-color rgba(255, 255, 255, 0.15);
@define-color noti-bg rgb(48, 48, 48);
@define-color noti-bg-darker rgb(38, 38, 38);
@define-color noti-bg-hover rgb(56, 56, 56);
@define-color noti-bg-focus rgba(68, 68, 68, 0.6);
@define-color noti-close-bg rgba(255, 255, 255, 0.1);
@define-color noti-close-bg-hover rgba(255, 255, 255, 0.15);
@define-color text-color rgb(255, 255, 255);
@define-color text-color-disabled rgb(150, 150, 150);
@define-color bg-selected rgb(0, 128, 255);
.notification-row {
outline: none;
}
.notification-row:focus,
.notification-row:hover {
background: @noti-bg-focus;
}
.notification {
border-radius: 12px;
margin: 6px 12px;
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.3), 0 1px 3px 1px rgba(0, 0, 0, 0.7),
0 2px 6px 2px rgba(0, 0, 0, 0.3);
padding: 0;
}
/* Uncomment to enable specific urgency colors
.low {
background: yellow;
padding: 6px;
border-radius: 12px;
}
.normal {
background: green;
padding: 6px;
border-radius: 12px;
}
.critical {
background: red;
padding: 6px;
border-radius: 12px;
}
*/
.notification-content {
background: transparent;
padding: 6px;
border-radius: 12px;
}
.close-button {
background: @noti-close-bg;
color: @text-color;
text-shadow: none;
padding: 0;
border-radius: 100%;
margin-top: 10px;
margin-right: 16px;
box-shadow: none;
border: none;
min-width: 24px;
min-height: 24px;
}
.close-button:hover {
box-shadow: none;
background: @noti-close-bg-hover;
transition: all 0.15s ease-in-out;
border: none;
}
.notification-default-action,
.notification-action {
padding: 4px;
margin: 0;
box-shadow: none;
background: @noti-bg;
border: 1px solid @noti-border-color;
color: @text-color;
transition: all 0.15s ease-in-out;
}
.notification-default-action:hover,
.notification-action:hover {
-gtk-icon-effect: none;
background: @noti-bg-hover;
}
.notification-default-action {
border-radius: 12px;
}
/* When alternative actions are visible */
.notification-default-action:not(:only-child) {
border-bottom-left-radius: 0px;
border-bottom-right-radius: 0px;
}
.notification-action {
border-radius: 0px;
border-top: none;
border-right: none;
}
/* add bottom border radius to eliminate clipping */
.notification-action:first-child {
border-bottom-left-radius: 10px;
}
.notification-action:last-child {
border-bottom-right-radius: 10px;
border-right: 1px solid @noti-border-color;
}
.inline-reply {
margin-top: 8px;
}
.inline-reply-entry {
background: @noti-bg-darker;
color: @text-color;
caret-color: @text-color;
border: 1px solid @noti-border-color;
border-radius: 12px;
}
.inline-reply-button {
margin-left: 4px;
background: @noti-bg;
border: 1px solid @noti-border-color;
border-radius: 12px;
color: @text-color;
}
.inline-reply-button:disabled {
background: initial;
color: @text-color-disabled;
border: 1px solid transparent;
}
.inline-reply-button:hover {
background: @noti-bg-hover;
}
.image {
}
.body-image {
margin-top: 6px;
background-color: white;
border-radius: 12px;
}
.summary {
font-size: 16px;
font-weight: bold;
background: transparent;
color: @text-color;
text-shadow: none;
}
.time {
font-size: 16px;
font-weight: bold;
background: transparent;
color: @text-color;
text-shadow: none;
margin-right: 18px;
}
.body {
font-size: 15px;
font-weight: normal;
background: transparent;
color: @text-color;
text-shadow: none;
}
.control-center {
background: @cc-bg;
}
.control-center-list {
background: transparent;
}
.control-center-list-placeholder {
opacity: 0.5;
}
.floating-notifications {
background: transparent;
}
/* Window behind control center and on all other monitors */
.blank-window {
background: alpha(black, 0.25);
}
/*** Widgets ***/
/* Title widget */
.widget-title {
margin: 8px;
font-size: 1.5rem;
}
.widget-title > button {
font-size: initial;
color: @text-color;
text-shadow: none;
background: @noti-bg;
border: 1px solid @noti-border-color;
box-shadow: none;
border-radius: 12px;
}
.widget-title > button:hover {
background: @noti-bg-hover;
}
/* DND widget */
.widget-dnd {
margin: 8px;
font-size: 1.1rem;
}
.widget-dnd > switch {
font-size: initial;
border-radius: 12px;
background: @noti-bg;
border: 1px solid @noti-border-color;
box-shadow: none;
}
.widget-dnd > switch:checked {
background: @bg-selected;
}
.widget-dnd > switch slider {
background: @noti-bg-hover;
border-radius: 12px;
}
/* Label widget */
.widget-label {
margin: 8px;
}
.widget-label > label {
font-size: 1.1rem;
}
/* Mpris widget */
.widget-mpris {
/* The parent to all players */
}
.widget-mpris-player {
padding: 8px;
margin: 8px;
}
.widget-mpris-title {
font-weight: bold;
font-size: 1.25rem;
}
.widget-mpris-subtitle {
font-size: 1.1rem;
}
/* Buttons widget */
.widget-buttons-grid {
padding: 8px;
margin: 8px;
border-radius: 12px;
background-color: @noti-bg;
}
.widget-buttons-grid>flowbox>flowboxchild>button{
background: @noti-bg;
border-radius: 12px;
}
.widget-buttons-grid>flowbox>flowboxchild>button:hover {
background: @noti-bg-hover;
}
/* Menubar widget */
.widget-menubar>box>.menu-button-bar>button {
border: none;
background: transparent;
}
/* .AnyName { Name defined in config after #
background-color: @noti-bg;
padding: 8px;
margin: 8px;
border-radius: 12px;
}
.AnyName>button {
background: transparent;
border: none;
}
.AnyName>button:hover {
background-color: @noti-bg-hover;
} */
.topbar-buttons>button { /* Name defined in config after # */
border: none;
background: transparent;
}
/* Volume widget */
.widget-volume {
background-color: @noti-bg;
padding: 8px;
margin: 8px;
border-radius: 12px;
}
.widget-volume>box>button {
background: transparent;
border: none;
}
.per-app-volume {
background-color: @noti-bg-alt;
padding: 4px 8px 8px 8px;
margin: 0px 8px 8px 8px;
border-radius: 12px
}
/* Backlight widget */
.widget-backlight {
background-color: @noti-bg;
padding: 8px;
margin: 8px;
border-radius: 12px;
}
/* Title widget */
.widget-inhibitors {
margin: 8px;
font-size: 1.5rem;
}
.widget-inhibitors > button {
font-size: initial;
color: @text-color;
text-shadow: none;
background: @noti-bg;
border: 1px solid @noti-border-color;
box-shadow: none;
border-radius: 12px;
}
.widget-inhibitors > button:hover {
background: @noti-bg-hover;
}

View File

@ -0,0 +1,370 @@
/*
* vim: ft=less
*/
/*@define-color cc-bg rgba(0, 0, 0, 0.7);*/
@define-color cc-bg #161616;
@define-color noti-border-color rgba(255, 255, 255, 0.15);
/*@define-color noti-bg rgb(48, 48, 48);*/
@define-color noti-bg rgb(0, 0, 0);
@define-color noti-bg-darker rgb(38, 38, 38);
@define-color noti-bg-hover rgb(56, 56, 56);
/*@define-color noti-bg-focus rgba(68, 68, 68, 0.6);*/
@define-color noti-bg-focus rgba(33, 33, 33, 0.6);
@define-color noti-close-bg rgba(255, 255, 255, 0.1);
@define-color noti-close-bg-hover rgba(255, 255, 255, 0.15);
@define-color text-color rgb(255, 255, 255);
@define-color text-color-disabled rgb(150, 150, 150);
@define-color bg-selected rgb(0, 128, 255);
.notification-row {
outline: none;
}
.notification-row:focus,
.notification-row:hover {
background: @noti-bg-focus;
}
.notification {
/*border-radius: 12px;*/
border-radius: 0px;
/*margin: 6px 12px;*/
margin: 6px 12px;
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.3), 0 1px 3px 1px rgba(0, 0, 0, 0.7),
0 2px 6px 2px rgba(0, 0, 0, 0.3);
padding: 0;
}
/* Uncomment to enable specific urgency colors
.low {
background: yellow;
padding: 6px;
border-radius: 12px;
}
.normal {
background: green;
padding: 6px;
border-radius: 12px;
}
.critical {
background: red;
padding: 6px;
border-radius: 12px;
}
*/
.notification-content {
background: transparent;
padding: 6px;
/*border-radius:12px;*/
border-radius: 0px;
}
.close-button {
background: @noti-close-bg;
color: @text-color;
text-shadow: none;
padding: 0;
border-radius: 100%;
margin-top: 10px;
margin-right: 16px;
box-shadow: none;
border: none;
min-width: 24px;
min-height: 24px;
}
.close-button:hover {
box-shadow: none;
background: @noti-close-bg-hover;
transition: all 0.15s ease-in-out;
border: none;
}
.notification-default-action,
.notification-action {
padding: 4px;
margin: 0;
box-shadow: none;
background: @noti-bg;
border: 1px solid @noti-border-color;
color: @text-color;
transition: all 0.15s ease-in-out;
}
.notification-default-action:hover,
.notification-action:hover {
-gtk-icon-effect: none;
background: @noti-bg-hover;
}
.notification-default-action {
border-radius: 0px;
}
/* When alternative actions are visible */
.notification-default-action:not(:only-child) {
border-bottom-left-radius: 0px;
border-bottom-right-radius: 0px;
}
.notification-action {
border-radius: 0px;
border-top: none;
border-right: none;
}
/* add bottom border radius to eliminate clipping */
.notification-action:first-child {
/*border-bottom-left-radius: 10px;*/
border-bottom-left-radius: 0px;
}
.notification-action:last-child {
/*border-bottom-right-radius: 10px;*/
border-bottom-right-radius: 0px;
padding-bottom: 1px;
border-right: 1px solid @noti-border-color;
}
.inline-reply {
margin-top: 8px;
}
.inline-reply-entry {
background: @noti-bg-darker;
color: @text-color;
caret-color: @text-color;
border: 1px solid @noti-border-color;
border-radius: 0px;
}
.inline-reply-button {
margin-left: 4px;
background: @noti-bg;
border: 1px solid @noti-border-color;
border-radius: 0px;
color: @text-color;
}
.inline-reply-button:disabled {
background: initial;
color: @text-color-disabled;
border: 1px solid transparent;
}
.inline-reply-button:hover {
background: @noti-bg-hover;
}
.image {
}
.body-image {
margin-top: 6px;
background-color: white;
border-radius: 0px;
}
.summary {
font-size: 16px;
font-weight: bold;
background: transparent;
color: @text-color;
text-shadow: none;
}
.time {
font-size: 16px;
font-weight: bold;
background: transparent;
color: @text-color;
text-shadow: none;
margin-right: 18px;
}
.body {
font-size: 15px;
font-weight: normal;
background: transparent;
color: @text-color;
text-shadow: none;
}
.control-center {
background: @cc-bg;
}
.control-center-list {
background: transparent;
}
.control-center-list-placeholder {
opacity: 0.5;
}
.floating-notifications {
background: transparent;
}
/* Window behind control center and on all other monitors */
.blank-window {
background: alpha(black, 0.25);
}
/*** Widgets ***/
/* Title widget */
.widget-title {
margin: 8px;
font-size: 1.1rem;
}
.widget-title > button {
font-size: initial;
color: @text-color;
text-shadow: none;
background: @noti-bg;
border: 1px solid @noti-border-color;
box-shadow: none;
border-radius: 12px;
}
.widget-title > button:hover {
background: @noti-bg-hover;
}
/* DND widget */
.widget-dnd {
margin: 8px;
font-size: 1.1rem;
}
.widget-dnd > switch {
font-size: initial;
border-radius: 12px;
background: @noti-bg;
border: 1px solid @noti-border-color;
box-shadow: none;
}
.widget-dnd > switch:checked {
background: @bg-selected;
}
.widget-dnd > switch slider {
background: @noti-bg-hover;
border-radius: 12px;
}
/* Label widget */
.widget-label {
margin: 8px;
}
.widget-label > label {
font-size: 1.1rem;
}
/* Mpris widget */
.widget-mpris {
/* The parent to all players */
}
.widget-mpris-player {
padding: 8px;
margin: 8px;
}
.widget-mpris-title {
font-weight: bold;
font-size: 1.25rem;
}
.widget-mpris-subtitle {
font-size: 1.1rem;
}
/* Buttons widget */
.widget-buttons-grid {
padding: 8px;
margin: 8px;
border-radius: 0px;
background-color: @noti-bg;
}
.widget-buttons-grid>flowbox>flowboxchild>button{
background: @noti-bg;
border-radius: 0px;
}
.widget-buttons-grid>flowbox>flowboxchild>button:hover {
background: @noti-bg-hover;
}
/* Menubar widget */
.widget-menubar>box>.menu-button-bar>button {
border: none;
background: transparent;
}
/* .AnyName { Name defined in config after #
background-color: @noti-bg;
padding: 8px;
margin: 8px;
border-radius:12px;
}
.AnyName>button {
background: transparent;
border: none;
}
.AnyName>button:hover {
background-color: @noti-bg-hover;
} */
.topbar-buttons>button { /* Name defined in config after # */
border: none;
background: transparent;
}
/* Volume widget */
.widget-volume {
background-color: @noti-bg;
padding: 8px;
margin: 8px;
border-radius: 0px;
}
.widget-volume>box>button {
background: transparent;
border: none;
}
.per-app-volume {
background-color: @noti-bg-alt;
padding: 4px 8px 8px 8px;
margin: 0px 8px 8px 8px;
border-radius: 0px
}
/* Backlight widget */
.widget-backlight {
background-color: @noti-bg;
padding: 8px;
margin: 8px;
border-radius: 0px;
}
/* Title widget */
.widget-inhibitors {
margin: 8px;
font-size: 1.5rem;
}
.widget-inhibitors > button {
font-size: initial;
color: @text-color;
text-shadow: none;
background: @noti-bg;
border: 1px solid @noti-border-color;
box-shadow: none;
border-radius: 0px;
}
.widget-inhibitors > button:hover {
background: @noti-bg-hover;
}

View File

@ -0,0 +1,361 @@
/*
* vim: ft=less
*/
@define-color cc-bg rgba(0, 0, 0, 0.7);
@define-color noti-border-color rgba(255, 255, 255, 0.15);
@define-color noti-bg rgb(48, 48, 48);
@define-color noti-bg-darker rgb(38, 38, 38);
@define-color noti-bg-hover rgb(56, 56, 56);
@define-color noti-bg-focus rgba(68, 68, 68, 0.6);
@define-color noti-close-bg rgba(255, 255, 255, 0.1);
@define-color noti-close-bg-hover rgba(255, 255, 255, 0.15);
@define-color text-color rgb(255, 255, 255);
@define-color text-color-disabled rgb(150, 150, 150);
@define-color bg-selected rgb(0, 128, 255);
.notification-row {
outline: none;
}
.notification-row:focus,
.notification-row:hover {
background: @noti-bg-focus;
}
.notification {
border-radius: 12px;
margin: 6px 12px;
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.3), 0 1px 3px 1px rgba(0, 0, 0, 0.7),
0 2px 6px 2px rgba(0, 0, 0, 0.3);
padding: 0;
}
/* Uncomment to enable specific urgency colors
.low {
background: yellow;
padding: 6px;
border-radius: 12px;
}
.normal {
background: green;
padding: 6px;
border-radius: 12px;
}
.critical {
background: red;
padding: 6px;
border-radius: 12px;
}
*/
.notification-content {
background: transparent;
padding: 6px;
border-radius: 12px;
}
.close-button {
background: @noti-close-bg;
color: @text-color;
text-shadow: none;
padding: 0;
border-radius: 100%;
margin-top: 10px;
margin-right: 16px;
box-shadow: none;
border: none;
min-width: 24px;
min-height: 24px;
}
.close-button:hover {
box-shadow: none;
background: @noti-close-bg-hover;
transition: all 0.15s ease-in-out;
border: none;
}
.notification-default-action,
.notification-action {
padding: 4px;
margin: 0;
box-shadow: none;
background: @noti-bg;
border: 1px solid @noti-border-color;
color: @text-color;
transition: all 0.15s ease-in-out;
}
.notification-default-action:hover,
.notification-action:hover {
-gtk-icon-effect: none;
background: @noti-bg-hover;
}
.notification-default-action {
border-radius: 12px;
}
/* When alternative actions are visible */
.notification-default-action:not(:only-child) {
border-bottom-left-radius: 0px;
border-bottom-right-radius: 0px;
}
.notification-action {
border-radius: 0px;
border-top: none;
border-right: none;
}
/* add bottom border radius to eliminate clipping */
.notification-action:first-child {
border-bottom-left-radius: 10px;
}
.notification-action:last-child {
border-bottom-right-radius: 10px;
border-right: 1px solid @noti-border-color;
}
.inline-reply {
margin-top: 8px;
}
.inline-reply-entry {
background: @noti-bg-darker;
color: @text-color;
caret-color: @text-color;
border: 1px solid @noti-border-color;
border-radius: 12px;
}
.inline-reply-button {
margin-left: 4px;
background: @noti-bg;
border: 1px solid @noti-border-color;
border-radius: 12px;
color: @text-color;
}
.inline-reply-button:disabled {
background: initial;
color: @text-color-disabled;
border: 1px solid transparent;
}
.inline-reply-button:hover {
background: @noti-bg-hover;
}
.image {
}
.body-image {
margin-top: 6px;
background-color: white;
border-radius: 12px;
}
.summary {
font-size: 16px;
font-weight: bold;
background: transparent;
color: @text-color;
text-shadow: none;
}
.time {
font-size: 16px;
font-weight: bold;
background: transparent;
color: @text-color;
text-shadow: none;
margin-right: 18px;
}
.body {
font-size: 15px;
font-weight: normal;
background: transparent;
color: @text-color;
text-shadow: none;
}
.control-center {
background: @cc-bg;
}
.control-center-list {
background: transparent;
}
.control-center-list-placeholder {
opacity: 0.5;
}
.floating-notifications {
background: transparent;
}
/* Window behind control center and on all other monitors */
.blank-window {
background: alpha(black, 0.25);
}
/*** Widgets ***/
/* Title widget */
.widget-title {
margin: 8px;
font-size: 1.5rem;
}
.widget-title > button {
font-size: initial;
color: @text-color;
text-shadow: none;
background: @noti-bg;
border: 1px solid @noti-border-color;
box-shadow: none;
border-radius: 12px;
}
.widget-title > button:hover {
background: @noti-bg-hover;
}
/* DND widget */
.widget-dnd {
margin: 8px;
font-size: 1.1rem;
}
.widget-dnd > switch {
font-size: initial;
border-radius: 12px;
background: @noti-bg;
border: 1px solid @noti-border-color;
box-shadow: none;
}
.widget-dnd > switch:checked {
background: @bg-selected;
}
.widget-dnd > switch slider {
background: @noti-bg-hover;
border-radius: 12px;
}
/* Label widget */
.widget-label {
margin: 8px;
}
.widget-label > label {
font-size: 1.1rem;
}
/* Mpris widget */
.widget-mpris {
/* The parent to all players */
}
.widget-mpris-player {
padding: 8px;
margin: 8px;
}
.widget-mpris-title {
font-weight: bold;
font-size: 1.25rem;
}
.widget-mpris-subtitle {
font-size: 1.1rem;
}
/* Buttons widget */
.widget-buttons-grid {
padding: 8px;
margin: 8px;
border-radius: 12px;
background-color: @noti-bg;
}
.widget-buttons-grid>flowbox>flowboxchild>button{
background: @noti-bg;
border-radius: 12px;
}
.widget-buttons-grid>flowbox>flowboxchild>button:hover {
background: @noti-bg-hover;
}
/* Menubar widget */
.widget-menubar>box>.menu-button-bar>button {
border: none;
background: transparent;
}
/* .AnyName { Name defined in config after #
background-color: @noti-bg;
padding: 8px;
margin: 8px;
border-radius: 12px;
}
.AnyName>button {
background: transparent;
border: none;
}
.AnyName>button:hover {
background-color: @noti-bg-hover;
} */
.topbar-buttons>button { /* Name defined in config after # */
border: none;
background: transparent;
}
/* Volume widget */
.widget-volume {
background-color: @noti-bg;
padding: 8px;
margin: 8px;
border-radius: 12px;
}
.widget-volume>box>button {
background: transparent;
border: none;
}
.per-app-volume {
background-color: @noti-bg-alt;
padding: 4px 8px 8px 8px;
margin: 0px 8px 8px 8px;
border-radius: 12px
}
/* Backlight widget */
.widget-backlight {
background-color: @noti-bg;
padding: 8px;
margin: 8px;
border-radius: 12px;
}
/* Title widget */
.widget-inhibitors {
margin: 8px;
font-size: 1.5rem;
}
.widget-inhibitors > button {
font-size: initial;
color: @text-color;
text-shadow: none;
background: @noti-bg;
border: 1px solid @noti-border-color;
box-shadow: none;
border-radius: 12px;
}
.widget-inhibitors > button:hover {
background: @noti-bg-hover;
}

View File

@ -0,0 +1,270 @@
* {
all: unset;
font-size: 14px;
font-family: "Ubuntu Nerd Font";
transition: 200ms;
}
.floating-notifications.background .notification-row .notification-background {
box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.8), inset 0 0 0 1px #ccd0da;
border-radius: 12.6px;
margin: 18px;
background-color: #eff1f5;
color: #4c4f69;
padding: 0;
}
.floating-notifications.background .notification-row .notification-background .notification {
padding: 7px;
border-radius: 12.6px;
}
.floating-notifications.background .notification-row .notification-background .notification.critical {
box-shadow: inset 0 0 7px 0 #d20f39;
}
.floating-notifications.background .notification-row .notification-background .notification .notification-content {
margin: 7px;
}
.floating-notifications.background .notification-row .notification-background .notification .notification-content .summary {
color: #4c4f69;
}
.floating-notifications.background .notification-row .notification-background .notification .notification-content .time {
color: #6c6f85;
}
.floating-notifications.background .notification-row .notification-background .notification .notification-content .body {
color: #4c4f69;
}
.floating-notifications.background .notification-row .notification-background .notification > *:last-child > * {
min-height: 3.4em;
}
.floating-notifications.background .notification-row .notification-background .notification > *:last-child > * .notification-action {
border-radius: 7px;
color: #4c4f69;
background-color: #ccd0da;
box-shadow: inset 0 0 0 1px #bcc0cc;
margin: 7px;
}
.floating-notifications.background .notification-row .notification-background .notification > *:last-child > * .notification-action:hover {
box-shadow: inset 0 0 0 1px #bcc0cc;
background-color: #ccd0da;
color: #4c4f69;
}
.floating-notifications.background .notification-row .notification-background .notification > *:last-child > * .notification-action:active {
box-shadow: inset 0 0 0 1px #bcc0cc;
background-color: #209fb5;
color: #4c4f69;
}
.floating-notifications.background .notification-row .notification-background .close-button {
margin: 7px;
padding: 2px;
border-radius: 6.3px;
color: #eff1f5;
background-color: #d20f39;
}
.floating-notifications.background .notification-row .notification-background .close-button:hover {
background-color: #e64553;
color: #eff1f5;
}
.floating-notifications.background .notification-row .notification-background .close-button:active {
background-color: #d20f39;
color: #eff1f5;
}
.control-center {
box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.8), inset 0 0 0 1px #ccd0da;
border-radius: 12.6px;
margin: 18px;
background-color: #eff1f5;
color: #4c4f69;
padding: 14px;
}
.control-center .widget-title {
color: #4c4f69;
font-size: 1.3em;
}
.control-center .widget-title button {
border-radius: 7px;
color: #4c4f69;
background-color: #ccd0da;
box-shadow: inset 0 0 0 1px #bcc0cc;
padding: 8px;
}
.control-center .widget-title button:hover {
box-shadow: inset 0 0 0 1px #bcc0cc;
background-color: #acb0be;
color: #4c4f69;
}
.control-center .widget-title button:active {
box-shadow: inset 0 0 0 1px #bcc0cc;
background-color: #209fb5;
color: #eff1f5;
}
.control-center .notification-row .notification-background {
border-radius: 7px;
color: #4c4f69;
background-color: #ccd0da;
box-shadow: inset 0 0 0 1px #bcc0cc;
margin-top: 14px;
}
.control-center .notification-row .notification-background .notification {
padding: 7px;
border-radius: 7px;
}
.control-center .notification-row .notification-background .notification.critical {
box-shadow: inset 0 0 7px 0 #d20f39;
}
.control-center .notification-row .notification-background .notification .notification-content {
margin: 7px;
}
.control-center .notification-row .notification-background .notification .notification-content .summary {
color: #4c4f69;
}
.control-center .notification-row .notification-background .notification .notification-content .time {
color: #6c6f85;
}
.control-center .notification-row .notification-background .notification .notification-content .body {
color: #4c4f69;
}
.control-center .notification-row .notification-background .notification > *:last-child > * {
min-height: 3.4em;
}
.control-center .notification-row .notification-background .notification > *:last-child > * .notification-action {
border-radius: 7px;
color: #4c4f69;
background-color: #dce0e8;
box-shadow: inset 0 0 0 1px #bcc0cc;
margin: 7px;
}
.control-center .notification-row .notification-background .notification > *:last-child > * .notification-action:hover {
box-shadow: inset 0 0 0 1px #bcc0cc;
background-color: #ccd0da;
color: #4c4f69;
}
.control-center .notification-row .notification-background .notification > *:last-child > * .notification-action:active {
box-shadow: inset 0 0 0 1px #bcc0cc;
background-color: #209fb5;
color: #4c4f69;
}
.control-center .notification-row .notification-background .close-button {
margin: 7px;
padding: 2px;
border-radius: 6.3px;
color: #eff1f5;
background-color: #e64553;
}
.control-center .notification-row .notification-background .close-button:hover {
background-color: #d20f39;
color: #eff1f5;
}
.control-center .notification-row .notification-background .close-button:active {
background-color: #d20f39;
color: #eff1f5;
}
.control-center .notification-row .notification-background:hover {
box-shadow: inset 0 0 0 1px #bcc0cc;
background-color: #8c8fa1;
color: #4c4f69;
}
.control-center .notification-row .notification-background:active {
box-shadow: inset 0 0 0 1px #bcc0cc;
background-color: #209fb5;
color: #4c4f69;
}
progressbar,
progress,
trough {
border-radius: 12.6px;
}
progressbar {
box-shadow: inset 0 0 0 1px #bcc0cc;
}
.notification.critical progress {
background-color: #d20f39;
}
.notification.low progress,
.notification.normal progress {
background-color: #1e66f5;
}
trough {
background-color: #ccd0da;
}
.control-center trough {
background-color: #bcc0cc;
}
.control-center-dnd {
margin-top: 5px;
border-radius: 8px;
background: #ccd0da;
border: 1px solid #bcc0cc;
box-shadow: none;
}
.control-center-dnd:checked {
background: #ccd0da;
}
.control-center-dnd slider {
background: #bcc0cc;
border-radius: 8px;
}
.widget-dnd {
margin: 0px;
font-size: 1.1rem;
}
.widget-dnd > switch {
font-size: initial;
border-radius: 8px;
background: #ccd0da;
border: 1px solid #bcc0cc;
box-shadow: none;
}
.widget-dnd > switch:checked {
background: #ccd0da;
}
.widget-dnd > switch slider {
background: #bcc0cc;
border-radius: 8px;
border: 1px solid #9ca0b0;
}

View File

@ -0,0 +1,270 @@
* {
all: unset;
font-size: 14px;
font-family: "Ubuntu Nerd Font";
transition: 200ms;
}
.floating-notifications.background .notification-row .notification-background {
box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.8), inset 0 0 0 1px #414559;
border-radius: 12.6px;
margin: 18px;
background-color: #303446;
color: #c6d0f5;
padding: 0;
}
.floating-notifications.background .notification-row .notification-background .notification {
padding: 7px;
border-radius: 12.6px;
}
.floating-notifications.background .notification-row .notification-background .notification.critical {
box-shadow: inset 0 0 7px 0 #e78284;
}
.floating-notifications.background .notification-row .notification-background .notification .notification-content {
margin: 7px;
}
.floating-notifications.background .notification-row .notification-background .notification .notification-content .summary {
color: #c6d0f5;
}
.floating-notifications.background .notification-row .notification-background .notification .notification-content .time {
color: #a5adce;
}
.floating-notifications.background .notification-row .notification-background .notification .notification-content .body {
color: #c6d0f5;
}
.floating-notifications.background .notification-row .notification-background .notification > *:last-child > * {
min-height: 3.4em;
}
.floating-notifications.background .notification-row .notification-background .notification > *:last-child > * .notification-action {
border-radius: 7px;
color: #c6d0f5;
background-color: #414559;
box-shadow: inset 0 0 0 1px #51576d;
margin: 7px;
}
.floating-notifications.background .notification-row .notification-background .notification > *:last-child > * .notification-action:hover {
box-shadow: inset 0 0 0 1px #51576d;
background-color: #414559;
color: #c6d0f5;
}
.floating-notifications.background .notification-row .notification-background .notification > *:last-child > * .notification-action:active {
box-shadow: inset 0 0 0 1px #51576d;
background-color: #85c1dc;
color: #c6d0f5;
}
.floating-notifications.background .notification-row .notification-background .close-button {
margin: 7px;
padding: 2px;
border-radius: 6.3px;
color: #303446;
background-color: #e78284;
}
.floating-notifications.background .notification-row .notification-background .close-button:hover {
background-color: #ea999c;
color: #303446;
}
.floating-notifications.background .notification-row .notification-background .close-button:active {
background-color: #e78284;
color: #303446;
}
.control-center {
box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.8), inset 0 0 0 1px #414559;
border-radius: 12.6px;
margin: 18px;
background-color: #303446;
color: #c6d0f5;
padding: 14px;
}
.control-center .widget-title {
color: #c6d0f5;
font-size: 1.3em;
}
.control-center .widget-title button {
border-radius: 7px;
color: #c6d0f5;
background-color: #414559;
box-shadow: inset 0 0 0 1px #51576d;
padding: 8px;
}
.control-center .widget-title button:hover {
box-shadow: inset 0 0 0 1px #51576d;
background-color: #626880;
color: #c6d0f5;
}
.control-center .widget-title button:active {
box-shadow: inset 0 0 0 1px #51576d;
background-color: #85c1dc;
color: #303446;
}
.control-center .notification-row .notification-background {
border-radius: 7px;
color: #c6d0f5;
background-color: #414559;
box-shadow: inset 0 0 0 1px #51576d;
margin-top: 14px;
}
.control-center .notification-row .notification-background .notification {
padding: 7px;
border-radius: 7px;
}
.control-center .notification-row .notification-background .notification.critical {
box-shadow: inset 0 0 7px 0 #e78284;
}
.control-center .notification-row .notification-background .notification .notification-content {
margin: 7px;
}
.control-center .notification-row .notification-background .notification .notification-content .summary {
color: #c6d0f5;
}
.control-center .notification-row .notification-background .notification .notification-content .time {
color: #a5adce;
}
.control-center .notification-row .notification-background .notification .notification-content .body {
color: #c6d0f5;
}
.control-center .notification-row .notification-background .notification > *:last-child > * {
min-height: 3.4em;
}
.control-center .notification-row .notification-background .notification > *:last-child > * .notification-action {
border-radius: 7px;
color: #c6d0f5;
background-color: #232634;
box-shadow: inset 0 0 0 1px #51576d;
margin: 7px;
}
.control-center .notification-row .notification-background .notification > *:last-child > * .notification-action:hover {
box-shadow: inset 0 0 0 1px #51576d;
background-color: #414559;
color: #c6d0f5;
}
.control-center .notification-row .notification-background .notification > *:last-child > * .notification-action:active {
box-shadow: inset 0 0 0 1px #51576d;
background-color: #85c1dc;
color: #c6d0f5;
}
.control-center .notification-row .notification-background .close-button {
margin: 7px;
padding: 2px;
border-radius: 6.3px;
color: #303446;
background-color: #ea999c;
}
.control-center .notification-row .notification-background .close-button:hover {
background-color: #e78284;
color: #303446;
}
.control-center .notification-row .notification-background .close-button:active {
background-color: #e78284;
color: #303446;
}
.control-center .notification-row .notification-background:hover {
box-shadow: inset 0 0 0 1px #51576d;
background-color: #838ba7;
color: #c6d0f5;
}
.control-center .notification-row .notification-background:active {
box-shadow: inset 0 0 0 1px #51576d;
background-color: #85c1dc;
color: #c6d0f5;
}
progressbar,
progress,
trough {
border-radius: 12.6px;
}
progressbar {
box-shadow: inset 0 0 0 1px #51576d;
}
.notification.critical progress {
background-color: #e78284;
}
.notification.low progress,
.notification.normal progress {
background-color: #8caaee;
}
trough {
background-color: #414559;
}
.control-center trough {
background-color: #51576d;
}
.control-center-dnd {
margin-top: 5px;
border-radius: 8px;
background: #414559;
border: 1px solid #51576d;
box-shadow: none;
}
.control-center-dnd:checked {
background: #414559;
}
.control-center-dnd slider {
background: #51576d;
border-radius: 8px;
}
.widget-dnd {
margin: 0px;
font-size: 1.1rem;
}
.widget-dnd > switch {
font-size: initial;
border-radius: 8px;
background: #414559;
border: 1px solid #51576d;
box-shadow: none;
}
.widget-dnd > switch:checked {
background: #414559;
}
.widget-dnd > switch slider {
background: #51576d;
border-radius: 8px;
border: 1px solid #737994;
}

View File

@ -106,3 +106,4 @@ separator = ' '
"info.mumble.Mumble" = "" "info.mumble.Mumble" = ""
"Vintage Story" = "" "Vintage Story" = ""
"com.github.wwmm.easyeffects" = ''

View File

@ -1,13 +1,28 @@
{ {
// "layer": "top", // Waybar at top layer // "layer": "top", // Waybar at top layer
"position": "bottom", // Waybar position (top|bottom|left|right) "position": "top", // Waybar position (top|bottom|left|right)
"height": 20, // Waybar height (to be removed for auto height) "height": 20, // Waybar height (to be removed for auto height)
// "width": 1280, // Waybar width // "width": 1280, // Waybar width
// Choose the order of the modules // Choose the order of the modules
"modules-left": ["sway/workspaces", "sway/mode", "custom/media"], "modules-left": ["sway/workspaces", "sway/mode", "custom/media"],
"modules-center": [], //"modules-center": [],
//"modules-right": ["idle_inhibitor", "mpd", "pulseaudio", "network", "cpu", "memory", "temperature", "battery", "custom/scratchpad_indicator", "clock", "tray", "custom/swaync", "custom/emacsstatus" ], //"modules-right": ["idle_inhibitor", "mpd", "pulseaudio", "network", "cpu", "memory", "temperature", "battery", "custom/scratchpad_indicator", "clock", "tray", "custom/swaync", "custom/emacsstatus" ],
"modules-right": ["mpd", "pulseaudio", "network", "battery", "custom/scratchpad_indicator", "clock", "tray", "custom/swaync", "custom/emacsstatus" ], "modules-right": ["pulseaudio", "network", "battery", "custom/scratchpad_indicator", "custom/neralie", "tray", "custom/swaync", "custom/emacsstatus" ],
"river/tags": {
"num-tags": 5,
"tag-labels": {
"1": "",
"2": "",
"3": "",
"4": "",
"5": "",
"6": "",
"7": "",
"8": "",
"9": "",
"10": "",
}
},
"sway/workspaces": { "sway/workspaces": {
"disable-scroll-wraparound": true "disable-scroll-wraparound": true
}, },
@ -38,7 +53,18 @@
// "disable-scroll": true, // "disable-scroll": true,
"all-outputs": false, "all-outputs": false,
"format": "{name}", "format": "{name}",
//"format": "{icon}",
"format-icons": { "format-icons": {
"1": "+",
"2": "+",
"3": "+",
"4": "+",
"5": "+",
"6": "+",
"7": "+",
"8": "+",
"9": "+",
"10": "+",
// "1": "1", // "1": "1",
// "2": "2", // "2": "2",
// "3": "3-sch", // schedule // "3": "3-sch", // schedule
@ -92,7 +118,8 @@
//"format": "{:%Y-%m-%d %H:%M:%S}", //"format": "{:%Y-%m-%d %H:%M:%S}",
//"format": "{:%Y-%m-%d %I:%M:%S %p}", //"format": "{:%Y-%m-%d %I:%M:%S %p}",
//"format": "day # {:%j}", //"format": "day # {:%j}",
"interval": 1 "interval": 1,
"on-click": "uxnemu ~/.local/uxn/catclock.rom"
}, },
"cpu": { "cpu": {
"format": " {usage}%", "format": " {usage}%",
@ -120,7 +147,7 @@
"format-ethernet": " {ifname}: {ipaddr}/{cidr}", "format-ethernet": " {ifname}: {ipaddr}/{cidr}",
"format-linked": " {ifname} (No IP)", "format-linked": " {ifname} (No IP)",
"format-disconnected": "⚠ Disconnected", "format-disconnected": "⚠ Disconnected",
//"format-alt": "{ifname}: {ipaddr}/{cidr}" "format-alt": "{ifname}: {ipaddr}/{cidr}",
"on-click": "$TERMINAL -e nmtui" "on-click": "$TERMINAL -e nmtui"
}, },
"pulseaudio": { "pulseaudio": {
@ -191,7 +218,7 @@
"custom/emacsstatus": { "custom/emacsstatus": {
"return-type": "json", "return-type": "json",
"exec": "~/.config/waybar/scripts/emacs-status.sh", "exec": "~/.config/waybar/scripts/emacs-status.sh",
"on-click": "emacsclient -c || emacs", "on-click": "emacsclient -c -a ''",
"format": "{}", "format": "{}",
"restart-interval": 3 "restart-interval": 3
}, },
@ -203,4 +230,9 @@
"on-click": "exec swaymsg 'scratchpad show'", "on-click": "exec swaymsg 'scratchpad show'",
"on-click-right": "exec swaymsg 'move scratchpad'" "on-click-right": "exec swaymsg 'move scratchpad'"
}, },
"custom/neralie": {
"exec": "~/.local/bin/neralie",
"on-click": "uxnemu ~/.local/uxn/catclock.rom",
"restart-interval": 1
},
} }

View File

@ -0,0 +1,239 @@
{
// "layer": "top", // Waybar at top layer
"position": "top", // Waybar position (top|bottom|left|right)
"height": 20, // Waybar height (to be removed for auto height)
// "width": 1280, // Waybar width
// Choose the order of the modules
//"modules-left": ["sway/workspaces", "sway/mode", "custom/media"],
"modules-left": ["river/tags", "custom/media"],
//"modules-center": [],
//"modules-right": ["idle_inhibitor", "mpd", "pulseaudio", "network", "cpu", "memory", "temperature", "battery", "custom/scratchpad_indicator", "clock", "tray", "custom/swaync", "custom/emacsstatus" ],
"modules-right": ["pulseaudio", "network", "battery", "custom/neralie", "tray", "custom/swaync", "custom/emacsstatus" ],
"river/tags": {
"num-tags": 5,
"tag-labels": {
"1": "",
"2": "",
"3": "",
"4": "",
"5": "",
"6": "",
"7": "",
"8": "",
"9": "",
"10": "",
}
},
"sway/workspaces": {
"disable-scroll-wraparound": true
},
// Modules configuration
"sway/workspaces": {
"persistent_workspaces": {
// "1": ["DVI-D-1"],
// "2": ["DVI-D-1"],
// "3": ["DVI-D-1"],
// "4": ["DVI-D-1"],
// "5": ["DVI-D-1"],
// "6": ["HDMI-A-1"],
// "7": ["HDMI-A-1"],
// "8": ["HDMI-A-1"],
// "9": ["HDMI-A-1"],
// "10": ["HDMI-A-1"],
//"1": ["HDMI-A-1"],
//"2": ["HDMI-A-1"],
//"3": ["HDMI-A-1"],
//"4": ["HDMI-A-1"],
//"5": ["HDMI-A-1"],
//"6": ["DVI-D-1"],
//"7": ["DVI-D-1"],
//"8": ["DVI-D-1"],
//"9": ["DVI-D-1"],
//"10": ["DVI-D-1"]
},
// "disable-scroll": true,
"all-outputs": false,
"format": "{name}",
//"format": "{icon}",
"format-icons": {
"1": "+",
"2": "+",
"3": "+",
"4": "+",
"5": "+",
"6": "+",
"7": "+",
"8": "+",
"9": "+",
"10": "+",
// "1": "1",
// "2": "2",
// "3": "3-sch", // schedule
// "4": "4-comms",
// "5": "5-mon", // monitor
// "6": "6-em", // emacs
// "7": "7-se", // search/web
// "8": "8-tm", // terminal
// "9": "9-gm",
// "10": "10",
//"1": "1-em", // emacs
//"2": "2-se", // search/web
//"3": "3-tm", // terminal
//"4": "4-gm",
//"5": "5",
//"6": "6",
//"7": "7",
//"8": "8-sch", // schedule
//"9": "9-comms",
//"10": "10-mon", // monitor
}
},
"keyboard-state": {
"numlock": true,
"capslock": true,
"format": "{name} {icon}",
"format-icons": {
"locked": "",
"unlocked": ""
}
},
"sway/mode": {
"format": "<span style=\"italic\">{}</span>"
},
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
"activated": "",
"deactivated": ""
}
},
"tray": {
"icon-size": 15,
"spacing": 10
},
"clock": {
// "timezone": "America/New_York",
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"format": "{:%H:%M}",
//"format": "{:%Y-%m-%d %H:%M:%S}",
//"format": "{:%Y-%m-%d %I:%M:%S %p}",
//"format": "day # {:%j}",
"interval": 1,
"on-click": "uxnemu ~/.local/uxn/catclock.rom"
},
"cpu": {
"format": " {usage}%",
// "tooltip": false
},
"memory": {
"format": " {}%"
},
"battery": {
"states": {
"good": 95,
"warning": 30,
"critical": 15
},
"format": "{icon} {capacity}% ({time})",
"format-charging": " {capacity}%",
"format-plugged": " {capacity}%",
// "format-good": "", // An empty format will hide the module
// "format-full": "",
"format-icons": ["", "", "", "", ""]
},
"network": {
// "interface": "wlp2*", // (Optional) To force the use of this interface
"format-wifi": " {essid} ({signalStrength}%)",
"format-ethernet": " {ifname}: {ipaddr}/{cidr}",
"format-linked": " {ifname} (No IP)",
"format-disconnected": "⚠ Disconnected",
"format-alt": "{ifname}: {ipaddr}/{cidr}",
"on-click": "$TERMINAL -e nmtui"
},
"pulseaudio": {
// "scroll-step": 1, // %, can be a float
"format": "{icon} {volume}%",
"format-bluetooth": "{volume}% {format_source}",
"format-bluetooth-muted": " {icon} {format_source}",
"format-muted": " {volume}%",
// "format-source": "{volume}% ",
// "format-source-muted": "",
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": ["", "", ""]
},
"on-click": "$TERMINAL -e pulsemixer"
// "on-click": "pavucontrol"
},
"mpd": {
"server": "localhost",
"port": 6600,
"format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon} {artist} | {title} | {elapsedTime:%M:%S}/{totalTime:%M:%S}",
// "max-length": 200,
"format-disconnected": "-",
"format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped",
"interval": 2,
"consume-icons": {
"on": " " // Icon shows only when "consume" is on
},
"random-icons": {
"off": "<span color=\"#f53c3c\"></span> ", // Icon grayed out when "random" is off
"on": " "
},
"repeat-icons": {
"on": " "
},
"single-icons": {
"on": "1 "
},
"state-icons": {
"paused": "",
"playing": ""
},
"tooltip-format": "MPD (connected)",
"tooltip-format-disconnected": "MPD (disconnected)"
},
"custom/media": {
"format": "{icon} {}",
"return-type": "json",
"max-length": 40,
"format-icons": {
"spotify": "",
"default": "🎜"
},
"escape": true,
"exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder
// "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name
},
"custom/swaync": {
"exec": "~/.config/waybar/scripts/notifications.sh",
"on-click": "swaync-client -t",
"restart-interval": 1
},
"custom/emacsstatus": {
"return-type": "json",
"exec": "~/.config/waybar/scripts/emacs-status.sh",
"on-click": "emacsclient -c -a ''",
"format": "{}",
"restart-interval": 3
},
"custom/scratchpad_indicator": {
"interval": 1,
"return-type": "json",
"exec": "swaymsg -t get_tree | jq --unbuffered --compact-output '( select(.name == \"root\") | .nodes[] | select(.name == \"__i3\") | .nodes[] | select(.name == \"__i3_scratch\") | .focus) as $scratch_ids | [.. | (.nodes? + .floating_nodes?) // empty | .[] | select(.id |IN($scratch_ids[]))] as $scratch_nodes | { text: \"\\($scratch_nodes | length)\", tooltip: $scratch_nodes | map(\"\\(.app_id // .window_properties.class) (\\(.id)): \\(.name)\") | join(\"\\n\") }'",
"format": " {}",
"on-click": "exec swaymsg 'scratchpad show'",
"on-click-right": "exec swaymsg 'move scratchpad'"
},
"custom/neralie": {
"exec": "~/.local/bin/neralie",
"on-click": "uxnemu ~/.local/uxn/catclock.rom",
"restart-interval": 1
},
}

View File

@ -0,0 +1,8 @@
#!/bin/sh
while true
do
neralie
sleep .5
neralie
sleep .5
done

View File

@ -1,20 +1,70 @@
/* white */
/*
@define-color bg white;
@define-color button black;
@define-color button-occupied black;
@define-color button-selected black;
@define-color button-box lightgrey;
@define-color widget black;
@define-color widget-border-right transparent;
@define-color border-bottom rgba(100, 114, 125, 0.5);
*/
/* black */
/*@define-color bg black;
@define-color button grey;
@define-color button-occupied grey;
@define-color button-selected grey;
@define-color button-box #424242;
@define-color widget grey;
@define-color border-bottom transparent;
@define-color widget-border-right #424242;*/
/* grey */
/*
@define-color bg #222222;
@define-color button #bbbbbb;
@define-color button-occupied #bbbbbb;
@define-color button-selected #bbbbbb;
@define-color button-box #424242;
@define-color widget #999999;
@define-color widget-border-right #424242;
@define-color border-bottom transparent;*/
/* Tomorrow Night (#161616 bg) */
@define-color border-bottom transparent;
@define-color widget-border-right transparent;
@define-color button #444444;
@define-color button-occupied #c5c8c6;
@define-color button-selected grey;
@define-color button-box #424242;
@define-color bg rgba(22,22,22,0.9);
@define-color widget #c5c8c6;
@define-color border-bottom #333333;
/*@define-color bg rgba(19,19,19,1);*/
* { * {
border: none; border: none;
border-radius: 0; border-radius: 0;
font-family: IBMPlexMono, monospace, 'Symbols Nerd Font'; /* Cozette */
font-family: 'IBM Plex Mono', 'Symbols Nerd Font';
font-size: 10px; font-size: 10px;
/*font-size: 14px;*/ /*font-size: 14px;*/
min-height: 0; min-height: 0;
} }
window#waybar { window#waybar {
/*background-color: #000;*/ /* background colors:
background-color: #222222; * #000
/*background-color: #161616;*/ * #222222 *def*
/*background-color: transparent;*/ * #161616
/*background-color: #000;*/ */
/*color: #ffffff;*/ /* colors
color: #999999; * #999999 def
/*color: #bbbbbb;*/ * #bbbbbb
* #ffffff
*/
background-color: @bg;
border-bottom: 2px solid @border-bottom;
/*transition-property: background-color;*/ /*transition-property: background-color;*/
/*transition-duration: .5s;*/ /*transition-duration: .5s;*/
} }
@ -45,13 +95,21 @@ window#waybar.chromium {
#workspaces button.persistent { #workspaces button.persistent {
background-color: transparent; background-color: transparent;
color: @button;
} }
#workspaces button { #workspaces button {
transition: none; transition: none;
/*
* background colors:
* transparent
* #444444
*/
background-color: transparent; background-color: transparent;
/*background-color: #444444;*/ /* colors:
color: #bbbbbb; * #bbbbbb
*/
color: @button-occupied;
padding: 0 8px; padding: 0 8px;
min-width: 0; min-width: 0;
} }
@ -64,13 +122,36 @@ window#waybar.chromium {
#workspaces button.visible { #workspaces button.visible {
/*color: #000000; /*color: #000000;
background-color: #888888;*/ background-color: #888888;*/
box-shadow: inset 2px 2px #424242, inset -2px -2px #424242; /*
* box shadow colors
* #424242 *def*
* #555555
*/
box-shadow: inset 2px 2px @button-box, inset -2px -2px @button-box;
color:@button-selected;
} }
#workspaces button.urgent { #workspaces button.urgent {
background-color: #eb4d4b; background-color: #eb4d4b;
} }
/* river tags */
#tags button {
color: @button; /*#444444*/
padding: 0 8px;
min-width: 0;
}
#tags button.occupied {
color: @button-occupied /*#6B313D*/
}
#tags button.focused {
color: @button-selected; /*#9EA68F*/
box-shadow: inset 2px 2px @button-box, inset -2px -2px @button-box;
}
#tags button.urgent {
color: red /* def red */
}
#mode { #mode {
background-color: #64727D; background-color: #64727D;
} }
@ -92,13 +173,23 @@ window#waybar.chromium {
#custom-swaync, #custom-swaync,
#custom-scratchpad_indicator, #custom-scratchpad_indicator,
#custom-emacsstatus, #custom-emacsstatus,
#custom-neralie,
#mpd { #mpd {
padding: 0 6px; padding: 0 6px;
/*padding-right: 10px;*/ /*padding-right: 10px;*/
border-right: 2px solid #424242; /*
color: #999999; * border colors
/*color: #bbbbbb;*/ * #424242 *def*
/*color: #ffffff*/ *
*/
border-right: 2px solid @widget-border-right;
/*
* colors
* #999999 *def*
* #bbbbbb
* #ffffff
*/
color: @widget
} }
/* im using this near the right edge */ /* im using this near the right edge */

View File

@ -1,17 +1,20 @@
prompt=What do you want to run? prompt=X
allow_markup=true allow_markup=true
dmenu-parse_action=true dmenu-parse_action=true
stylesheet=style.css stylesheet=style.css
watch_css=true watch_css=true
colors=colors #colors=colors
width=400 #width=400
lines=17 #width=300
image_size=20 #lines=17
allow_images=true #height=100%
#image_size=20
allow_images=false
hide_scroll=true hide_scroll=true
gtk_dark=true #gtk_dark=true
layer=overlay layer=overlay
#location=9

View File

@ -1,18 +1,52 @@
* {
font-family: "Noto Sans", sans-serif;
font-size: 12px;
}
window {
box-shadow: inset 0 0 0 1px #333333;
background-color: transparent;
border-radius: 0px; /*12.6px*/
}
#input {
border: none;
background-color: rgba(0,0,0,.2); /* #444444 rgba(0,0,0,.2) */
color: #c5c8c6; /* white */
/*border: 2px solid #161616;*/
border-radius: 0px; /*7px*/
}
#inner-box {
/*background-color: #161616;*/
}
#outer-box { #outer-box {
padding: 4px; margin: 1px;
padding: 3px; /* 10px */
background-color: rgba(29, 31, 33,0.9); /* #222222 rgba(22,22,22,0.9) rgba(29, 31, 33,0.9) */
border-radius: 0px; /*12.6px*/
/*filter: blur(1.5em)*/
} }
#window {
/*background: rgba(41, 46, 66, 0.5); #scroll {
/*margin: auto; /*margin: 5px;*/
padding: 10px;
border-radius: 20px;
border: 5px solid #b072d1;*/
background: rgba(22, 22, 22, 0.8);
} }
/*#entry:selected {
background-color: rgba(0,0,0,0); #text {
} padding: 4px;
#text:selected { color: grey; /* probably c5c8c6 */
background-color: red; }
#text:selected {
color: #c5c8c6;
}
/*#entry:nth-child(even){
background-color: #161719;
}*/ }*/
* { font-family: 'IBM Plex Serif';}
#entry:selected {
background-color: transparent; /* #222222 */
/*border-radius: 7px;*/
/*box-shadow: inset 0 0 0 1px #333333;*/
}

View File

@ -0,0 +1,7 @@
set default-bg "#1d1f21"
set statusbar-bg "#161719"
set statusbar-fg "#c5c5c5"
set notification-bg "#1d1f21"
set notification-fg "#c5c5c5"
set selection-clipboard clipboard

View File

@ -90,5 +90,8 @@ function osc7 {
autoload -Uz add-zsh-hook autoload -Uz add-zsh-hook
add-zsh-hook -Uz chpwd osc7 add-zsh-hook -Uz chpwd osc7
# reverse searching
bindkey '^R' history-incremental-search-backward
# Load syntax highlighting; should be last. # Load syntax highlighting; should be last.
source /usr/share/zsh/plugins/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh 2>/dev/null source /usr/share/zsh/plugins/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh 2>/dev/null

51
home/default/.local/bin/dark.sh Executable file
View File

@ -0,0 +1,51 @@
#!/bin/sh
[ -z "$1" ] && printf "Usage: screenshot.sh [output|active|window] \n" && exit 0
dark() {
cp -f ~/.config/swaync/style.mocha.css ~/.config/swaync/style.css
setsid -f killall swaync >/dev/null 2>&1
sleep 2 && setsid -f swaync >/dev/null 2>&1
echo 'swaync set'
# TODO
cat ~/.config/foot/foot.ini >> ~/.config/foot/foot.ini
echo 'foot terminal set, reopen to change'
# TODO emacs
# TODO gtk
# TODO gtk flatpak
sudo flatpak override --env GTK_THEME=Materia-dark
# TODO browser
}
light() {
cp -f ~/.config/swaync/style.latte.css ~/.config/swaync/style.css
setsid -f killall swaync >/dev/null 2>&1
sleep 2 && setsid -f swaync >/dev/null 2>&1
echo 'swaync set'
# TODO
cat ~/.config/foot/foot.ini >> ~/.config/foot/foot.ini
echo 'foot terminal set, reopen to change'
# TODO emacs
# TODO gtk
# TODO gtk flatpak
sudo flatpak override --env GTK_THEME=Materia
# TODO browser
}
if [[ -n "$1" ]]; then
case "$1" in
dark) dark
*)
echo $@ is not an argument
break
;;
esac
fi

View File

@ -1,7 +0,0 @@
#!/bin/sh
if [ -z $1 ]
then
emacsclient -nw -c --alternate-editor='emacs -nw' .
else
emacsclient -nw -c --alternate-editor='emacs -nw' "$@"
fi

View File

@ -1,7 +0,0 @@
#!/bin/sh
if [ -z "$1" ]
then
setsid -f emacsclient . >/dev/null 2>&1 || setsid -f emacs . >/dev/null 2>&1
else
setsid -f emacsclient "$@" >/dev/null 2>&1 || setsid -f emacs "$@" >/dev/null 2>&1
fi

View File

@ -2,9 +2,12 @@
if [[ -z "$1" ]]; then if [[ -z "$1" ]]; then
swayidle -w \ swayidle -w \
timeout 310 'swaylock' \ timeout 310 'swaylock' \
timeout 300 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \ timeout 360 "wlopm --off '*'" resume "wlopm --on '*'" \
before-sleep "swaylock" before-sleep "swaylock"
fi fi
#timeout 300 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \
if [[ $1 == "-k" ]]; then if [[ $1 == "-k" ]]; then
killall swayidle killall swayidle
exit 0 exit 0

View File

@ -15,10 +15,10 @@ fi
case "$url" in case "$url" in
*mkv|*webm|*mp4|*hooktube.com*|*bitchute.com*|*videos.lukesmith.xyz*|*odysee.com*) *mkv|*webm|*mp4|*hooktube.com*|*bitchute.com*|*videos.lukesmith.xyz*|*odysee.com*)
setsid -f mpv -quiet "$url" >/dev/null 2>&1 ;; setsid -f mpv -quiet "$url" >/dev/null 2>&1 ;;
*youtube.com/watch*|*youtube.com/playlist*|*youtube.com/shorts*|*youtu.be*) *youtube.com/watch*|*youtube.com/playlist*|*youtube.com/shorts*|*youtu.be*|*youtube-nocookie.com/embed*)
setsid -f flatpak run io.freetubeapp.FreeTube "$url" >/dev/null 2>&1 ;; setsid -f flatpak run io.freetubeapp.FreeTube "$url" >/dev/null 2>&1 ;;
*png|*jpg|*jpe|*jpeg|*gif) *png|*jpg|*jpe|*jpeg|*gif|*webp|*PNG|*JPG|*JPE|*JPEG|*GIF|*WEBP)
curl -sL "$url" > "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" && sxiv -a "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" >/dev/null 2>&1 & ;; curl -sL "$url" > "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" && nsxiv -a "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" >/dev/null 2>&1 & ;;
*pdf|*cbz|*cbr) *pdf|*cbz|*cbr)
curl -sL "$url" > "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" && zathura "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" >/dev/null 2>&1 & ;; curl -sL "$url" > "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" && zathura "/tmp/$(echo "$url" | sed "s/.*\///;s/%20/ /g")" >/dev/null 2>&1 & ;;
*epub) *epub)

View File

@ -1,25 +1,34 @@
#!/bin/sh #!/bin/sh
# A dmenu wrapper script for system functions. # A dmenu wrapper script for system functions.
export WM=$XDG_CURRENT_DESKTOP #export WM=$XDG_CURRENT_DESKTOP
if [ "$WINDOW_MANAGER" == "sway" ]; then WM="sway" ; fi
if [ "$WINDOW_MANAGER" == "river" ]; then WM="river" ; fi
case "$(readlink -f /sbin/init)" in case "$(readlink -f /sbin/init)" in
*systemd*) ctl='systemctl' ;; *systemd*) ctl='systemctl' ;;
*) ctl='loginctl' ;; *) ctl='loginctl' ;;
esac esac
#case "$(printf "🔒 lock\n🚪 leave $WM\n♻ renew $WM\n🐻 hibernate\n🔃 reboot\n🖥 shutdown\n💤 sleep\n📺 display off\n set background\n start idle\n kill swayidle\n fcitx5\n kill fcitx5\n start emacs daemon\n kill emacs daemon\n restart emacs daemon" | rofi -dmenu -i -l 16 -p 'action')" in #case "$(printf "🔒 lock\n🚪 leave $WM\n♻ renew $WM\n🐻 hibernate\n🔃 reboot\n🖥 shutdown\n💤 sleep\n📺 display off\n set background\n start idle\n kill swayidle\n fcitx5\n kill fcitx5\n start emacs daemon\n kill emacs daemon\n restart emacs daemon" | rofi -dmenu -i -l 16 -p 'action')" in
case "$(printf "🔒 lock\n🚪 leave $WM\n♻ renew $WM\n🐻 hibernate\n🔃 reboot\n🖥 shutdown\n💤 sleep\n📺 display off\n set background\n start idle\n kill swayidle\n fcitx5\n kill fcitx5\n start emacs daemon\n kill emacs daemon\n restart emacs daemon" | wofi -L 17 --cache-file=/dev/null --show=dmenu -i -p 'action')" in case "$(printf "🔒 lock\n🚪 leave $WM\n♻ renew $WM\n🐻 hibernate\n🔃 reboot\n🖥 shutdown\n💤 sleep\n📺 display off\n set background\n start idle\n kill swayidle\n fcitx5\n kill fcitx5\n start emacs daemon\n kill emacs daemon\n restart emacs daemon\ntoggle sworkstyle" | wofi -L 17 --cache-file=/dev/null --show=dmenu -i -p 'action')" in
'🔒 lock') '🔒 lock')
setsid -f swaylock setsid -f swaylock
setsid -f sleep 2 && swayidle -w timeout 1 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on" && kill $#' setsid -f sleep 2 && swayidle -w timeout 1 'wlopm --off "*"' resume 'wlopm --on "*" && kill $#'
;;
"🚪 leave $WM")
if [ "$WINDOW_MANAGER" == "sway" ]; then swaymsg exit ; fi
if [ "$WINDOW_MANAGER" == "river" ]; then riverctl exit ; fi
;;
"♻️ renew $WM")
if [ "$WINDOW_MANAGER" == "sway" ]; then swaymsg reload ; fi
if [ "$WINDOW_MANAGER" == "river" ]; then $HOME/.config/river/init ; fi
;; ;;
"🚪 leave $WM") swaymsg exit ;;
"♻️ renew $WM") swaymsg reload ;;
'🐻 hibernate') $ctl hibernate -i ;; '🐻 hibernate') $ctl hibernate -i ;;
'💤 sleep') $ctl suspend -i ;; '💤 sleep') $ctl suspend -i ;;
'🔃 reboot') $ctl reboot -i ;; '🔃 reboot') $ctl reboot -i ;;
'🖥️ shutdown') $ctl poweroff -i ;; '🖥️ shutdown') $ctl poweroff -i ;;
'📺 display off') swayidle -w timeout 1 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on" && kill $#' ;; #'📺 display off') swayidle -w timeout 1 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on" && kill $#' ;;
'📺 display off') swayidle -w timeout 1 'wlopm --off "*"' resume 'wlopm --on "*" && kill $#' ;;
' set background') change-background ;; ' set background') change-background ;;
' start idle') killall swayidle && sleep 1; setsid -f idle && notify-send 'idle started.';; ' start idle') killall swayidle && sleep 1; setsid -f idle && notify-send 'idle started.';;
' kill swayidle') killall swayidle && notify-send 'idle killed.';; ' kill swayidle') killall swayidle && notify-send 'idle killed.';;

View File

@ -0,0 +1,4 @@
[Desktop Entry]
Type=Application
Name=Cat Clock
Exec=/home/default/.local/uxn/uxnemu /home/default/.local/uxn/catclock.rom

View File

@ -1,12 +0,0 @@
[Desktop Entry]
Name=Emacs Client
GenericName=Text Editor
Comment=Edit text
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
Exec=emacsclient -c -a 'emacs' %F
Icon=emacs
Type=Application
Terminal=false
Categories=Development;TextEditor;
StartupNotify=true
StartupWMClass=Emacs

View File

@ -0,0 +1,4 @@
[Desktop Entry]
Type=Application
Name=Left editor
Exec=/home/default/.local/uxn/uxnemu /home/default/.local/uxn/left.rom

View File

@ -1,6 +1,6 @@
#+title: Instructions #+title: Instructions
** information ** information :info:
This org document is a list of instructions on how to install the whole setup of my personal system, including installation of standalone programs. This org document is a list of instructions on how to install the whole setup of my personal system, including installation of standalone programs.
@ -147,7 +147,7 @@ Allow wheel users to sudo with password and allow several system commands
#+BEGIN_SRC shell #+BEGIN_SRC shell
echo "%wheel ALL=(ALL:ALL) ALL" >/etc/sudoers.d/00-wheel-can-sudo echo "%wheel ALL=(ALL:ALL) ALL" >/etc/sudoers.d/00-wheel-can-sudo
echo "%wheel ALL=(ALL:ALL) NOPASSWD: /usr/bin/shutdown,/usr/bin/reboot,/usr/bin/systemctl suspend,/usr/bin/wifi-menu,/usr/bin/mount,/usr/bin/umount,/usr/bin/dnf update,/usr/bin/dnf update -y,/usr/bin/dnf upgrade,/usr/bin/dnf upgrade,/usr/bin/loadkeys" >/etc/sudoers.d/01-cmds-without-password echo "%wheel ALL=(ALL:ALL) NOPASSWD: /usr/bin/shutdown,/usr/bin/reboot,/usr/bin/systemctl suspend,/usr/bin/wifi-menu,/usr/bin/mount,/usr/bin/umount,/usr/bin/dnf update,/usr/bin/dnf update -y,/usr/bin/dnf upgrade,/usr/bin/dnf upgrade,/usr/bin/dnf makecache,/usr/bin/dnf makecache -y,/usr/bin/loadkeys" >/etc/sudoers.d/01-cmds-without-password
echo "Defaults editor=/usr/bin/nvim" >/etc/sudoers.d/02-visudo-editor echo "Defaults editor=/usr/bin/nvim" >/etc/sudoers.d/02-visudo-editor
#+END_SRC #+END_SRC
@ -177,6 +177,7 @@ sudo dnf install librewolf
https://github.com/ranmaru22/firefox-vertical-tabs https://github.com/ranmaru22/firefox-vertical-tabs
https://addons.mozilla.org/en-US/firefox/addon/multi-account-containers/ https://addons.mozilla.org/en-US/firefox/addon/multi-account-containers/
https://addons.mozilla.org/en-US/firefox/addon/nicothin-dark-theme/ https://addons.mozilla.org/en-US/firefox/addon/nicothin-dark-theme/
https://addons.mozilla.org/en-US/firefox/addon/tomorrow-theme-night
https://support.mozilla.org/en-US/kb/compact-mode-workaround-firefox https://support.mozilla.org/en-US/kb/compact-mode-workaround-firefox
** doom emacs ** doom emacs
@ -202,7 +203,7 @@ sudo dnf install gcc atk-devel cairo-devel freetype-devel fontconfig-devel dbus-
## build emacs 29.1 ## build emacs 29.1
cd emacs cd emacs
git checkout emacs-29.1 git checkout emacs-29.1.90
./autogen.sh ./autogen.sh
./configure --with-dbus --with-gif --with-jpeg --with-png --with-rsvg \ ./configure --with-dbus --with-gif --with-jpeg --with-png --with-rsvg \
--with-tiff --with-xft --with-xpm --with-gpm=no \ --with-tiff --with-xft --with-xpm --with-gpm=no \
@ -274,14 +275,16 @@ dnf copr enable erikreider/SwayNotificationCenter
dnf install SwayNotificationCenter dnf install SwayNotificationCenter
#+END_SRC #+END_SRC
** autotiling in sway ** autotiling in sway (optional)
#+BEGIN_SRC sh #+BEGIN_SRC sh
pip install i3ipc pip install i3ipc
pip install autotiling==1.8 pip install autotiling==1.8
#+END_SRC #+END_SRC
** sworkstyle (workspace icons) ** sworkstyle (workspace icons) (optional)
this is disabled by default within sway config, but compatible with waybar and sway
installing this needs cargo, to install go here: [[*installing cargo]] installing this needs cargo, to install go here: [[*installing cargo]]
this also needs [[install icon fonts (Nerd Fonts)]] this also needs [[install icon fonts (Nerd Fonts)]]
@ -289,16 +292,27 @@ this also needs [[install icon fonts (Nerd Fonts)]]
cargo install sworkstyle cargo install sworkstyle
#+end_src #+end_src
** install icon fonts (Nerd Fonts) *** install icon fonts (Nerd Fonts)
for sworkstyle icons in waybar
#+begin_src sh #+begin_src sh
mkdir ~/.fonts mkdir ~/.local/share/fonts
curl -LOv https://github.com/ryanoasis/nerd-fonts/releases/download/v3.1.1/NerdFontsSymbolsOnly.tar.xz --output-dir /tmp/ curl -LOv https://github.com/ryanoasis/nerd-fonts/releases/download/v3.1.1/NerdFontsSymbolsOnly.tar.xz --output-dir /tmp/
tar -xvf /tmp/NerdFontsSymbolsOnly.tar.xz -C ~/.fonts/ tar -xvf /tmp/NerdFontsSymbolsOnly.tar.xz -C ~/.local/share/fonts/
#+end_src #+end_src
** uxn
installing this just for catclock
#+begin_src sh
cd Downloads/
curl -LOv https://rabbits.srht.site/uxn/uxn-essentials-lin64.tar.gz
tar xvf uxn-essentials-lin64.tar.gz
mv uxn ~/.local/
#+end_src
** sc-im (terminal spreadsheet) ** sc-im (terminal spreadsheet)
I'm using this for sc files
from https://github.com/andmarti1424/sc-im/wiki/Installing-on-Fedora-27 from https://github.com/andmarti1424/sc-im/wiki/Installing-on-Fedora-27
#+BEGIN_SRC sh #+BEGIN_SRC sh
sudo dnf install libzip libzip-devel libxml2-devel ncurses-devel byacc git gcc gnuplot sudo dnf install libzip libzip-devel libxml2-devel ncurses-devel byacc git gcc gnuplot
@ -455,9 +469,11 @@ flatpak install flathub com.github.johnfactotum.Foliate
- gamescope - gamescope
- mangohud - mangohud
- OBS VkCapture tools
- OBS VkCapture plugin
#+BEGIN_SRC sh #+BEGIN_SRC sh
flatpak install -y com.valvesoftware.Steam.Utility.gamescope com.usebottles.bottles org.freedesktop.Platform.VulkanLayer.MangoHud flatpak install -y com.valvesoftware.Steam.Utility.gamescope com.usebottles.bottles org.freedesktop.Platform.VulkanLayer.MangoHud org.freedesktop.Platform.VulkanLayer.OBSVkCapture obs-studio-plugin-vkcapture com.obsproject.Studio
#+END_SRC #+END_SRC
*** steam *** steam
@ -548,7 +564,12 @@ sudo meson install
1. install termux-api and termux-styling from fdroid 1. install termux-api and termux-styling from fdroid
2. install these packages 2. install these packages
#+begin_src sh #+begin_src sh
pkg install termux-api fd-find ripgrep git emacs pkg install termux-api fd ripgrep git emacs neovim shellcheck rsync nodejs lf man ffmpeg jq pup recode python-pip clang fontconfig-utils which
#+end_src
3. setup storage
#+begin_src sh
termux-setup-storage
#+end_src #+end_src
3. install doom emacs 3. install doom emacs
@ -559,5 +580,33 @@ git clone https://github.com/doomemacs/doomemacs ~/.emacs.d
~/.emacs.d/bin/doom install ~/.emacs.d/bin/doom install
#+END_SRC #+END_SRC
4. yt-dlp
#+begin_src sh
pip install yt-dlp
#+end_src
** ryujinx (WIP) ** ryujinx (WIP)
sudo sysctl -w vm.max_map_count=524288 sudo sysctl -w vm.max_map_count=524288
** setup flatpak env variable for theme
#+begin_src
flatpak install org.gtk.Gtk3theme.Materia-dark
flatpak install org.gtk.Gtk3theme.Materia
sudo flatpak override --env GTK_THEME=Materia-dark
#+end_src
** wlrobs
#+begin_src sh
sudo dnf install wayland-devel obs-studio-devel pkg-config meson
#+end_src
#+begin_src sh
hg clone https://hg.sr.ht/~scoopta/wlrobs
cd wlrobs
meson setup build
ninja -C build
#+end_src
https://github.com/pystardust/ani-cli#tier-1-support-linux-mac-android

View File

@ -26,6 +26,7 @@ tar
pip pip
npm npm
polkit polkit
polkit-gnome
fontawesome-fonts fontawesome-fonts
chafa chafa
bc bc
@ -143,3 +144,21 @@ python-sphinx
wofi wofi
nautilus nautilus
mpg123 mpg123
highlight
clang
clang-tools-extra
sdcv
obs-studio-plugin-vkcapture
languagetool
android-file-transfer
ruby-devel
zlib-devel
"C Development Tools and Libraries"
perl-Image-ExifTool
zig
minisign
wlopm
urlscan
wlr-randr
figlet
ledger

32
termux.txt Normal file
View File

@ -0,0 +1,32 @@
neovim
shellcheck
nodejs before marked
lf
fd-find > fd
termux-setup-storage
sync-*
.bashrc
.termux
rsync
df -H | grep -o "/storage/....-...."
ln -s /storage/... ~/sdcard
ln -s ~/storage/shared/notebook .
cp -rv ~/git/cho@gitea.bubbletea.dev/dotfiles/home/default/.config/nvim ~/.config
fontconfig-utils
which
sync-* mkdir
clang
python-pip
yt-dlp
ln -s ~/storage...-.../media .
man
ffmpeg
cargo install aio-cli
jq pup recode
install rustup :
ln -s termux.txt
ln -s housekeeping
ln -s ~/storage/shared/scripts .
sc-im
exiftool
ani-cli