diff --git a/.gitignore b/.gitignore index 4ef3864..9fe3205 100644 --- a/.gitignore +++ b/.gitignore @@ -17,4 +17,4 @@ home/default/.config/doom/custom.el home/default/.config/doom/config/+priv-config.el home/default/.config/sway/priv home/default/.doom.d/bookmarks -home/default/.doom.d/custom.el +home/default/.doom.d/custom.eL diff --git a/docs/instructions.html b/docs/instructions.html new file mode 100644 index 0000000..24dc152 --- /dev/null +++ b/docs/instructions.html @@ -0,0 +1,1252 @@ + + + + + + +Instructions + + + + + +
+

Instructions

+
+

Table of Contents

+
+ + +
  • 1. fixes + +
  • +
  • 2. todos + +
  • +
    +
    +

    0.1. 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. +

    +
    +
    +
    +

    0.2. installing fedora minimal with btrfs snapshots (snapper)

    +
    +

    +this sections assumes that you know how to use sway (window manager), neovim (text editor), basic terminal shell commands, burn an iso to disk, as well as using the anaconda installer. +

    + +

    +get the os image (Fedora Everything) from here https://alt.fedoraproject.org/en/ and burn it to your usb/other. +

    +
    +
    +

    0.2.1. verifying the iso file

    +
    +
      +
    1. Download the checksum file (from https://alt.fedoraproject.org/en/) into the same directory as the image you downloaded.
    2. + +
    3. Import Fedora’s GPG key(s)
    4. +
    + +
    +
    curl -O https://fedoraproject.org/fedora.gpg
    +
    +
    + +
      +
    1. Verify the CHECKSUM file is valid
    2. +
    + +
    +
    gpgv --keyring ./fedora.gpg *-CHECKSUM
    +
    +
    + +
      +
    1. Verify the checksum matches
    2. +
    + +
    +
    sha256sum -c *-CHECKSUM
    +
    +
    +
    +
    +
    +

    0.2.2. installing fedora and setting up btrfs with snapshots

    +
    +

    +differences/notes before continuing with the installation: +

    + +
      +
    1. some dependencies aren’t available with ’fedora custom operating system’. before installing snapper install these packages:
    2. +
    + +
    +
    sudo dnf install neovim sway firefox locate git bzip2
    +
    +
    + +
      +
    • neovim: a text editor to edit files
    • +
    • firefox: a browser to follow along guide
    • +
    • locate, git, bzip2: missing dependencies not included in the guide.
    • + +
    • software selection will be fedora custom operating system
    • +
    + +

    +boot your fedora installer media and follow this guide, make sure to boot with EUFI mode: +https://sysguides.com/install-fedora-38-with-snapshot-and-rollback-support/ +or for full disk encryption +https://sysguides.com/install-fedora-38-with-full-disk-encryption-snapshot-and-rollback-support/ +

    +
    +
    +
    +
    +

    0.3. how to make new user and add to wheel

    +
    +
    +
    # make a user and add to the wheel group
    +useradd -m -g wheel user_name
    +# set a password
    +passwd user_name
    +
    +
    +
    +
    +
    +

    0.4. prerequisites

    +
    +

    +for building/installing packages, also some dependencies for doomemacs, and zsh. +

    + +
    +
    sudo dnf install curl ca-certificates make automake gcc gcc-c++ kernel-devel git util-linux-user zsh ntpsec dnf-plugins-core golang flatpak cmake libevdev-devel systemd-devel yaml-cpp-devel boost-devel ripgrep fd-find ShellCheck tar pip npm
    +
    +
    +
    +
    +
    +

    0.5. installing dotfiles

    +
    +
    +
    # getting dotfiles
    +git clone https://gitea.bubbletea.dev/cho/dotfiles ~/.dots
    +
    +cp -rv ~/.dots/home/default/.* ~/
    +
    +# or using stow
    +# make sure you make directories you don't want as symlinks
    +mkdir -p ~/.local/share/applications
    +mkdir -p ~/.local/bin
    +mkdir -p ~/.config
    +mkdir -p ~/.config/shell
    +mkdir -p ~/.config/mpd
    +mkdir -p ~/.config/zsh
    +mkdir -p ~/.config/newsboat
    +mkdir -p ~/.config/nvim
    +
    +cd ~/.dots/home/ && stow default --target=$HOME/
    +
    +
    +
    +
    +

    0.5.1. how to unstow dotfiles

    +
    +
    +
    cd ~/.dots/home/ && stow -D default --target=$HOME/
    +
    +
    +
    +
    +
    +
    +

    0.6. setting up rpmfusion

    +
    +

    +from https://rpmfusion.org/Configuration and https://rpmfusion.org/Howto/Multimedia +

    + +
    +
    # rpmfusion
    +sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
    +sudo dnf groupupdate core
    +
    +# multimedia
    +sudo dnf swap ffmpeg-free ffmpeg --allowerasing
    +sudo dnf groupupdate multimedia --setop="install_weak_deps=False" --exclude=PackageKit-gstreamer-plugin
    +sudo dnf groupupdate sound-and-video
    +
    +#amd
    +sudo dnf swap mesa-va-drivers mesa-va-drivers-freeworld
    +sudo dnf swap mesa-vdpau-drivers mesa-vdpau-drivers-freeworld
    +
    +#dvd
    +sudo dnf install rpmfusion-free-release-tainted
    +sudo dnf install libdvdcss
    +
    +# non-free firmware
    +sudo dnf install rpmfusion-nonfree-release-tainted
    +sudo dnf --repo=rpmfusion-nonfree-tainted install "*-firmware"
    +
    +
    +
    +
    +
    +

    0.7. installing dnf packages

    +
    +

    +this will install programs, as well as (99% of) dependencies of shell scripts and configuration included within lf (file manager) +the other dependency not included in packages.txt is `pup` (included in a section below) +

    + +
    +
    sudo dnf install -y $(cat ~/.dots/packages.txt)
    +
    +
    +
    +
    +
    +

    0.8. installing swayfx (window manager)

    +
    +
    +
    sudo dnf copr enable swayfx/swayfx
    +sudo dnf install
    +
    +
    +
    +
    +
    +

    0.9. configuring sudoers

    +
    +

    +Allow wheel users to sudo with password and allow several system commands +(like `shutdown` to run without password). +

    + +
    +
    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/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
    +
    +
    +
    +
    +
    +

    0.10. Make zsh the default shell for the user.

    +
    +
    +
    name=$USER
    +chsh -s /bin/zsh "$name" >/dev/null 2>&1
    +sudo -u "$name" mkdir -p "/home/$name/.cache/zsh/"
    +sudo -u "$name" mkdir -p "/home/$name/.config/abook/"
    +sudo -u "$name" mkdir -p "/home/$name/.config/mpd/playlists/"
    +
    +
    + +

    +at this point, you should logout and login again to set the variables. +

    +
    +
    +
    +

    0.11. librewolf (browser)

    +
    +

    +from https://librewolf.net/installation/fedora/ +

    + +
    +
    sudo dnf config-manager --add-repo https://rpm.librewolf.net/librewolf-repo.repo
    +
    +sudo dnf install librewolf
    +
    +
    +
    + +
    +
    +

    0.12. doom emacs

    +
    +

    +first we need to install marked for markdown support +

    +
    +
    sudo npm install -g marked
    +
    +
    + +

    +then install emacs +

    +
    +
    sudo dnf install emacs
    +
    +
    + +

    +alternatively build emacs with native compilation and pgtk for better compatibility with wayland +

    +
    +
    +## clone the emacs repository
    +git clone git://git.savannah.gnu.org/emacs.git
    +
    +## install dependencies
    +sudo dnf install gcc atk-devel cairo-devel freetype-devel fontconfig-devel dbus-devel giflib-devel glibc-devel libgccjit-devel libpng-devel libjpeg-turbo-devel libjpeg-turbo libtiff-devel libX11-devel libXau-devel libXdmcp-devel libXrender-devel libXt-devel libXpm-devel ncurses-devel xorg-x11-proto-devel zlib-devel gnutls-devel librsvg2-devel m17n-lib-devel libotf-devel libselinux-devel alsa-lib-devel gpm-devel liblockfile-devel libxml2-devel autoconf bzip2 cairo texinfo gzip desktop-file-utils libacl-devel harfbuzz-devel jansson-devel systemd-devel lcms2-devel systemd-rpm-macros libtree-sitter-devel gtk3-devel webkit2gtk3-devel gnupg2 sysprof-devel
    +
    +## build emacs 29.1
    +cd emacs
    +git checkout emacs-29.1.90
    +./autogen.sh
    +./configure --with-dbus --with-gif --with-jpeg --with-png --with-rsvg \
    +            --with-tiff --with-xft --with-xpm --with-gpm=no \
    +            --with-xwidgets --with-modules --with-harfbuzz --with-cairo --with-json \
    +            --with-tree-sitter --with-pgtk --with-native-compilation
    +make -j$(nproc)
    +sudo make install
    +
    +
    + +

    +install doom emacs: +

    +
    +
    git clone https://github.com/doomemacs/doomemacs ~/.emacs.d
    +~/.emacs.d/bin/doom install
    +
    +
    +
    +
    +
    +

    0.13. lf (file manager)

    +
    +

    +this fork of lf allows for sixel graphics, which allows you to see images in terminals that supports sixel +

    + +

    +from https://github.com/horriblename/lf#installation +

    + +
    +
    env CGO_ENABLED=0 go install -ldflags="-s -w" github.com/horriblename/lf@latest
    +mkdir -p $HOME/.cache/lf
    +
    +
    +
    +
    +
    +

    0.14. interception tools (keyboard input mappings)

    +
    +

    +change caps lock to escape (when pressed) and mod (when held down) +

    + +

    +INSTALL FROM SOURCE +

    + +
    +
    git clone https://gitlab.com/interception/linux/tools.git interception-tools
    +cd interception-tools
    +cmake -B build -DCMAKE_BUILD_TYPE=Release
    +cmake --build build
    +cd build
    +sudo make install
    +
    +
    + +
    +
    git clone https://gitlab.com/interception/linux/plugins/dual-function-keys.git
    +cd dual-function-keys
    +make && sudo make install
    +
    +
    + +

    +it’s a good idea to install these as well, if anything doesn’t compile. +

    + +
    +
    sudo dnf groupinstall "Development Tools" "Development Libraries"
    +
    +
    +
    +
    +

    0.14.1. installing the configuration

    +
    +
    +
    sudo cp -rv ~/.dots/etc/interception /etc/
    +sudo cp ~/.dots/etc/systemd/system/udevmon.service /etc/systemd/system/
    +
    +# enable
    +sudo systemctl enable udevmon.service
    +
    +
    +
    +
    +
    +
    +

    0.15. sway notifications

    +
    +

    +from https://github.com/ErikReider/SwayNotificationCenter#fedora +

    +
    +
    dnf copr enable erikreider/SwayNotificationCenter
    +dnf install SwayNotificationCenter
    +
    +
    +
    +
    +
    +

    0.16. autotiling in sway (optional)

    +
    +
    +
    pip install i3ipc
    +pip install autotiling==1.8
    +
    +
    +
    +
    +
    +

    0.17. 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: 0.25 +this also needs 0.17.1 +

    +
    +
    cargo install sworkstyle
    +
    +
    +
    +
    +

    0.17.1. install icon fonts (Nerd Fonts)

    +
    +

    +for sworkstyle icons in waybar +

    + +
    +
    mkdir ~/.local/share/fonts
    +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 ~/.local/share/fonts/
    +
    +
    +
    +
    +
    +
    +

    0.18. uxn

    +
    +

    +installing this just for catclock +

    +
    +
    cd Downloads/
    +curl -LOv https://rabbits.srht.site/uxn/uxn-essentials-lin64.tar.gz
    +tar xvf uxn-essentials-lin64.tar.gz
    +mv uxn ~/.local/
    +
    +
    +
    +
    +
    +

    0.19. sc-im (terminal spreadsheet)

    +
    +

    +I’m using this for sc files +

    + +

    +from https://github.com/andmarti1424/sc-im/wiki/Installing-on-Fedora-27 +

    +
    +
    sudo dnf install libzip libzip-devel libxml2-devel ncurses-devel byacc git gcc gnuplot
    +git clone https://github.com/andmarti1424/sc-im.git
    +cd sc-im/src/
    +make
    +sudo make install
    +
    +
    +
    +
    +
    +

    0.20. nsxiv (image viewer)

    +
    +
    +
    dnf copr enable mamg22/nsxiv
    +dnf install nsxiv
    +
    +
    +
    +
    +
    +

    0.21. pip packages

    +
    +
    +
    +

    0.21.1. keepmenu (dmenu keepassxc client)

    + +
    +
    +

    0.21.2. pulsemixer (pulseaudio controller)

    +
    +
    +
    pip install --user pulsemixer
    +
    +
    +
    +
    +
    +

    0.21.3. termdown (terminal timer/stopwatch)

    +
    +
    +
    pip install termdown
    +
    +
    +
    +
    +
    +
    +

    0.22. go packages

    +
    +
    +
    +

    0.22.1. pup

    +
    +

    +needed for rssadd RSS scanning to work +

    + +
    +
    go install github.com/ericchiang/pup@latest
    +
    +
    +
    +
    +
    +
    +

    0.23. packages from source/binaries

    +
    +
    +
    +

    0.23.1. simple-mtpfs (for mounting usb)

    +
    +

    +install dependencies: +

    +
    +
    sudo dnf install libgcc fuse-devel libmtp-devel autoconf-archive
    +
    +
    + +

    +https://github.com/phatina/simple-mtpfs#installation +

    + +
    +
    git clone https://github.com/phatina/simple-mtpfs
    +cd simple-mtpfs
    +./autogen.sh
    +mkdir build && cd build
    +../configure
    +make
    +sudo make install
    +
    +
    +
    +
    +
    +

    0.23.2. mpvpaper

    +
    +

    +animated wallpapers (used by `change-background`) +

    + +
    +
    # install dependencies
    +sudo dnf install meson ninja-build pkg-config wayland-protocols-devel wayland-devel mpv-devel wlroots-devel
    +# Clone
    +git clone --single-branch https://github.com/GhostNaN/mpvpaper
    +# Build
    +cd mpvpaper
    +meson build --prefix=/usr/local
    +ninja -C build
    +# Install
    +sudo ninja -C build install
    +
    +
    +
    +
    +
    +

    0.23.3. 7-zip

    +
    +

    +get the downloads from https://www.7-zip.org/download.html +if you’re using modern hardware, it’s usually 64-bit linux x86-x64 +

    + +
    +
    # downloading and extracting the file
    +cd ~/Downloads/
    +curl -O <download-url>
    +mkdir 7-zip/
    +cd 7-zip/
    +tar -xvf ../<filename>.tar.xz
    +# put it into a PATH directory
    +sudo cp 7zz /usr/local/bin/
    +
    +
    +
    +
    +
    +
    +

    0.24. AppImages

    +
    +
    +
    +

    0.24.1. syncplay

    +
    +

    +from https://syncplay.pl/download/ +

    +
    +
    curl -LOv https://github.com/Syncplay/syncplay/releases/download/v1.7.0/Syncplay-1.7.0-x86_64.AppImage
    +chmod +x Syncplay-*.AppImage
    +mv Syncplay-*.AppImage ~/.local/bin/syncplay
    +
    +
    +
    +
    +
    +
    +

    0.25. installing cargo

    +
    +

    +https://doc.rust-lang.org/cargo/getting-started/installation.html +

    + +

    +when asked, choose to customize installation, and then choose `no` when it asks to modify PATH variable. (it’s already set in ~/config/shell/profile) +

    +
    +
    curl https://sh.rustup.rs -sSf | sh
    +
    +
    +
    +
    +
    +

    0.26. setting up flatpak

    +
    +

    +from https://flatpak.org/setup/Fedora +

    + +
    +
    flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
    +
    +
    +
    +
    +
    +

    0.27. setting up virtualbox

    +
    +
    +
    sudo usermod -a -G vboxusers default
    +
    +
    +
    +
    +
    +

    0.28. flatpak packages

    +
    +

    +remember to set permissions with Flatseal, especially access to personal files according to what you want the software to have before launching them. +

    +
    +
    +

    0.28.1. flatseal

    +
    +
    +
    flatpak install -y com.github.tchx84.Flatseal
    +
    +
    +
    +
    +
    +

    0.28.2. Unity

    +
    +
    +
    flatpak install flathub com.unity.UnityHub
    +
    +
    +
    +
    +
    +

    0.28.3. Foliate (Epub reader)

    +
    +
    +
    flatpak install flathub com.github.johnfactotum.Foliate
    +
    +
    +
    +
    +
    +

    0.28.4. bottles and dependencies

    +
    +
      +
    • gamescope
    • +
    • mangohud
    • +
    • OBS VkCapture tools
    • +
    • OBS VkCapture plugin
    • +
    + +
    +
    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
    +
    +
    +
    +
    +
    +

    0.28.5. steam

    +
    +
    +
    flatpak install -y com.valvesoftware.Steam
    +
    +
    +
    +
    +
    +

    0.28.6. rpsc3

    +
    +
    +
    sudo flatpak install -y net.rpcs3.RPCS3
    +
    +
    + +

    +limits.conf settings https://github.com/RPCS3/rpcs3/issues/9328 +

    + +
    +
    sudo su
    +printf '*        hard    memlock        unlimited\n*        soft    memlock        unlimited' >> /etc/security/limits.conf
    +
    +
    +
    +
    +
    +

    0.28.7. cemu

    +
    +
    +
    flatpak install flathub info.cemu.Cemu
    +
    +
    +
    +
    +
    +

    0.28.8. discord

    +
    +
    +
    flatpak install flathub com.discordapp.Discord
    +
    +
    +
    +
    +
    +

    0.28.9. spotify

    +
    +
    +
    flatpak install flathub io.github.hrkfdn.ncspot
    +flatpak install flathub com.spotify.Client
    +
    +
    +
    +
    +
    +
    +

    1. fixes

    +
    +
    +
    +

    1.1. crashes with wayland under amd gpus

    +
    +

    +see https://bbs.archlinux.org/viewtopic.php?id=270468 +https://forum.manjaro.org/t/graphics-glitches-freeze-up-with-new-comp-error-ring-gfx-timeout/55979/6 +

    +
    +
    sudo cp ~/.dots/usr/local/bin/radcard* /usr/local/bin/
    +sudo cp ~/.dots/etc/systemd/system/radcard.service /etc/systemd/system/
    +sudo systemctl enable --now radcard.service
    +
    +
    + +

    +you can check the status with `radcard.sh get` , make sure the output is as follows: +

    +
    +
    power_dpm_state: performance
    +power_dpm_force_performance_level: high
    +
    +
    +
    +
    +
    +
    +

    2. todos

    +
    +
    +
    +

    2.1. TODO remove Virtual Box

    +
    +
    +

    2.2. TODO remove autotiling

    +
    +
    +

    2.3. TODO write dependencies and programs to separate files

    +
    +
    +

    2.4. add packages / other

    +
    +
    +
    +

    2.4.1. installing bubblejail (WIP)

    +
    +
    +
    git clone https://github.com/igo95862/bubblejail
    +cd bubblejail
    +git checkout tags/0.8.1
    +sudo dnf install scdoc
    +sudo dnf install python3
    +sudo dnf install python3-jinja2
    +sudo dnf install python3-tomli-w
    +sudo dnf install python3-tomli
    +sudo dnf install libseccomp
    +sudo dnf install python3-pyqt6
    +sudo dnf install python3-pyxdg
    +sudo dnf install bubblewrap
    +sudo dnf install xdg-dbus-proxy
    +meson setup build
    +cd build
    +meson compile
    +sudo meson install
    +
    +
    +
    +
    +
    +
    +

    2.5. setting up termux (WIP)

    +
    +
      +
    1. install termux-api and termux-styling from fdroid
    2. +
    3. install these packages
    4. +
    +
    +
    pkg install termux-api fd ripgrep git emacs neovim shellcheck rsync nodejs lf man ffmpeg jq pup recode python-pip clang fontconfig-utils which
    +
    +
    + +
      +
    1. setup storage
    2. +
    +
    +
    termux-setup-storage
    +
    +
    + +
      +
    1. install doom emacs
    2. +
    + +
    +
    sudo npm install -g marked
    +git clone https://github.com/doomemacs/doomemacs ~/.emacs.d
    +~/.emacs.d/bin/doom install
    +
    +
    + +
      +
    1. yt-dlp
    2. +
    +
    +
    pip install yt-dlp
    +
    +
    +
    +
    +
    +

    2.6. ryujinx (WIP)

    +
    +

    +sudo sysctl -w vm.maxmapcount=524288 +

    +
    +
    +
    +

    2.7. setup flatpak env variable for theme

    +
    +
    +
    flatpak install org.gtk.Gtk3theme.Materia-dark
    +flatpak install org.gtk.Gtk3theme.Materia
    +sudo flatpak override --env GTK_THEME=Materia-dark
    +
    +
    +
    +
    +
    +

    2.8. wlrobs

    +
    +
    +
    sudo dnf install wayland-devel obs-studio-devel pkg-config meson
    +
    +
    + +
    +
    hg clone https://hg.sr.ht/~scoopta/wlrobs
    +cd wlrobs
    +meson setup build
    +ninja -C build
    +
    +
    +
    +
    +
    +
    + + diff --git a/home/default/.config/foot/foot.ini b/home/default/.config/foot/foot.ini index d421fde..4b0d8eb 100644 --- a/home/default/.config/foot/foot.ini +++ b/home/default/.config/foot/foot.ini @@ -7,15 +7,50 @@ pad= 16x16 [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 [colors] -alpha=0.80 -#background=1d1f21 -background=161616 +#alpha=0.80 +# tomorrow night default +background=1d1f21 +#background=000000 +# grey +#background=161616 foreground=c5c8c6 regular0=1d1f21 @@ -39,7 +74,7 @@ bright7=ffffff # Catpuccin (with grey background) #[cursor] #color=1A1826 D9E0EE - +# #[colors] ##alpha=0.85 #foreground=ffffff @@ -61,3 +96,30 @@ bright7=ffffff #bright5=F5C2E7 # bright magenta #bright6=89DCEB # bright cyan #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 diff --git a/home/default/.config/gtk-2.0/gtkrc-2.0 b/home/default/.config/gtk-2.0/gtkrc-2.0 deleted file mode 100644 index 8ba59a6..0000000 --- a/home/default/.config/gtk-2.0/gtkrc-2.0 +++ /dev/null @@ -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" diff --git a/home/default/.config/gtk-3.0/gtk.css b/home/default/.config/gtk-3.0/gtk.css new file mode 100644 index 0000000..6afaf54 --- /dev/null +++ b/home/default/.config/gtk-3.0/gtk.css @@ -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; +} diff --git a/home/default/.config/gtk-3.0/settings.ini b/home/default/.config/gtk-3.0/settings.ini deleted file mode 100644 index 7d847e4..0000000 --- a/home/default/.config/gtk-3.0/settings.ini +++ /dev/null @@ -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 diff --git a/home/default/.config/kanshi/config b/home/default/.config/kanshi/config index f06046e..6869d0d 100644 --- a/home/default/.config/kanshi/config +++ b/home/default/.config/kanshi/config @@ -1,7 +1,7 @@ profile { - output HDMI-A-1 scale 1 mode 1366x768 position 0,0 - output DVI-D-1 scale 1 mode 1280x1024 position 1366,0 + output HDMI-A-1 enable scale 1 mode 1920x1080 position 0,0 + output DVI-D-1 enable scale 1 mode 1280x1024 position 1920,0 } profile { - output HDMI-A-1 scale 1 mode 1366x768 + output HDMI-A-1 enable scale 1 mode 1920x1080 } diff --git a/home/default/.config/kanshi/config-single b/home/default/.config/kanshi/config-single index 2475d81..6960a8c 100644 --- a/home/default/.config/kanshi/config-single +++ b/home/default/.config/kanshi/config-single @@ -1,7 +1,7 @@ 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 } profile { - output HDMI-A-1 scale 1 mode 1366x768 + output HDMI-A-1 enable scale 1 mode 1920x1080 } diff --git a/home/default/.config/lf/lfrc b/home/default/.config/lf/lfrc index affb1a3..5a1e6bf 100644 --- a/home/default/.config/lf/lfrc +++ b/home/default/.config/lf/lfrc @@ -17,12 +17,12 @@ cmd open ${{ *.kra|*.krz|*.ora) setsid -f krita $f >/dev/null 2>&1 && exit 0 ;; *.xlsx) setsid -f libreoffice $f >/dev/null 2>&1 && 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 case $(file --mime-type "$(readlink -f $f)" -b) in 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 ;; - 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/svg+xml) display -- $f ;; image/*) rotdir $f | grep -i "\.\(png\|jpg\|jpeg\|gif\|webp\|tif\|ico\)\(_large\)*$" | diff --git a/home/default/.config/lf/scope b/home/default/.config/lf/scope index 8ac32b2..8914f90 100755 --- a/home/default/.config/lf/scope +++ b/home/default/.config/lf/scope @@ -53,7 +53,8 @@ case "$(file --dereference --brief --mime-type -- "$1")" in mediainfo "$1";; text/html) lynx -width="$4" -display_charset=utf-8 -dump "$1" ;; 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 ;; 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)" diff --git a/home/default/.config/ncmpcpp/config b/home/default/.config/ncmpcpp/config index a5777e7..e87e166 100644 --- a/home/default/.config/ncmpcpp/config +++ b/home/default/.config/ncmpcpp/config @@ -7,6 +7,7 @@ message_delay_time = "1" visualizer_type = "spectrum" 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"}} $8by {$8%a{ $8in $8%b{ (%y)}} $8}|{$8%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_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_time_color = cyan:b 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} diff --git a/home/default/.config/newsboat/config b/home/default/.config/newsboat/config index 9b42ddf..89d8d06 100644 --- a/home/default/.config/newsboat/config +++ b/home/default/.config/newsboat/config @@ -1,8 +1,9 @@ #show-read-feeds no 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 k up bind-key j next articlelist @@ -18,31 +19,79 @@ bind-key h quit bind-key a toggle-article-read bind-key n next-unread bind-key N prev-unread -bind-key D pb-download 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 listfocus black yellow standout bold color listnormal_unread blue default color listfocus_unread yellow default bold #color info red black bold -color info red default color article white default bold -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 +#color info white color8 +#color listnormal white black +#color listnormal_unread white black bold +#color article white black +#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 feedlist ".*(0/0))" black 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 ":.*\\(image\\)$" blue default highlight article ":.*\\(embedded flash\\)$" magenta default + diff --git a/home/default/.config/npm/npmrc b/home/default/.config/npm/npmrc new file mode 100644 index 0000000..c2da224 --- /dev/null +++ b/home/default/.config/npm/npmrc @@ -0,0 +1,3 @@ +prefix=${XDG_DATA_HOME}/npm +cache=${XDG_CACHE_HOME}/npm +init-module=${XDG_CONFIG_HOME}/npm/config/npm-init.js diff --git a/home/default/.config/river/init b/home/default/.config/river/init new file mode 100755 index 0000000..e8e3d23 --- /dev/null +++ b/home/default/.config/river/init @@ -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 : -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. + +#: }}} diff --git a/home/default/.config/river/init-priv b/home/default/.config/river/init-priv new file mode 100755 index 0000000..fb5bc3e --- /dev/null +++ b/home/default/.config/river/init-priv @@ -0,0 +1,2 @@ +#!/bin/sh +sleep 3 && gammastep -P -l -6.2:106 -t 6500:5000 & disown diff --git a/home/default/.config/river/init.def b/home/default/.config/river/init.def new file mode 100755 index 0000000..c3b0d8b --- /dev/null +++ b/home/default/.config/river/init.def @@ -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 & + diff --git a/home/default/.config/sc-im/scimrc b/home/default/.config/sc-im/scimrc new file mode 100644 index 0000000..927ee35 --- /dev/null +++ b/home/default/.config/sc-im/scimrc @@ -0,0 +1 @@ +set copy_to_clipboard_delimited_tab=1 diff --git a/home/default/.config/shell/aliasrc b/home/default/.config/shell/aliasrc index e0bfa84..9f98bc7 100644 --- a/home/default/.config/shell/aliasrc +++ b/home/default/.config/shell/aliasrc @@ -1,66 +1,51 @@ #!/bin/sh -# Use neovim for vim if present. -[ -x "$(command -v nvim)" ] && alias vim="nvim" vimdiff="nvim -d" - # Use $XINITRC variable if file exists. [ -f "$XINITRC" ] && alias startx="startx $XINITRC" +[ -f "$MBSYNCRC" ] && alias mbsync="mbsync -c $MBSYNCRC" + # 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" done; unset command -se() { cd ~/.local/bin; $EDITOR $(fzf) ;} - -# Verbosity and settings that you pretty much just always are going to want. 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" \ mv="mv -iv" \ rm="rm -vI" \ bc="bc -ql" \ - pg="ps -aux | grep --color=auto" \ mkd="mkdir -pv" \ - 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 \ + ffmpeg="ffmpeg -hide_banner" \ ls="ls -hN --color=auto --group-directories-first" \ grep="grep --color=auto" \ diff="diff --color=auto" \ ccat="highlight --out-format=ansi" \ - ip="ip -color=auto" - -# These common commands are just too long! Abbreviate them. -alias \ + ip="ip -color=auto" \ ka="killall" \ g="git" \ sdn="shutdown -h now" \ - e="$EDITOR" \ v="nvim" \ z="zathura" \ - i="nsxiv -a" - -alias \ - magit="nvim -c MagitOnly" \ - 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 \ + d="sdcv" \ + i="nsxiv -a" \ + pg="ps -aux | grep --color=auto" \ + weath="curl wttr.in" \ 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" \ - t="todo.sh -t -d $HOME/notebook/todo/todo.cfg" \ - fj="firejail --profile=$HOME/.config/firejail/game.profile" \ - dj="dijo" \ - hgs="hugo server --noHTTPCache --disableFastRender" + hgs="hugo server --noHTTPCache --disableFastRender" \ + left='uxnemu ~/.local/uxn/left.rom' \ + bouc='uxnemu ~/.local/uxn/bouc.rom' \ + catclock='uxnemu ~/.local/uxn/catclock.rom' \ + b='$BROWSER'\ + sc='sc-im'\ + l='ledger -f ~/notebook/ac/ac.ledger' -# ytfzf -#alias \ -# ytfzf="ytfzf --thumb-viewer=imv" \ -# ytfzf-video="ytfzf --detach -t" \ -# ytfzf-audio="ytfzf -m" \ -# ytfzf-history="ytfzf --detach -H" +wedit(){ +which $@ >/dev/null 2>&1 && [ -n "$1" ] && $EDITOR $(which $@) || printf "file doesn't exist.\n" +} diff --git a/home/default/.config/shell/profile b/home/default/.config/shell/profile index b30a838..8ca7003 100644 --- a/home/default/.config/shell/profile +++ b/home/default/.config/shell/profile @@ -1,17 +1,17 @@ -#!/bin/zsh +#!/bin/sh +# shellcheck disable=SC2155 # profile file. Runs on login. Environmental variables are set here. - -# If you don't plan on reverting to bash, you can remove the link in ~/.profile -# to clean up. - -# paths +# Paths 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:$HOME/.local/share/go/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: export EDITOR="nvim" @@ -22,35 +22,37 @@ export BROWSER="io.gitlab.librewolf-community" export XDG_CONFIG_HOME="$HOME/.config" export XDG_DATA_HOME="$HOME/.local/share" 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 NOTMUCH_CONFIG="${XDG_CONFIG_HOME:-$HOME/.config}/notmuch-config" -export GTK2_RC_FILES="${XDG_CONFIG_HOME:-$HOME/.config}/gtk-2.0/gtkrc-2.0" -export LESSHISTFILE="-" -export WGETRC="${XDG_CONFIG_HOME:-$HOME/.config}/wget/wgetrc" -export INPUTRC="${XDG_CONFIG_HOME:-$HOME/.config}/shell/inputrc" -export ZDOTDIR="${XDG_CONFIG_HOME:-$HOME/.config}/zsh" -#export ALSA_CONFIG_PATH="$XDG_CONFIG_HOME/alsa/asoundrc" -#export GNUPGHOME="${XDG_DATA_HOME:-$HOME/.local/share}/gnupg" -export WINEPREFIX="${XDG_DATA_HOME:-$HOME/.local/share}/wineprefixes/default" -export KODI_DATA="${XDG_DATA_HOME:-$HOME/.local/share}/kodi" -export PASSWORD_STORE_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/password-store" +export NOTMUCH_CONFIG="$XDG_CONFIG_HOME/notmuch-config" +export GTK2_RC_FILES="$XDG_CONFIG_HOME/gtk-2.0/gtkrc-2.0" +export WGETRC="$XDG_CONFIG_HOME/wget/wgetrc" +export INPUTRC="$XDG_CONFIG_HOME/shell/inputrc" +export ZDOTDIR="$XDG_CONFIG_HOME/zsh" +#export GNUPGHOME="$XDG_DATA_HOME/gnupg" +export WINEPREFIX="$XDG_DATA_HOME/wineprefixes/default" +export KODI_DATA="$XDG_DATA_HOME/kodi" +export PASSWORD_STORE_DIR="$XDG_DATA_HOME/password-store" export TMUX_TMPDIR="$XDG_RUNTIME_DIR" -export ANDROID_SDK_HOME="${XDG_CONFIG_HOME:-$HOME/.config}/android" -export CARGO_HOME="${XDG_DATA_HOME:-$HOME/.local/share}/cargo" -export GOPATH="${XDG_DATA_HOME:-$HOME/.local/share}/go" -export ANSIBLE_CONFIG="${XDG_CONFIG_HOME:-$HOME/.config}/ansible/ansible.cfg" -export UNISON="${XDG_DATA_HOME:-$HOME/.local/share}/unison" -export HISTFILE="${XDG_DATA_HOME:-$HOME/.local/share}/history" -export WEECHAT_HOME="${XDG_CONFIG_HOME:-$HOME/.config}/weechat" -export MBSYNCRC="${XDG_CONFIG_HOME:-$HOME/.config}/mbsync/config" -export ELECTRUMDIR="${XDG_DATA_HOME:-$HOME/.local/share}/electrum" +export ANDROID_SDK_HOME="$XDG_CONFIG_HOME/android" +export CARGO_HOME="$XDG_DATA_HOME/cargo" +export GOPATH="$XDG_DATA_HOME/go" +export GOMODCACHE="$XDG_CACHE_HOME/go/mod" +export ANSIBLE_CONFIG="$XDG_CONFIG_HOME/ansible/ansible.cfg" +export UNISON="$XDG_DATA_HOME/unison" +export HISTFILE="$XDG_DATA_HOME/history" +export MBSYNCRC="$XDG_CONFIG_HOME/mbsync/config" +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: export DICS="/usr/share/stardict/dic/" export SUDO_ASKPASS="$HOME/.local/bin/dmenupass" export FZF_DEFAULT_OPTS="--layout=reverse --height 40%" -export LESS=-R +export LESS="R" export LESS_TERMCAP_mb="$(printf '%b' '')" export LESS_TERMCAP_md="$(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_ue="$(printf '%b' '')" export LESSOPEN="| /usr/bin/highlight -O ansi %s 2>/dev/null" -export QT_QPA_PLATFORMTHEME="gtk2" # Have QT use gtk2 theme. -export MOZ_USE_XINPUT2="1" # Mozilla smooth scrolling/touchpads. -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 QT_IM_MODULE=fcitx -export XMODIFIERS=@im=fcitx -export SDL_IM_MODULE=fcitx -export GLFW_IM_MODULE=ibus -#export QT_STYLE_OVERRIDE=adwaita-dark -export GTK_THEME=Materia:dark +export QT_QPA_PLATFORMTHEME="gtk2" # Have QT use gtk2 theme. +#export MOZ_USE_XINPUT2=1 # Mozilla smooth scrolling/touchpads. +export AWT_TOOLKIT="MToolkit wmname LG3D" # May have to install wmname +export GTK_IM_MODULE="fcitx" +export QT_IM_MODULE="fcitx" +export XMODIFIERS=@im="fcitx" +export SDL_IM_MODULE="fcitx" +export GLFW_IM_MODULE="ibus" +#export QT_STYLE_OVERRIDE=Materia-dark +export GTK_THEME="Materia-dark" #wayland -#export QT_QPA_PLATFORM=wayland -#export XDG_CURRENT_DESKTOP=river -#export XDG_SESSION_DESKTOP=river -#export XDG_CURRENT_SESSION_TYPE=wayland +#export QT_QPA_PLATFORM="wayland" +#export XDG_CURRENT_DESKTOP="river" +#export XDG_SESSION_DESKTOP="river" +#export XDG_CURRENT_SESSION_TYPE="wayland" #export GDK_BACKEND="wayland,x11" export GDK_BACKEND="wayland" -export MOZ_ENABLE_WAYLAND=1 -#export WLR_RENDERER=vulkan - - -[ ! -f ${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc ] && setsid shortcuts >/dev/null 2>&1 +#export MOZ_ENABLE_WAYLAND="1" +#export WLR_RENDERER="vulkan" if [ -z $DISPLAY ] && [ "$(tty)" = "/dev/tty1" ]; then + export WINDOW_MANAGER=sway exec /usr/bin/sway fi +if [ -z $DISPLAY ] && [ "$(tty)" = "/dev/tty3" ]; then + export WINDOW_MANAGER=river + exec /usr/local/bin/river +fi diff --git a/home/default/.config/sway/config b/home/default/.config/sway/config index 8e33d02..861e2c9 100644 --- a/home/default/.config/sway/config +++ b/home/default/.config/sway/config @@ -39,17 +39,13 @@ exec --no-startup-id kanshi exec mpd # xresources (nsxiv theme, and other programs) -exec xrdb $HOME/.config/x11/xresources +exec sleep 5 && xrdb -load $HOME/.config/x11/xresources # Syncthing (sync daemon) exec syncthing --no-browser # polkit -exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 - -# emacs daemon (locally built) -exec /usr/local/bin/emacs --daemon -exec swaymsg "workspace 1; exec sleep 10 && emacsclient -c;" +exec --no-startup-id /usr/libexec/polkit-gnome-authentication-agent-1 # sworkstyle #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="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 systemctl --user import-environment 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 focus_follows_mouse no -hide_edge_borders smart workspace_auto_back_and_forth no show_marks yes # looks font pango: monospace 8 -gaps inner 10 +gaps inner 25 default_border pixel 2 +hide_edge_borders smart bindsym $mod+Control+y border toggle + # swayfx specific blur enable blur_xray enable -blur_passes 2 -blur_radius 3 +blur_passes 1 +# 2 +blur_radius 1 +# 3 #corner_radius 20 -shadows enable +shadows disable +# 333333 set $cl_high #333333 set $cl_indi #333333 set $cl_back #222222 +#set $cl_high #000000 +#set $cl_indi #000000 +#set $cl_back #999999 set $cl_fore #d9d8d8 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.urgent $cl_urge $cl_urge $cl_fore $cl_urge $cl_urge -set $gnome-schema org.gnome.desktop.interface -exec_always { - gsettings set $gnome-schema gtk-theme 'Materia-dark' - gsettings set $gnome-schema icon-theme 'Papirus-Dark' - gsettings set $gnome-schema color-scheme 'prefer-dark' -} +#set $gnome-schema org.gnome.desktop.interface +# exec_always { +# gsettings set $gnome-schema gtk-theme 'Materia-dark' +# gsettings set $gnome-schema icon-theme 'Papirus-Dark' +# gsettings set $gnome-schema color-scheme 'prefer-dark' +#} ### Idle configuration @@ -163,8 +171,8 @@ bindsym $mod+u exec screenshot.sh active bindsym $mod+Shift+u exec screenshot.sh window # app switcher -bindsym $mod+Tab exec sway-select-window -bindsym $mod+Shift+Tab exec ss.sh +#bindsym $mod+Tab exec sway-select-window +bindsym $mod+Tab exec ss.sh ### programs @@ -172,7 +180,9 @@ bindsym $mod+Shift+Tab exec ss.sh bindsym $mod+w exec $browser # 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 # newsboat (rss) @@ -185,14 +195,17 @@ bindsym $mod+t exec swaync-client -t bindsym $mod+r exec $term -e lf # emacs -bindsym $mod+e exec emacsclient -c || emacs +bindsym $mod+e exec emacsclient -c -a '' # mail #bindsym $mod+e exec thunderbird-wayland # 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 +# insert bindsym $mod+Insert exec wtype "$(grep -v '^#' ~/notebook/bookmarks.org | dmenu -l 50 | cut -d' ' -f1)" # kaomiji? @@ -351,7 +364,7 @@ mode "resize" { # status bar #include $HOME/.config/sway/bar exec_always killall waybar -exec_always sleep 2 && waybar +exec_always sleep 3 && waybar ### special keys @@ -397,4 +410,4 @@ bindsym $mod+m exec $term -e ncmpcpp bindsym $mod+Shift+s exec ~/.config/sway/scripts/sway-select-window include /etc/sway/config.d/* -include ~/syncthing/default/config.d/sway/* +include ~/.config/sway/priv diff --git a/home/default/.config/swaync/config.json b/home/default/.config/swaync/config.json new file mode 100644 index 0000000..268d6a5 --- /dev/null +++ b/home/default/.config/swaync/config.json @@ -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 + } + } +} diff --git a/home/default/.config/swaync/style.css b/home/default/.config/swaync/style.css new file mode 100644 index 0000000..96af4e6 --- /dev/null +++ b/home/default/.config/swaync/style.css @@ -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; +} diff --git a/home/default/.config/swaync/style.css.def b/home/default/.config/swaync/style.css.def new file mode 100644 index 0000000..c9e93b3 --- /dev/null +++ b/home/default/.config/swaync/style.css.def @@ -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; +} diff --git a/home/default/.config/swaync/style.current.css b/home/default/.config/swaync/style.current.css new file mode 100644 index 0000000..0b0e342 --- /dev/null +++ b/home/default/.config/swaync/style.current.css @@ -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; +} diff --git a/home/default/.config/swaync/style.def.css b/home/default/.config/swaync/style.def.css new file mode 100644 index 0000000..c9e93b3 --- /dev/null +++ b/home/default/.config/swaync/style.def.css @@ -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; +} diff --git a/home/default/.config/swaync/style.latte.css b/home/default/.config/swaync/style.latte.css new file mode 100644 index 0000000..6d538d9 --- /dev/null +++ b/home/default/.config/swaync/style.latte.css @@ -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; +} diff --git a/home/default/.config/swaync/style.mocha.css b/home/default/.config/swaync/style.mocha.css new file mode 100644 index 0000000..31eb48d --- /dev/null +++ b/home/default/.config/swaync/style.mocha.css @@ -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; +} diff --git a/home/default/.config/sworkstyle/config.toml b/home/default/.config/sworkstyle/config.toml index c05bcaa..5869416 100644 --- a/home/default/.config/sworkstyle/config.toml +++ b/home/default/.config/sworkstyle/config.toml @@ -106,3 +106,4 @@ separator = ' ' "info.mumble.Mumble" = "" "Vintage Story" = "" +"com.github.wwmm.easyeffects" = '' diff --git a/home/default/.config/waybar/config b/home/default/.config/waybar/config index cc5f792..6d480f9 100644 --- a/home/default/.config/waybar/config +++ b/home/default/.config/waybar/config @@ -1,13 +1,28 @@ { // "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) // "width": 1280, // Waybar width // Choose the order of the modules "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": ["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": { "disable-scroll-wraparound": true }, @@ -38,7 +53,18 @@ // "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 @@ -92,7 +118,8 @@ //"format": "{:%Y-%m-%d %H:%M:%S}", //"format": "{:%Y-%m-%d %I:%M:%S %p}", //"format": "day # {:%j}", - "interval": 1 + "interval": 1, + "on-click": "uxnemu ~/.local/uxn/catclock.rom" }, "cpu": { "format": " {usage}%", @@ -120,7 +147,7 @@ "format-ethernet": " {ifname}: {ipaddr}/{cidr}", "format-linked": " {ifname} (No IP)", "format-disconnected": "⚠ Disconnected", - //"format-alt": "{ifname}: {ipaddr}/{cidr}" + "format-alt": "{ifname}: {ipaddr}/{cidr}", "on-click": "$TERMINAL -e nmtui" }, "pulseaudio": { @@ -191,7 +218,7 @@ "custom/emacsstatus": { "return-type": "json", "exec": "~/.config/waybar/scripts/emacs-status.sh", - "on-click": "emacsclient -c || emacs", + "on-click": "emacsclient -c -a ''", "format": "{}", "restart-interval": 3 }, @@ -203,4 +230,9 @@ "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 + }, } diff --git a/home/default/.config/waybar/config-river b/home/default/.config/waybar/config-river new file mode 100644 index 0000000..04587bf --- /dev/null +++ b/home/default/.config/waybar/config-river @@ -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": "{}" + }, + "idle_inhibitor": { + "format": "{icon}", + "format-icons": { + "activated": "", + "deactivated": "" + } + }, + "tray": { + "icon-size": 15, + "spacing": 10 + }, + "clock": { + // "timezone": "America/New_York", + "tooltip-format": "{:%Y %B}\n{calendar}", + "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": " ", // 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 + }, +} diff --git a/home/default/.config/waybar/scripts/neralie-forever.sh b/home/default/.config/waybar/scripts/neralie-forever.sh new file mode 100755 index 0000000..e1f0139 --- /dev/null +++ b/home/default/.config/waybar/scripts/neralie-forever.sh @@ -0,0 +1,8 @@ +#!/bin/sh +while true +do + neralie + sleep .5 + neralie + sleep .5 +done diff --git a/home/default/.config/waybar/style.css b/home/default/.config/waybar/style.css index 015e0b1..ebfc062 100644 --- a/home/default/.config/waybar/style.css +++ b/home/default/.config/waybar/style.css @@ -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-radius: 0; - font-family: IBMPlexMono, monospace, 'Symbols Nerd Font'; + /* Cozette */ + font-family: 'IBM Plex Mono', 'Symbols Nerd Font'; font-size: 10px; /*font-size: 14px;*/ min-height: 0; } window#waybar { - /*background-color: #000;*/ - background-color: #222222; - /*background-color: #161616;*/ - /*background-color: transparent;*/ - /*background-color: #000;*/ - /*color: #ffffff;*/ - color: #999999; - /*color: #bbbbbb;*/ +/* background colors: + * #000 + * #222222 *def* + * #161616 + */ +/* colors + * #999999 def + * #bbbbbb + * #ffffff + */ + background-color: @bg; + border-bottom: 2px solid @border-bottom; /*transition-property: background-color;*/ /*transition-duration: .5s;*/ } @@ -45,13 +95,21 @@ window#waybar.chromium { #workspaces button.persistent { background-color: transparent; + color: @button; } #workspaces button { transition: none; + /* + * background colors: + * transparent + * #444444 + */ background-color: transparent; - /*background-color: #444444;*/ - color: #bbbbbb; + /* colors: + * #bbbbbb + */ + color: @button-occupied; padding: 0 8px; min-width: 0; } @@ -64,13 +122,36 @@ window#waybar.chromium { #workspaces button.visible { /*color: #000000; 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 { 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 { background-color: #64727D; } @@ -92,13 +173,23 @@ window#waybar.chromium { #custom-swaync, #custom-scratchpad_indicator, #custom-emacsstatus, +#custom-neralie, #mpd { padding: 0 6px; /*padding-right: 10px;*/ - border-right: 2px solid #424242; - color: #999999; - /*color: #bbbbbb;*/ - /*color: #ffffff*/ + /* + * border colors + * #424242 *def* + * + */ + border-right: 2px solid @widget-border-right; + /* + * colors + * #999999 *def* + * #bbbbbb + * #ffffff + */ + color: @widget } /* im using this near the right edge */ diff --git a/home/default/.config/wofi/config b/home/default/.config/wofi/config index da04722..4b3659e 100644 --- a/home/default/.config/wofi/config +++ b/home/default/.config/wofi/config @@ -1,17 +1,20 @@ -prompt=What do you want to run? +prompt=X allow_markup=true dmenu-parse_action=true stylesheet=style.css watch_css=true -colors=colors +#colors=colors -width=400 -lines=17 -image_size=20 -allow_images=true +#width=400 +#width=300 +#lines=17 +#height=100% +#image_size=20 +allow_images=false hide_scroll=true -gtk_dark=true +#gtk_dark=true layer=overlay +#location=9 diff --git a/home/default/.config/wofi/style.css b/home/default/.config/wofi/style.css index 34101d8..509e784 100644 --- a/home/default/.config/wofi/style.css +++ b/home/default/.config/wofi/style.css @@ -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 { - 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); - /*margin: auto; - padding: 10px; - border-radius: 20px; - border: 5px solid #b072d1;*/ - background: rgba(22, 22, 22, 0.8); + +#scroll { + /*margin: 5px;*/ } -/*#entry:selected { -background-color: rgba(0,0,0,0); -} - #text:selected { -background-color: red; + +#text { + padding: 4px; + color: grey; /* probably c5c8c6 */ +} +#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;*/ +} diff --git a/home/default/.config/zathura/zathurarc b/home/default/.config/zathura/zathurarc new file mode 100644 index 0000000..6c9beb3 --- /dev/null +++ b/home/default/.config/zathura/zathurarc @@ -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 diff --git a/home/default/.config/zsh/.zshrc b/home/default/.config/zsh/.zshrc index 763bbb5..4120c9e 100644 --- a/home/default/.config/zsh/.zshrc +++ b/home/default/.config/zsh/.zshrc @@ -90,5 +90,8 @@ function osc7 { autoload -Uz add-zsh-hook add-zsh-hook -Uz chpwd osc7 +# reverse searching +bindkey '^R' history-incremental-search-backward + # Load syntax highlighting; should be last. source /usr/share/zsh/plugins/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh 2>/dev/null diff --git a/home/default/.local/bin/dark.sh b/home/default/.local/bin/dark.sh new file mode 100755 index 0000000..045d970 --- /dev/null +++ b/home/default/.local/bin/dark.sh @@ -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 + diff --git a/home/default/.local/bin/em b/home/default/.local/bin/em deleted file mode 100755 index 30e96b4..0000000 --- a/home/default/.local/bin/em +++ /dev/null @@ -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 diff --git a/home/default/.local/bin/emo b/home/default/.local/bin/emo deleted file mode 100755 index 1e4e1a6..0000000 --- a/home/default/.local/bin/emo +++ /dev/null @@ -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 diff --git a/home/default/.local/bin/idle b/home/default/.local/bin/idle index cd415a2..59a63f8 100755 --- a/home/default/.local/bin/idle +++ b/home/default/.local/bin/idle @@ -2,9 +2,12 @@ if [[ -z "$1" ]]; then swayidle -w \ timeout 310 'swaylock' \ - timeout 300 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \ - before-sleep "swaylock" + timeout 360 "wlopm --off '*'" resume "wlopm --on '*'" \ + before-sleep "swaylock" fi + +#timeout 300 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \ + if [[ $1 == "-k" ]]; then killall swayidle exit 0 diff --git a/home/default/.local/bin/linkhandler b/home/default/.local/bin/linkhandler index a5f7006..b829acc 100755 --- a/home/default/.local/bin/linkhandler +++ b/home/default/.local/bin/linkhandler @@ -15,10 +15,10 @@ fi case "$url" in *mkv|*webm|*mp4|*hooktube.com*|*bitchute.com*|*videos.lukesmith.xyz*|*odysee.com*) 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 ;; - *png|*jpg|*jpe|*jpeg|*gif) - 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 & ;; + *png|*jpg|*jpe|*jpeg|*gif|*webp|*PNG|*JPG|*JPE|*JPEG|*GIF|*WEBP) + 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) 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) diff --git a/home/default/.local/bin/sysact b/home/default/.local/bin/sysact index 7bffffd..1837085 100755 --- a/home/default/.local/bin/sysact +++ b/home/default/.local/bin/sysact @@ -1,25 +1,34 @@ #!/bin/sh # 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 *systemd*) ctl='systemctl' ;; *) ctl='loginctl' ;; 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" | 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') 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 ;; '💤 sleep') $ctl suspend -i ;; '🔃 reboot') $ctl reboot -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 ;; ' start idle') killall swayidle && sleep 1; setsid -f idle && notify-send 'idle started.';; ' kill swayidle') killall swayidle && notify-send 'idle killed.';; diff --git a/home/default/.local/share/applications/catclock.desktop b/home/default/.local/share/applications/catclock.desktop new file mode 100644 index 0000000..4cafcb0 --- /dev/null +++ b/home/default/.local/share/applications/catclock.desktop @@ -0,0 +1,4 @@ +[Desktop Entry] +Type=Application +Name=Cat Clock +Exec=/home/default/.local/uxn/uxnemu /home/default/.local/uxn/catclock.rom diff --git a/home/default/.local/share/applications/emacsclient.desktop b/home/default/.local/share/applications/emacsclient.desktop deleted file mode 100644 index 3836da8..0000000 --- a/home/default/.local/share/applications/emacsclient.desktop +++ /dev/null @@ -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 diff --git a/home/default/.local/share/applications/left.desktop b/home/default/.local/share/applications/left.desktop new file mode 100644 index 0000000..b37e378 --- /dev/null +++ b/home/default/.local/share/applications/left.desktop @@ -0,0 +1,4 @@ +[Desktop Entry] +Type=Application +Name=Left editor +Exec=/home/default/.local/uxn/uxnemu /home/default/.local/uxn/left.rom diff --git a/instructions.org b/instructions.org index dfb6a9f..f58995b 100644 --- a/instructions.org +++ b/instructions.org @@ -1,6 +1,6 @@ #+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. @@ -147,7 +147,7 @@ Allow wheel users to sudo with password and allow several system commands #+BEGIN_SRC shell 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 #+END_SRC @@ -177,6 +177,7 @@ sudo dnf install librewolf 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/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 ** doom emacs @@ -202,7 +203,7 @@ sudo dnf install gcc atk-devel cairo-devel freetype-devel fontconfig-devel dbus- ## build emacs 29.1 cd emacs -git checkout emacs-29.1 +git checkout emacs-29.1.90 ./autogen.sh ./configure --with-dbus --with-gif --with-jpeg --with-png --with-rsvg \ --with-tiff --with-xft --with-xpm --with-gpm=no \ @@ -274,14 +275,16 @@ dnf copr enable erikreider/SwayNotificationCenter dnf install SwayNotificationCenter #+END_SRC -** autotiling in sway +** autotiling in sway (optional) #+BEGIN_SRC sh pip install i3ipc pip install autotiling==1.8 #+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]] this also needs [[install icon fonts (Nerd Fonts)]] @@ -289,16 +292,27 @@ this also needs [[install icon fonts (Nerd Fonts)]] cargo install sworkstyle #+end_src -** install icon fonts (Nerd Fonts) +*** install icon fonts (Nerd Fonts) +for sworkstyle icons in waybar #+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/ -tar -xvf /tmp/NerdFontsSymbolsOnly.tar.xz -C ~/.fonts/ +tar -xvf /tmp/NerdFontsSymbolsOnly.tar.xz -C ~/.local/share/fonts/ #+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) +I'm using this for sc files + from https://github.com/andmarti1424/sc-im/wiki/Installing-on-Fedora-27 #+BEGIN_SRC sh 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 - mangohud +- OBS VkCapture tools +- OBS VkCapture plugin #+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 *** steam @@ -548,7 +564,12 @@ sudo meson install 1. install termux-api and termux-styling from fdroid 2. install these packages #+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 3. install doom emacs @@ -559,5 +580,33 @@ git clone https://github.com/doomemacs/doomemacs ~/.emacs.d ~/.emacs.d/bin/doom install #+END_SRC +4. yt-dlp +#+begin_src sh +pip install yt-dlp +#+end_src + ** ryujinx (WIP) 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 diff --git a/packages.txt b/packages.txt index 842bca7..51a096e 100644 --- a/packages.txt +++ b/packages.txt @@ -26,6 +26,7 @@ tar pip npm polkit +polkit-gnome fontawesome-fonts chafa bc @@ -143,3 +144,21 @@ python-sphinx wofi nautilus 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 diff --git a/termux.txt b/termux.txt new file mode 100644 index 0000000..04f4adf --- /dev/null +++ b/termux.txt @@ -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