diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | Makefile | 36 | ||||
-rw-r--r-- | README.md | 8 | ||||
-rw-r--r-- | X11/xresources | 10 | ||||
-rw-r--r-- | alacritty/alacritty.yml | 8 | ||||
-rw-r--r-- | awesome/rc.lua | 2 | ||||
-rw-r--r-- | awesome/themes/zachir/theme.lua | 6 | ||||
-rw-r--r-- | bash/.bash_logout | 2 | ||||
-rw-r--r-- | bash/.bashrc | 24 | ||||
-rw-r--r-- | dunst/dunstrc | 2 | ||||
-rw-r--r-- | gtk-2.0/gtkrc | 6 | ||||
-rw-r--r-- | gtk-3.0/settings.ini | 6 | ||||
-rw-r--r-- | hypr/hyprland.conf | 58 | ||||
-rwxr-xr-x | installers/wc | 6 | ||||
-rw-r--r-- | kitty/kitty.conf | 10 | ||||
-rw-r--r-- | niri/config.kdl | 39 | ||||
-rw-r--r-- | rofi/dmenu.rasi | 2 | ||||
-rw-r--r-- | scroll/config | 595 | ||||
-rw-r--r-- | scroll/config.d/swaysome.conf | 69 | ||||
-rw-r--r-- | scroll/scripts/maximize.lua | 42 | ||||
-rw-r--r-- | scroll/scripts/maximize_when_only.lua | 38 | ||||
-rw-r--r-- | scroll/scripts/scratchpad.lua | 66 | ||||
-rw-r--r-- | scroll/scripts/swallow.lua | 32 | ||||
-rwxr-xr-x | sxhkd/sxhkdrc | 4 | ||||
-rw-r--r-- | tofi/cosmic | 2 | ||||
-rw-r--r-- | tofi/themes/dmenu | 2 | ||||
-rw-r--r-- | tofi/themes/dmenu_vertical | 2 | ||||
-rw-r--r-- | waybar/config | 76 | ||||
-rw-r--r-- | waybar/style.css | 30 | ||||
-rw-r--r-- | xsettingsd/xsettingsd.conf | 4 | ||||
-rw-r--r-- | zsh/.zshrc | 3 |
31 files changed, 1108 insertions, 83 deletions
@@ -237,6 +237,7 @@ RVXX EXEX.settings RVXX v2/ RVXX v2.settings SchildiChat/ +scroll/config.d/user.conf Serenity/ Session/ Shibalba EXEX.settings @@ -1,11 +1,17 @@ VIM := $(shell command -v vim 2>/dev/null) +BCONFS := bash/.bash_logout bash/.bashrc ZCONFS := zsh/zshenv zsh/zshrc SCONFS := sh/profile DCONFS := doas.conf all: -install: install-hyprplugins install-zshconfigs install-shconfigs vimplug-vim +install: install-zshconfigs install-shconfigs vimplug-vim wc + +wc: + @echo "Installing wayland compositor stuff..." + @./installers/wc + @echo "Done." install-hyprplugins: install-hyprsplit install-hyprland-plugins @@ -23,12 +29,26 @@ install-hyprland-plugins: @hyprpm enable hyprscrolling @echo "Done." -install-zshconfigs: $(ZCONFS) - @echo "Installing zsh conf files..." - @echo ".zshenv..." - @ln -sf `pwd`/zsh/zshenv ~/.zshenv - @echo ".zshrc..." - @ln -sf `pwd`/zsh/zshrc ~/.zshrc +install-scrollconf: scroll/config.d/user.conf + +scroll/config.d/user.conf: + @echo "Generating user.conf..." + @mkdir -p scroll/config.d + @echo 'set $$home' $(shell echo $(HOME)) > scroll/config.d/user.conf + @echo "Done." + +install-bashconfigs: $(BCONFS) install-shconfigs + @echo "Installing bash conf files..." + @echo ".bashrc..." + @ln -sf `pwd`/bash/.bashrc ~/.bashrc + @echo ".bash_logout..." + @ln -sf `pwd`/bash/.bash_logout ~/.bash_logout + @echo "Done." + +install-zshconfigs: install-shconfigs + @echo "Settings up ZDOTDIR..." + @echo "Installing .zprofile..." + @ln -sf `pwd`/sh/profile ~/.zprofile @echo "Done." install-shconfigs: $(SCONFS) @@ -51,4 +71,4 @@ doas-conf: $(DCONFS) @sudo cp -n doas.conf /etc/doas.conf @echo "Done." -.PHONY: install-hyprplugins install-zshconfigs install-shconfigs vimplug-vim doas-conf install +.PHONY: install-hyprplugins install-zshconfigs install-shconfigs vimplug-vim doas-conf install install-scrollconf install-bashconfigs @@ -16,7 +16,7 @@ make install` Note that the `make install` will only install the files that are required to be in the home dir to their corresponding place as hard links and install vimplug -for neovim, vim, or both (depending on which are installed). Make sure to save -changes to these files before running `make install`! Additionally, if you only -want my configs for specific programs, I would recommend cloning it into a -separate directory and avoiding the `make install`. +for vim if it is installed. Make sure to save changes to these files before +running `make install`! Additionally, if you only want my configs for specific +programs, I would recommend cloning it into a separate directory and avoiding +the `make install`. diff --git a/X11/xresources b/X11/xresources index 63f2348..7d2525a 100644 --- a/X11/xresources +++ b/X11/xresources @@ -1,6 +1,6 @@ !! dmenu -dmenu.font: FiraCode Nerd Font Mono:size=24 +dmenu.font: JetBrainsMono Nerd Font:size=24 !! dwm @@ -30,7 +30,7 @@ st.termname: st-256color st.shell: /usr/bin/tmux ! The following options options can be reloaded via USR1 signal. -!st.font: FiraCode Nerd Font Mono:pixelsize=12:antialias=true:autohint=true; +!st.font: JetBrainsMono Nerd Font:pixelsize=12:antialias=true:autohint=true; !st.font2: Symbola:pixelsize=12:antialias=true:autohint=true; st.borderpx: 3 ! st alpha @@ -76,7 +76,7 @@ URxvt.secondaryScreen: 1 URxvt.secondaryScroll: 0 URxvt.secondaryWheel: 1 ! URxvt font -URxvt.font: xft:FiraCode:regular:size=8,xft:symbola:regular:size=9 +URxvt.font: xft:JetBrainsMono:regular:size=8,xft:symbola:regular:size=9 ! fix font spacing URxvt.letterSpace: -1 ! Disable printing @@ -119,7 +119,7 @@ rofi.width: 1366 ! "Number of columns" Set from: Default ! rofi.columns: 1 ! "Font to use" Set from: Default -rofi.font: FiraCode 9 +rofi.font: JetBrainsMono 9 ! "Border width" Set from: Default ! rofi.bw: 1 ! "Location on screen" Set from: Default @@ -493,3 +493,5 @@ dmenu.selhiforeground: #198844 ! white *.color7: #b4b7b5 *.color15: #ffffff +Xcursor.theme: BreezeX-Black +Xcursor.size: 32 diff --git a/alacritty/alacritty.yml b/alacritty/alacritty.yml index 1bd8532..0b30805 100644 --- a/alacritty/alacritty.yml +++ b/alacritty/alacritty.yml @@ -115,7 +115,7 @@ font: # - (macOS) Menlo # - (Linux/BSD) monospace # - (Windows) Consolas - family: FiraCode Nerd Font Mono + family: JetBrainsMono Nerd Font # The `style` can be specified to pick a specific face. style: Regular @@ -126,7 +126,7 @@ font: # # If the bold family is not specified, it will fall back to the # value specified for the normal font. - family: FiraCode Nerd Font Mono + family: JetBrainsMono Nerd Font # The `style` can be specified to pick a specific face. style: Bold @@ -137,7 +137,7 @@ font: # # If the italic family is not specified, it will fall back to the # value specified for the normal font. - family: FiraCode Nerd Font Mono + family: JetBrainsMono Nerd Font # The `style` can be specified to pick a specific face. style: Italic @@ -148,7 +148,7 @@ font: # # If the bold italic family is not specified, it will fall back to the # value specified for the normal font. - family: FiraCode Nerd Font Mono + family: JetBrainsMono Nerd Font # The `style` can be specified to pick a specific face. style: Bold Italic diff --git a/awesome/rc.lua b/awesome/rc.lua index fda4f16..7fa49ef 100644 --- a/awesome/rc.lua +++ b/awesome/rc.lua @@ -58,7 +58,7 @@ awesome_config_folder = config_dir .. "awesome" theme.dir = string.format("%s/awesome/themes/%s", config_dir, theme.name) beautiful.init(theme.dir .. "/theme.lua") beautiful.useless_gap = 5 -font = beautiful.font or "FiraCode Nerd Font Mono 18" +font = beautiful.font or "JetBrainsMono Nerd Font 18" -- Library I'm using for swallowing, but it does much more diff --git a/awesome/themes/zachir/theme.lua b/awesome/themes/zachir/theme.lua index b54c3c6..30a575a 100644 --- a/awesome/themes/zachir/theme.lua +++ b/awesome/themes/zachir/theme.lua @@ -12,8 +12,8 @@ local themes_path = gfs.get_themes_dir() local theme = {} -theme.font = "FiraCode Nerd Font Mono 18" -theme.font2 = "FiraCode Nerd Font Mono 12" +theme.font = "JetBrainsMono Nerd Font 18" +theme.font2 = "JetBrainsMono Nerd Font 12" theme.bg_normal = xrdb.background theme.bg_focus = xrdb.color2 @@ -162,7 +162,7 @@ theme.tabbar_disable = false -- disable the tab bar entirely theme.tabbar_ontop = false theme.tabbar_radius = 0 -- border radius of the tabbar theme.tabbar_style = "default" -- style of the tabbar ("default", "boxes" or "modern") -theme.tabbar_font = "FiraCode Nerd Font Mono 24" -- font of the tabbar +theme.tabbar_font = "JetBrainsMono Nerd Font 24" -- font of the tabbar theme.tabbar_size = 40 -- size of the tabbar theme.tabbar_position = "top" -- position of the tabbar theme.tabbar_bg_normal = "#000000" -- background color of the focused client on the tabbar diff --git a/bash/.bash_logout b/bash/.bash_logout new file mode 100644 index 0000000..9bccd62 --- /dev/null +++ b/bash/.bash_logout @@ -0,0 +1,2 @@ +clear +reset diff --git a/bash/.bashrc b/bash/.bashrc new file mode 100644 index 0000000..600352a --- /dev/null +++ b/bash/.bashrc @@ -0,0 +1,24 @@ +# Syntax Highlighting +source /usr/share/blesh/ble.sh + +# Incorporate my SH agnostic stuff +[ -f "$XDG_CONFIG_HOME/sh/aliases" ] && source "$XDG_CONFIG_HOME/sh/aliases" +[ -f "$XDG_CONFIG_HOME/sh/functions" ] && source "$XDG_CONFIG_HOME/sh/functions" + +# History Search +bind '"\e[A": history-search-backward' +bind '"\e[B": history-search-forward' + +# History Cleaning +export HISTCONTROL="erasedups:ignorespace" + +# Run-Help Ability +run-help() { help "$READLINE_LINE" 2>/dev/null || man "$READLINE_LINE"; } +bind -m vi-insert -x '"\eh": run-help' +bind -m emacs -x '"\eh": run-help' + +# CD when typing directory name +shopt -s autocd + +# Set my prompt +export PS1='\e[42m[\u@\H]\e[46\w\e[42m\$\e(B\e[m ' diff --git a/dunst/dunstrc b/dunst/dunstrc index 4bdcfba..6377f26 100644 --- a/dunst/dunstrc +++ b/dunst/dunstrc @@ -86,7 +86,7 @@ ### Text ### - font = FiraCode Nerd Font Mono 18 + font = JetBrainsMono Nerd Font 18 # The spacing between lines. If the height is smaller than the # font height, it will get raised to the font height. diff --git a/gtk-2.0/gtkrc b/gtk-2.0/gtkrc index 628ed00..f569e9b 100644 --- a/gtk-2.0/gtkrc +++ b/gtk-2.0/gtkrc @@ -2,9 +2,9 @@ # Any customization should be done in ~/.gtkrc-2.0.mine instead. include "/home/zachir/.gtkrc-2.0.mine" -gtk-theme-name="Flat-Remix-GTK-Green-Darkest-Solid" -gtk-icon-theme-name="Cosmic" -gtk-font-name="Cantarell 11" +gtk-theme-name="Flat-Remix-GTK-Green-Darkest" +gtk-icon-theme-name="ePapirus-Dark" +gtk-font-name="Noto Sans, 10" gtk-cursor-theme-name="BreezeX-Black" gtk-cursor-theme-size=32 gtk-toolbar-style=3 diff --git a/gtk-3.0/settings.ini b/gtk-3.0/settings.ini index 28ef3a0..310ac7b 100644 --- a/gtk-3.0/settings.ini +++ b/gtk-3.0/settings.ini @@ -1,7 +1,7 @@ [Settings] -gtk-theme-name=Flat-Remix-GTK-Green-Darkest-Solid -gtk-icon-theme-name=Cosmic -gtk-font-name=Cantarell 11 +gtk-theme-name=Flat-Remix-GTK-Green-Darkest +gtk-icon-theme-name=ePapirus-Dark +gtk-font-name=Noto Sans, 10 gtk-cursor-theme-name=BreezeX-Black gtk-cursor-theme-size=32 gtk-toolbar-style=3 diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index 5e2f436..d3dd6ac 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -107,7 +107,7 @@ misc { disable_splash_rendering = true enable_swallow = true swallow_regex = ^(kitty)$ - swallow_exception_regex = ^(wev|.*ueberzug|n?vi?m? .*)$ + swallow_exception_regex = ^(wev|.*ueberzug|n?vi?m? .*|.*dragon.*)$ vfr = true vrr = 3 } @@ -140,7 +140,7 @@ decoration { #{{{ Animations options animations { - enabled = no + enabled = yes # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more bezier = myBezier, 0.05, 0.9, 0.1, 1.05 animation = windows, 1, 7, myBezier @@ -176,16 +176,6 @@ master { } #}}} -#{{{ Hyprscrolling layout options -plugin:hyprscrolling { - fullscreen_on_one_column = true - column_width = 0.5 - explicit_column_widths = 0.333, 0.5, 0.667, 1.0 - focus_fit_method = 1 - follow_focus = true -} -#}}} - #{{{ Gestures options gestures { # See https://wiki.hyprland.org/Configuring/Variables/ for more @@ -199,6 +189,14 @@ plugin { num_workspaces = 9 persistent_workspaces = true } + + hyprscrolling { + fullscreen_on_one_column = true + column_width = 0.5 + explicit_column_widths = 0.333, 0.5, 0.667, 1.0 + focus_fit_method = 1 + follow_focus = true + } } #}}} @@ -236,6 +234,13 @@ windowrulev2 = move cursor -50% -50%, class:^(yabridge-host.exe.so)$, title:^(me #windowrulev2 = move cursor -50% -50%, class:^(REAPER)$, title:^(Routing for track [0-9]*)$ #windowrulev2 = float, floating:0, title:^(menu)$ #windowrulev2 = forceinput, title:^(menu)$ +windowrulev2 = workspace special:easyeffects silent, class: ^(com\.github\.wwmm\.easyeffects)$ +# Fix brave xray menus +windowrulev2 = xray 0, class: ^(\s*), title: ^(\s*)$ +#}}} + +#{{{ Layerrules +layerrule = blur, waybar #}}} #{{{ Mods @@ -268,12 +273,14 @@ $secdMod = ALT # hyprscrolling layout binds #bind = $mainMod+SHIFT, H, layoutmsg, move -1 #HYPRSCROLLING #bind = $mainMod+SHIFT, L, layoutmsg, move +1 #HYPRSCROLLING -bind = $mainMod+ALT, H, layoutmsg, movewindowto l #HYPRSCROLLING -bind = $mainMod+ALT, L, layoutmsg, movewindowto r #HYPRSCROLLING -bind = $mainMod+SHIFT, H, movewindow, l #HYPRSCROLLING -bind = $mainMod+SHIFT, L, movewindow, r #HYPRSCROLLING -bind = $mainMod+SHIFT, K, movewindow, u #HYPRSCROLLING -bind = $mainMod+SHIFT, J, movewindow, d #HYPRSCROLLING +bind = $mainMod+SHIFT, H, layoutmsg, movewindowto l #HYPRSCROLLING +bind = $mainMod+SHIFT, J, layoutmsg, movewindowto d #HYPRSCROLLING +bind = $mainMod+SHIFT, K, layoutmsg, movewindowto u #HYPRSCROLLING +bind = $mainMod+SHIFT, L, layoutmsg, movewindowto r #HYPRSCROLLING +#bind = $mainMod+SHIFT, H, movewindow, l #HYPRSCROLLING +#bind = $mainMod+SHIFT, L, movewindow, r #HYPRSCROLLING +#bind = $mainMod+SHIFT, K, movewindow, u #HYPRSCROLLING +#bind = $mainMod+SHIFT, J, movewindow, d #HYPRSCROLLING bind = $mainMod, H, layoutmsg, focus l #HYPRSCROLLING bind = $mainMod, J, layoutmsg, focus d #HYPRSCROLLING bind = $mainMod, K, layoutmsg, focus u #HYPRSCROLLING @@ -282,6 +289,12 @@ bind = $mainMod+SHIFT, R, layoutmsg, colresize +conf #HYPRSCROLLING bind = $mainMod+SHIFT, Return, layoutmsg, promote #HYPRSCROLLING #}}} +#{{{ tab binds +bind = $mainMod+ALT, O, togglegroup +bind = $mainMod+ALT, J, changegroupactive, f +bind = $mainMod+ALT, K, changegroupactive, b +#}}} + #{{{ Group binds # Group binds #bind = $mainMod CONTROL, G, togglegroup, @@ -401,8 +414,9 @@ submap = reset #}}} #{{{ Menu bindings -bind = $mainMod, R, exec, sh -c "tofi-drun --drun-launch=true -c $HOME/.config/tofi/themes/dmenu_vertical" +bind = $mainMod, E, exec, sh -c "tofi-drun --drun-launch=true -c $HOME/.config/tofi/themes/dmenu_vertical" bind = $mainMod, D, exec, sh -c "$(tofi-run -c $HOME/.config/tofi/themes/dmenu_vertical)" +bind = $mainMod, R, exec, rs bind = $mainMod $secdMod, Q, exec, qbc bind = $mainMod $secdMod, W, exec, lwc bind = $mainMod $secdMod, E, exec, mbc @@ -473,7 +487,9 @@ bind = , XF86AudioNext, exec, playerctl next bind = , XF86AudioMute, exec, volsv -t #bindl = , XF86AudioMicMute, exec, volsv -m bind = , XF86AudioMicMute, exec, volsv -m -bindel = , XF86MonBrightnessUp, exec, hypr-brightness + -bindel = , XF86MonBrightnessDown, exec, hypr-brightness - +bindel = , XF86MonBrightnessUp, exec, bl -i +bindel = , XF86MonBrightnessDown, exec, bl -d +bindl = $mainMod, XF86MonBrightnessUp, exec, bl -I 1 +bindl = $mainMod, XF86MonBrightnessDown, exec, bl -D 1 bind = , Print, exec, scrshot #}}} diff --git a/installers/wc b/installers/wc new file mode 100755 index 0000000..bfdb299 --- /dev/null +++ b/installers/wc @@ -0,0 +1,6 @@ +#!/bin/sh + +pgrep -x Hyprland && make install-hyprplugins +pgrep -x scroll && make install-scrollconf + + diff --git a/kitty/kitty.conf b/kitty/kitty.conf index b833ace..7afcb30 100644 --- a/kitty/kitty.conf +++ b/kitty/kitty.conf @@ -6,7 +6,7 @@ #: individual font faces and even specify special fonts for particular #: characters. -font_family FiraCode Nerd Font Mono +font_family JetBrainsMono Nerd Font bold_font auto italic_font auto bold_italic_font auto @@ -24,7 +24,7 @@ bold_italic_font auto #: italic_font Operator Mono Book Italic #: bold_italic_font Operator Mono Medium Italic -font_size 12.0 +font_size 15.0 #: Font size (in pts) @@ -1151,7 +1151,7 @@ color8 #969896 #: black color1 #89231d -color9 #ec0101 +color9 #cc342b #: red @@ -1170,8 +1170,8 @@ color12 #3971ed #: blue -color5 #6e3c85 -color13 #8400c1 +color5 #784e93 +color13 #a36ac7 #: magenta diff --git a/niri/config.kdl b/niri/config.kdl index aca5eda..179a23e 100644 --- a/niri/config.kdl +++ b/niri/config.kdl @@ -15,6 +15,8 @@ input { // For example: // layout "us,ru" // options "grp:win_space_toggle,compose:ralt,ctrl:nocaps" + layout "us" + options "caps:escape" } // Enable numlock on startup, omitting this setting disables it. @@ -71,7 +73,7 @@ input { // Remember to uncomment the node by removing "/-"! output "eDP-1" { // Uncomment this line to disable this output. - // off + //off // Resolution and, optionally, refresh rate of the output. // The format is "<width>x<height>" or "<width>x<height>@<refresh rate>". @@ -100,6 +102,20 @@ output "eDP-1" { position x=0 y=0 } +/-output "DP-2" { + mode "1920x1080@75.000" + scale 1 + transform "normal" + position x=0 y=0 +} + +/-output "HDMI-A-1" { + mode "1920x1080@75.000" + scale 1 + transform "normal" + position x=1920 y=0 +} + // Settings that influence how windows are positioned and sized. // Find more information on the wiki: // https://github.com/YaLTeR/niri/wiki/Configuration:-Layout @@ -115,7 +131,7 @@ layout { // together with the previously focused column. center-focused-column "never" - // You can customize the widths that "switch-preset-column-width" (Mod+E) toggles between. + // You can customize the widths that "switch-preset-column-width" (Mod+R) toggles between. preset-column-widths { // Proportion sets the width as a fraction of the output width, taking gaps into account. // For example, you can perfectly fit four windows sized "proportion 0.25" on an output. @@ -128,7 +144,7 @@ layout { // fixed 1920 } - // You can also customize the heights that "switch-preset-window-height" (Mod+Shift+E) toggles between. + // You can also customize the heights that "switch-preset-window-height" (Mod+Shift+R) toggles between. // preset-window-heights { } // You can change the default width of the new windows. @@ -189,8 +205,8 @@ layout { off width 4 - active-color "#ffc87f" - inactive-color "#505050" + active-color "#198844" + inactive-color "#1b1d1c" // Color of the border around windows that request your attention. urgent-color "#9b0000" @@ -257,8 +273,14 @@ layout { // This line starts waybar, a commonly used bar for Wayland compositors. spawn-at-startup "dinit" spawn-at-startup "waybar" -//spawn-at-startup "swaybg" "-i" "~/Pictures/background.png" -//spawn-at-startup "swayidle" +spawn-at-startup "hyprpaper" +spawn-at-startup "hypridle" +spawn-at-startup "dunst" +spawn-at-startup "xwayland-satellite" + +environment { + DISPLAY ":0" +} // Uncomment this line to ask the clients to omit their client-side decorations if possible. // If the client will specifically ask for CSD, the request will be honored. @@ -585,4 +607,7 @@ binds { // Powers off the monitors. To turn them back on, do any input like // moving the mouse or pressing any other key. Mod+Shift+P { power-off-monitors; } + + // Browsers + Super+Alt+W { spawn "lwc"; } } diff --git a/rofi/dmenu.rasi b/rofi/dmenu.rasi index 6fd198a..2ac7745 100644 --- a/rofi/dmenu.rasi +++ b/rofi/dmenu.rasi @@ -8,7 +8,7 @@ background-color: Black; border-color: White; text-color: White; - font: "FiraCode Nerd Font Mono 12"; + font: "JetBrainsMono Nerd Font 12"; } window { anchor: north; diff --git a/scroll/config b/scroll/config new file mode 100644 index 0000000..889da2e --- /dev/null +++ b/scroll/config @@ -0,0 +1,595 @@ +# vim: ft=swayconfig +# +# Default config for scroll +# +# Copy this to ~/.config/scroll/config and edit it to your liking. +# +# Read `man 5 scroll` for a complete reference. + +include /etc/scroll/config.d/* + +# This includes config.d/user.conf, which should set the $home variable +include ~/.config/scroll/config.d/user.conf + +### Variables +# +# Logo key. Use Mod1 for Alt. +set $mod Mod4 +# Home row direction keys, like vim +set $left Left +set $down Down +set $up Up +set $right Right +# Your preferred terminal emulator +set $term kitty +# Your preferred application launcher +set $rmenu tofi-drun --drun-launch=true -c ~/.config/tofi/themes/dmenu_vertical +set $dmenu dmenu_run -l 15 +# Your preferred file manager +set $filemanager kitty -e lf + +# The scripts directory +set $scripts $home/.config/scroll/scripts + +exec waybar +exec hypridle +exec hyprpaper + +### Output configuration +# +# Default wallpaper (more resolutions are available in /usr/share/backgrounds/scroll/) +# output * bg /usr/share/backgrounds/scroll/Sway_Wallpaper_Blue_1920x1080.png fill +# +# Example configuration: +# +# output HDMI-A-1 resolution 1920x1080 position 1920,0 +# +# You can get the names of your outputs by running: scrollmsg -t get_outputs + +#output eDP-1 resolution 1920x1080 position 0 0 +#output HDMI-A-1 resolution 1920x1080 position 1920 0 +#output DP-2 resolution 1920x1080 position 0 0 + +### Idle configuration +# +# Example configuration: +# +# exec swayidle -w \ +# timeout 300 'swaylock -f -c 000000' \ +# timeout 600 'scrollmsg "output * power off"' resume 'scrollmsg "output * power on"' \ +# before-sleep 'swaylock -f -c 000000' +# +# This will lock your screen after 300 seconds of inactivity, then turn off +# your displays after another 300 seconds, and turn your screens back on when +# resumed. It will also lock your screen before your computer goes to sleep. + +### Input configuration +# +# Example configuration: +# +# input type:touchpad { +# dwt enabled +# tap enabled +# natural_scroll enabled +# middle_emulation enabled +# } +# +# input type:keyboard { +# xkb_layout "eu" +# } +# +# You can also configure each device individually. +# Read `man 5 scroll-input` for more information about this section. + +### Windows defaults +default_border pixel 2 +gaps inner 4 +gaps outer 20 +client.focused #198844 #000000 #e0e0e0 #198844 #198844 +client.focused_inactive #1b1d1c #000000 #e0e0e0 #1b1d1c #1b1d1c +client.unfocused #1b1d1c #000000 #e0e0e0 #1b1d1c #1b1d1c + +# Idle inhibit for fullscreen windows +for_window [all] inhibit_idle fullscreen + +# Layout settings +layout_default_width 0.5 +layout_default_height 1.0 +layout_widths [0.33333333 0.5 0.666666667 1.0] +layout_heights [0.33333333 0.5 0.666666667 1.0] + +fullscreen_movefocus true + +focus_follows_mouse yes + +mouse_warping none + +# Animations +animations { + enabled yes + default yes 100 var 3 [ 0.215 0.61 0.355 1 ] + window_open yes 100 var 3 [ 0 0 1 1 ] + window_move yes 100 var 3 [ 0.215 0.61 0.355 1 ] off 0.05 6 [0 0.6 0.4 0 1 0 0.4 -0.6 1 -0.6] + window_size yes 100 var 3 [ -0.35 0 0 0.5 ] +} + +### Key bindings +# +# Basics: +# + # Start a terminal + bindsym $mod+Return exec $term + + # Kill focused window + bindsym $mod+Backspace kill + bindsym $mod+Shift+Backspace kill unfocused + bindsym $mod+Ctrl+Backspace kill all + + # Start your launcher + bindsym $mod+e exec $rmenu + bindsym $mod+d exec $dmenu + + # Start restart menu + bindsym $mod+r exec rs + + # Launch your file manager + bindsym $mod+Alt+f exec $filemanager + + # Lock your screen + bindsym $mod+q exec loginctl lock-session + + # Drag floating windows by holding down $mod and left mouse button. + # Resize them with right mouse button + $mod. + # Despite the name, also works for non-floating windows. + # Change normal to inverse to use left mouse button for resizing and right + # mouse button for dragging. + floating_modifier $mod normal + + # Reload the configuration file + bindsym $mod+Shift+c reload + + # Closes the active application (hopefully) + bindsym $mod+Shift+q kill + + # Exit scroll (logs you out of your Wayland session) + bindsym $mod+Shift+e exec scrollnag -t warning -m 'You pressed the exit shortcut. Do you really want to exit scroll? This will end your Wayland session.' -B 'Yes, exit scroll' 'scrollmsg exit' + + # Layout mode + bindsym $mod+bracketleft set_mode h + bindsym $mod+bracketright set_mode v +# +# Moving around: +# + # Move your focus around + bindsym $mod+h focus left + bindsym $mod+j focus down + bindsym $mod+k focus up + bindsym $mod+l focus right + bindsym $mod+home focus beginning + bindsym $mod+end focus end + # Move the focused window with the same, but add Ctrl + bindsym $mod+Ctrl+h move left + bindsym $mod+Ctrl+j move down + bindsym $mod+Ctrl+k move up + bindsym $mod+Ctrl+l move right + bindsym $mod+Ctrl+home move beginning + bindsym $mod+Ctrl+end move end + # nomode + bindsym $mod+Alt+h move left nomode + bindsym $mod+Alt+j move down nomode + bindsym $mod+Alt+k move up nomode + bindsym $mod+Alt+l move right nomode + bindsym $mod+Alt+home move beginning nomode + bindsym $mod+Alt+end move end nomode + + # Focus other monitors + bindsym $mod+Shift+h focus output left + bindsym $mod+Shift+j focus output down + bindsym $mod+Shift+k focus output up + bindsym $mod+Shift+l focus output right + + # Move window to other monitors + bindsym $mod+Shift+Ctrl+h move container to output left + bindsym $mod+Shift+Ctrl+j move container to output down + bindsym $mod+Shift+Ctrl+k move container to output up + bindsym $mod+Shift+Ctrl+l move container to output right +## +## Workspaces: +## NOW USING SWAYSOME +## +# # Switch to workspace +# bindsym $mod+1 workspace number 1 +# bindsym $mod+2 workspace number 2 +# bindsym $mod+3 workspace number 3 +# bindsym $mod+4 workspace number 4 +# bindsym $mod+5 workspace number 5 +# bindsym $mod+6 workspace number 6 +# bindsym $mod+7 workspace number 7 +# bindsym $mod+8 workspace number 8 +# bindsym $mod+9 workspace number 9 +# # Move focused container to workspace +# bindsym $mod+Shift+1 move container to workspace number 1; workspace number 1 +# bindsym $mod+Shift+2 move container to workspace number 2; workspace number 2 +# bindsym $mod+Shift+3 move container to workspace number 3; workspace number 3 +# bindsym $mod+Shift+4 move container to workspace number 4; workspace number 4 +# bindsym $mod+Shift+5 move container to workspace number 5; workspace number 5 +# bindsym $mod+Shift+6 move container to workspace number 6; workspace number 6 +# bindsym $mod+Shift+7 move container to workspace number 7; workspace number 7 +# bindsym $mod+Shift+8 move container to workspace number 8; workspace number 8 +# bindsym $mod+Shift+9 move container to workspace number 9; workspace number 9 +# # Note: workspaces can have any name you want, not just numbers. +# # We just use 1-10 as the default. + +# Scaling + # Workspace + bindsym $mod+Shift+comma scale_workspace incr -0.05 + bindsym --whole-window $mod+Shift+button4 scale_workspace incr -0.05 + bindsym $mod+Shift+period scale_workspace incr 0.05 + bindsym --whole-window $mod+Shift+button5 scale_workspace incr 0.05 + bindsym $mod+Shift+Ctrl+period scale_workspace reset + + # Overview + bindsym --no-repeat $mod+tab scale_workspace overview + bindsym --whole-window button8 scale_workspace overview + + # Jump + # jump_labels_color #9e1530FF + # jump_labels_background #15309eFF + # jump_labels_scale 0.9 + # jump_labels_keys asdf + bindsym --no-repeat $mod+slash jump + bindsym --no-repeat $mod+Shift+slash jump container + bindsym --no-repeat $mod+Ctrl+slash jump workspaces + bindsym --no-repeat $mod+Alt+slash jump floating + + # Content + bindsym $mod+comma scale_content incr -0.05 + bindsym --whole-window $mod+button4 scale_content incr -0.05 + bindsym $mod+period scale_content incr 0.05 + bindsym --whole-window $mod+button5 scale_content incr 0.05 + bindsym $mod+Ctrl+period scale_content reset + +# +# Layout stuff: +# + # Make the current focus fullscreen + bindsym $mod+f fullscreen + #bindsym $mod+Shift+f fullscreen global + bindsym $mod+Shift+f fullscreen_application toggle + bindsym $mod+Ctrl+Alt+f fullscreen_application reset + + # Maximize, not fullscreen + bindsym $mod+m lua $scripts/maximize.lua toggle + + # Toggle the current focus between tiling and floating mode + bindsym $mod+y focus mode_toggle + # Toggle layout type (h<->v) + bindsym $mod+Shift+y layout_transpose + + # Float a window + bindsym $mod+Shift+space floating toggle + + # Toggle sticky + bindsym $mod+Shift+Ctrl+a sticky toggle + # Toggle pin + bindsym --no-repeat $mod+a pin beginning + bindsym --no-repeat $mod+Shift+a pin end + + # Selection + bindsym --no-repeat $mod+Insert selection toggle + bindsym --no-repeat $mod+Ctrl+Insert selection reset + bindsym --no-repeat $mod+Shift+Insert selection move + bindsym --no-repeat $mod+Ctrl+Shift+Insert selection workspace + bindsym --no-repeat $mod+Alt+Insert selection to_trail + + # Marks + # bindsym $mod+m exec scroll-mark-toggle.sh + # bindsym $mod+Shift+m exec scroll-mark-remove.sh + # bindsym $mod+apostrophe exec scroll-mark-switch.sh + +# +# Scratchpad: +# + # Scroll has a "scratchpad", which is a bag of holding for windows. + # You can send windows there and get them back later. + + # Move the currently focused window to the scratchpad + #bindsym $mod+Shift+z move scratchpad + + # Show the next scratchpad window or hide the focused scratchpad window. + # If there are multiple scratchpad windows, this command cycles through them. + #bindsym $mod+z scratchpad show + #bindsym --no-repeat $mod+Alt+z scratchpad jump + + #bindsym $mod+Ctrl+z workspace back_and_forth + +# +# Mode modifiers +# +mode "modifiers" { + bindsym $right set_mode after; mode default + bindsym $left set_mode before; mode default + bindsym home set_mode beginning; mode default + bindsym end set_mode end; mode default + bindsym $up set_mode focus; mode default + bindsym $down set_mode nofocus; mode default + bindsym h set_mode center_horiz; mode default + bindsym Shift+h set_mode nocenter_horiz; mode default + bindsym v set_mode center_vert; mode default + bindsym Shift+v set_mode nocenter_vert; mode default + bindsym r set_mode reorder_auto; mode default + bindsym Shift+r set_mode noreorder_auto; mode default + + # Return to default mode + bindsym Escape mode "default" +} +bindsym $mod+backslash mode "modifiers" + +# +# Resizing containers: +# +bindsym $mod+minus cycle_size h prev +bindsym $mod+equal cycle_size h next +bindsym $mod+Shift+minus cycle_size v prev +bindsym $mod+Shift+equal cycle_size v next + +mode "setsizeh" { + bindsym 1 set_size h 0.125; mode default + bindsym 2 set_size h 0.1666666667; mode default + bindsym 3 set_size h 0.25; mode default + bindsym 4 set_size h 0.333333333; mode default + bindsym 5 set_size h 0.375; mode default + bindsym 6 set_size h 0.5; mode default + bindsym 7 set_size h 0.625; mode default + bindsym 8 set_size h 0.6666666667; mode default + bindsym 9 set_size h 0.75; mode default + bindsym 0 set_size h 0.833333333; mode default + bindsym minus set_size h 0.875; mode default + bindsym equal set_size h 1.0; mode default + + # Return to default mode + bindsym Escape mode "default" +} +bindsym $mod+b mode "setsizeh" + +mode "setsizev" { + bindsym 1 set_size v 0.125; mode default + bindsym 2 set_size v 0.1666666667; mode default + bindsym 3 set_size v 0.25; mode default + bindsym 4 set_size v 0.333333333; mode default + bindsym 5 set_size v 0.375; mode default + bindsym 6 set_size v 0.5; mode default + bindsym 7 set_size v 0.625; mode default + bindsym 8 set_size v 0.6666666667; mode default + bindsym 9 set_size v 0.75; mode default + bindsym 0 set_size v 0.833333333; mode default + bindsym minus set_size v 0.875; mode default + bindsym equal set_size v 1.0; mode default + + # Return to default mode + bindsym Escape mode "default" +} +bindsym $mod+Shift+b mode "setsizev" + +mode "resize" { + # left will shrink the containers width + # right will grow the containers width + # up will shrink the containers height + # down will grow the containers height + bindsym $left resize shrink width 100px + bindsym $down resize grow height 100px + bindsym $up resize shrink height 100px + bindsym $right resize grow width 100px + + # Return to default mode + bindsym Escape mode "default" +} +bindsym $mod+Shift+r mode "resize" + +mode "align" { + bindsym c align center; mode default + bindsym m align middle; mode default + bindsym r align reset; mode default + bindsym $left align left; mode default + bindsym $right align right; mode default + bindsym $up align up; mode default + bindsym $down align down; mode default + bindsym Escape mode "default" +} +bindsym $mod+c mode "align" + +mode "fit_size" { + bindsym w fit_size h visible proportional; mode default + bindsym Shift+w fit_size v visible proportional; mode default + bindsym Ctrl+w fit_size h visible equal; mode default + bindsym Ctrl+Shift+w fit_size v visible equal; mode default + + bindsym $right fit_size h toend proportional; mode default + bindsym Shift+$right fit_size v toend proportional; mode default + bindsym Ctrl+$right fit_size h toend equal; mode default + bindsym Ctrl+Shift+$right fit_size v toend equal; mode default + + bindsym $left fit_size h tobeg proportional; mode default + bindsym Shift+$left fit_size v tobeg proportional; mode default + bindsym Ctrl+$left fit_size h tobeg equal; mode default + bindsym Ctrl+Shift+$left fit_size v tobeg equal; mode default + + bindsym $up fit_size h active proportional; mode default + bindsym Shift+$up fit_size v active proportional; mode default + #bindsym Ctrl+$up fit_size h active equal; mode default + #bindsym Ctrl+Shift+$up fit_size v active equal; mode default + + bindsym $down fit_size h all proportional; mode default + bindsym Shift+$down fit_size v all proportional; mode default + bindsym Ctrl+$down fit_size h all equal; mode default + bindsym Ctrl+Shift+$down fit_size v all equal; mode default + bindsym Escape mode "default" +} +bindsym $mod+w mode "fit_size" + +mode "trailmark" { + bindsym bracketright trailmark next + bindsym bracketleft trailmark prev + bindsym semicolon trailmark toggle; mode default + bindsym Escape mode "default" +} +bindsym $mod+semicolon mode "trailmark" + +mode "trail" { + bindsym bracketright trail next + bindsym bracketleft trail prev + bindsym semicolon trail new; mode default + bindsym d trail delete; mode default + bindsym c trail clear; mode default + bindsym insert trail to_selection; mode default + bindsym Escape mode "default" +} +bindsym $mod+Shift+semicolon mode "trail" + +mode "spaces" { + bindsym 1 space load 1; mode default + bindsym 2 space load 2; mode default + bindsym 3 space load 3; mode default + bindsym 4 space load 4; mode default + bindsym 5 space load 5; mode default + bindsym 6 space load 6; mode default + bindsym 7 space load 7; mode default + bindsym 8 space load 8; mode default + bindsym 9 space load 9; mode default + bindsym 0 space load 0; mode default + bindsym Shift+1 space save 1; mode default + bindsym Shift+2 space save 2; mode default + bindsym Shift+3 space save 3; mode default + bindsym Shift+4 space save 4; mode default + bindsym Shift+5 space save 5; mode default + bindsym Shift+6 space save 6; mode default + bindsym Shift+7 space save 7; mode default + bindsym Shift+8 space save 8; mode default + bindsym Shift+9 space save 9; mode default + bindsym Shift+0 space save 0; mode default + bindsym Ctrl+1 space restore 1; mode default + bindsym Ctrl+2 space restore 2; mode default + bindsym Ctrl+3 space restore 3; mode default + bindsym Ctrl+4 space restore 4; mode default + bindsym Ctrl+5 space restore 5; mode default + bindsym Ctrl+6 space restore 6; mode default + bindsym Ctrl+7 space restore 7; mode default + bindsym Ctrl+8 space restore 8; mode default + bindsym Ctrl+9 space restore 9; mode default + bindsym Ctrl+0 space restore 0; mode default + bindsym Escape mode "default" +} +bindsym $mod+g mode "spaces" + +# +# Utilities: +# + # Special keys to adjust volume via PulseAudio + bindsym --locked XF86AudioMute exec volsv -t + bindsym --locked XF86AudioLowerVolume exec volsv -d + bindsym --locked XF86AudioRaiseVolume exec volsv -i + bindsym --locked XF86AudioMicMute exec volsv -m + + # Special keys to control media via playerctl + bindsym --locked XF86AudioPlay exec playerctl play-pause + bindsym --locked XF86AudioPause exec playerctl play-pause + bindsym --locked XF86AudioPrev exec playerctl previous + bindsym --locked XF86AudioNext exec playerctl next + bindsym --locked XF86AudioStop exec playerctl stop + + # Special keys to adjust brightness via brightnessctl + bindsym --locked XF86MonBrightnessDown exec bl -d + bindsym --locked XF86MonBrightnessUp exec bl -i + + # Special key to take a screenshot with grim + bindsym Print exec grim + +# Launch lwc librewolf profile interface +bindsym $mod+Alt+w exec lwc +# Launch qbc qutebrowser profile interface +bindsym $mod+Alt+q exec qbc +# Launch dmount dmenu mount script +bindsym $mod+Alt+comma exec dmount +# Launch dmenuumount dmenu umount script +bindsym $mod+Alt+period exec dmenuumount + +focus_wrapping yes + +bindgesture swipe:4:right workspace next +bindgesture swipe:4:left workspace prev + +bindgesture swipe:4:up scale_workspace overview + +# Enable window swallowing (of mpv specifically) +lua $scripts/swallow.lua + +# Enable maximize when only +lua $scripts/maximize_when_only.lua + +# Scratchpads +for_window [app_id="sphtop"] move scratchpad +for_window [app_id="sphtop"] scratchpad show +bindsym $mod+Ctrl+z lua $scripts/scratchpad.lua sphtop kitty htop +for_window [app_id="spterm"] move scratchpad +for_window [app_id="spterm"] scratchpad show +bindsym $mod+Ctrl+x lua $scripts/scratchpad.lua spterm kitty +for_window [app_id="sppmxr"] move scratchpad +for_window [app_id="sppmxr"] scratchpad show +bindsym $mod+Ctrl+c lua $scripts/scratchpad.lua sppmxr kitty pulsemixer +for_window [app_id="spblue"] move scratchpad +for_window [app_id="spblue"] scratchpad show +bindsym $mod+Ctrl+v lua $scripts/scratchpad.lua spblue kitty bluetoothctl +for_window [app_id="spncmp"] move scratchpad +for_window [app_id="spncmp"] scratchpad show +bindsym $mod+Ctrl+b lua $scripts/scratchpad.lua spncmp kitty ncmpcpp +for_window [app_id="spmutt"] move scratchpad +for_window [app_id="spmutt"] scratchpad show +bindsym $mod+Ctrl+a lua $scripts/scratchpad.lua spmutt kitty neomutt +for_window [app_id="spprof"] move scratchpad +for_window [app_id="spprof"] scratchpad show +bindsym $mod+Ctrl+s lua $scripts/scratchpad.lua spprof kitty profanity +for_window [app_id="spirss"] move scratchpad +for_window [app_id="spirss"] scratchpad show +bindsym $mod+Ctrl+d lua $scripts/scratchpad.lua spirss kitty irssi +for_window [app_id="sptodo"] move scratchpad +for_window [app_id="sptodo"] scratchpad show +bindsym $mod+Ctrl+f lua $scripts/scratchpad.lua sptodo kitty todo +for_window [app_id="sptrmc"] move scratchpad +for_window [app_id="sptrmc"] scratchpad show +bindsym $mod+Ctrl+g lua $scripts/scratchpad.lua sptrmc kitty tremc +for_window [app_id="org.pipewire.Helvum"] move scratchpad +for_window [app_id="org.pipewire.Helvum"] scratchpad show +bindsym $mod+Ctrl+q lua $scripts/scratchpad.lua org.pipewire.Helvum helvum +for_window [app_id="com.github.wwmm.easyeffects"] move scratchpad +for_window [app_id="com.github.wwmm.easyeffects"] scratchpad show +bindsym $mod+Ctrl+e lua $scripts/scratchpad.lua com.github.wwmm.easyeffects easyeffects + +# +# Workspace rules: +# +# Opens a terminal when creating workspace 6 +# workspace 6 exec kitty + + +# +# Status Bar: +# +# Read `man 5 scroll-bar` for more information about this section. +bar { + mode invisible + + #position top + + ## When the status_command prints a new line to stdout, scrollbar updates. + ## The default just shows the current date and time. + #status_command while date +'%Y-%m-%d %X'; do sleep 1; done + + #colors { + # statusline #ffffff + # background #323232 + # inactive_workspace #32323200 #32323200 #5c5c5c + # scroller #2F343AFF #055E20FF #FFFFFFFF + #} +} +# +include ~/.config/scroll/config.d/* diff --git a/scroll/config.d/swaysome.conf b/scroll/config.d/swaysome.conf new file mode 100644 index 0000000..eebf6a3 --- /dev/null +++ b/scroll/config.d/swaysome.conf @@ -0,0 +1,69 @@ +# vim: ft=swayconfig +# +# Use (un)bindcode or (un)bindsym, depending on what you used in your main sway config file. +# The `--no-warn` setting is only added to shortcuts that exist in the default config. You may want to add or remove +# that flag on some bindings depending on your config. + + +# Change focus between workspaces +bindsym --no-warn $mod+1 exec "swaysome focus 1" +bindsym --no-warn $mod+2 exec "swaysome focus 2" +bindsym --no-warn $mod+3 exec "swaysome focus 3" +bindsym --no-warn $mod+4 exec "swaysome focus 4" +bindsym --no-warn $mod+5 exec "swaysome focus 5" +bindsym --no-warn $mod+6 exec "swaysome focus 6" +bindsym --no-warn $mod+7 exec "swaysome focus 7" +bindsym --no-warn $mod+8 exec "swaysome focus 8" +bindsym --no-warn $mod+9 exec "swaysome focus 9" +#bindsym --no-warn $mod+0 exec "swaysome focus 0" + +# Move containers between workspaces +bindsym --no-warn $mod+Shift+1 exec "swaysome move 1" +bindsym --no-warn $mod+Shift+2 exec "swaysome move 2" +bindsym --no-warn $mod+Shift+3 exec "swaysome move 3" +bindsym --no-warn $mod+Shift+4 exec "swaysome move 4" +bindsym --no-warn $mod+Shift+5 exec "swaysome move 5" +bindsym --no-warn $mod+Shift+6 exec "swaysome move 6" +bindsym --no-warn $mod+Shift+7 exec "swaysome move 7" +bindsym --no-warn $mod+Shift+8 exec "swaysome move 8" +bindsym --no-warn $mod+Shift+9 exec "swaysome move 9" +#bindsym --no-warn $mod+Shift+0 exec "swaysome move 0" + +# Focus workspace groups +bindsym $mod+Alt+1 exec "swaysome focus-group 1" +bindsym $mod+Alt+2 exec "swaysome focus-group 2" +bindsym $mod+Alt+3 exec "swaysome focus-group 3" +bindsym $mod+Alt+4 exec "swaysome focus-group 4" +bindsym $mod+Alt+5 exec "swaysome focus-group 5" +bindsym $mod+Alt+6 exec "swaysome focus-group 6" +bindsym $mod+Alt+7 exec "swaysome focus-group 7" +bindsym $mod+Alt+8 exec "swaysome focus-group 8" +bindsym $mod+Alt+9 exec "swaysome focus-group 9" +#bindsym $mod+Alt+0 exec "swaysome focus-group 0" + +# Move containers to other workspace groups +bindsym $mod+Alt+Shift+1 exec "swaysome move-to-group 1" +bindsym $mod+Alt+Shift+2 exec "swaysome move-to-group 2" +bindsym $mod+Alt+Shift+3 exec "swaysome move-to-group 3" +bindsym $mod+Alt+Shift+4 exec "swaysome move-to-group 4" +bindsym $mod+Alt+Shift+5 exec "swaysome move-to-group 5" +bindsym $mod+Alt+Shift+6 exec "swaysome move-to-group 6" +bindsym $mod+Alt+Shift+7 exec "swaysome move-to-group 7" +bindsym $mod+Alt+Shift+8 exec "swaysome move-to-group 8" +bindsym $mod+Alt+Shift+9 exec "swaysome move-to-group 9" +#bindsym $mod+Alt+Shift+0 exec "swaysome move-to-group 0" + +# Move focused container to next output +bindsym $mod+o exec "swaysome next-output" +# Move focused container to previous output +bindsym $mod+Shift+o exec "swaysome prev-output" + +# Move focused workspace group to next output +bindsym $mod+Alt+o exec "swaysome workspace-group-next-output" +# Move focused workspace group to previous output +bindsym $mod+Alt+Shift+o exec "swaysome workspace-group-prev-output" + +# Init workspaces for every screen +exec "swaysome init 1" + + diff --git a/scroll/scripts/maximize.lua b/scroll/scripts/maximize.lua new file mode 100644 index 0000000..f0df156 --- /dev/null +++ b/scroll/scripts/maximize.lua @@ -0,0 +1,42 @@ +local args, state = ... + +-- Set up views table +local views = scroll.state_get_value(state, "views") +if views == nil then + scroll.state_set_value(state, "views", {}) + views = scroll.state_get_value(state, "views") +end + +local function find_view(view) + for _, v in ipairs(views) do + if v["object"] == view then + return v + end + end + return nil +end + +if args[1] == 'toggle' then + local focused_view = scroll.focused_view() + local view = find_view(focused_view) + if view == nil then + view = { + object = focused_view, + maximized = false, + wf = 0, + hf = 0 + } + table.insert(views, view) + end + view["maximized"] = not view["maximized"] + if view["maximized"] then + local container = scroll.view_get_container(focused_view) + view["wf"] = scroll.container_get_width_fraction(container) + view["hf"] = scroll.container_get_height_fraction(container) + scroll.command(nil, "set_size h 1.0") + scroll.command(nil, "set_size v 1.0") + else + scroll.command(nil, "set_size h " .. view["wf"]) + scroll.command(nil, "set_size v " .. view["hf"]) + end +end diff --git a/scroll/scripts/maximize_when_only.lua b/scroll/scripts/maximize_when_only.lua new file mode 100644 index 0000000..a047180 --- /dev/null +++ b/scroll/scripts/maximize_when_only.lua @@ -0,0 +1,38 @@ +local args, state = ... + +local maximized_containers = scroll.state_get_value(state, "maximized_containers") or {} + +local debug_notify = function(msg) + scroll.command(nil, "exec notify-send " .. msg) +end + +local maximize_container = function(container, workspace) + local wf = scroll.container_get_width_fraction(container) + local hf = scroll.container_get_height_fraction(container) + maximized_containers[workspace] = { container = container, wf = wf, hf = hf, workspace = workspace } + scroll.state_set_value(state, "maximized_containers", maximized_containers) + scroll.command(container, "set_size h 1.0") + scroll.command(container, "set_size v 1.0") +end + +local maximize_when_only = function() + local focused_workspace = scroll.focused_workspace() + local containers = scroll.workspace_get_tiling(focused_workspace) + local focused_container = scroll.focused_container() + local maximized_container = maximized_containers[focused_workspace] + if #containers == 1 then + if not maximized_container or (maximized_container and maximized_container.container ~= focused_container) then + -- debug_notify("Maximizing") + maximize_container(focused_container, focused_workspace) + end + elseif #containers > 1 and maximized_container then + -- debug_notify("Shrinking") + scroll.command(maximized_container.container, "set_size h " .. maximized_container.wf) + scroll.command(maximized_container.container, "set_size v " .. maximized_container.hf) + maximized_containers[focused_workspace] = nil + scroll.state_set_value(state, "maximized_containers", maximized_containers) + end + scroll.command(focused_container, "nop") +end + +scroll.add_callback("view_focus", maximize_when_only, nil) diff --git a/scroll/scripts/scratchpad.lua b/scroll/scripts/scratchpad.lua new file mode 100644 index 0000000..e581cc1 --- /dev/null +++ b/scroll/scripts/scratchpad.lua @@ -0,0 +1,66 @@ +local args, _ = ... +local id = "" +local terminal = false +local command = nil + +for i, arg in ipairs(args) do + if i <= 1 then + id = arg + if #args == 1 then + command = arg + end + elseif i == 2 then + if (arg == "kitty") then + terminal = true + else + command = arg + end + elseif (terminal == true) then + command = arg + break + end +end + +command = command or "kitty" + +local function exists(id) + local is_in_array = false + local cons = scroll.scratchpad_get_containers() + for _, con in ipairs(cons) do + local views = scroll.container_get_views(con) + for _, view in ipairs(views) do + local app_id = scroll.view_get_app_id(view) + if (app_id == id) then + is_in_array = true + end + end + end + return is_in_array +end + +local function is_focused(id) + local view = scroll.focused_view() + local app_id = scroll.view_get_app_id(view) + return app_id == id +end + +local function spawn(term, comm) + if (term) then + if (comm) then + scroll.command(nil, "exec kitty --class " .. id .. " -e " .. comm) + else + scroll.command(nil, "exec kitty --class " .. id) + end + else + scroll.command(nil, "exec " .. comm) + end +end + +if (not exists(id)) then + spawn(terminal, command) +end +if (is_focused(id)) then + scroll.command(nil, "scratchpad show") +else + scroll.command(nil, "[app_id=\"" .. id .. "\"] scratchpad show") +end diff --git a/scroll/scripts/swallow.lua b/scroll/scripts/swallow.lua new file mode 100644 index 0000000..5760886 --- /dev/null +++ b/scroll/scripts/swallow.lua @@ -0,0 +1,32 @@ +local function candidate(view) + local app_id = scroll.view_get_app_id(view) + if app_id == "mpv" then + local pview = scroll.view_get_parent_view(view) + if pview ~= nil and pview ~= view then + local papp_id = scroll.view_get_app_id(pview) + if papp_id == "kitty" then + return scroll.view_get_container(pview) + end + end + end + return nil +end + +local function on_create(view, _) + local parent = candidate(view) + if parent ~= nil then + scroll.command(parent, "move scratchpad") + end +end + +local function on_destroy(view, _) + local parent = candidate(view) + if parent ~= nil then + scroll.command(nil, "scratchpad show; floating toggle") + end +end + +scroll.add_callback("view_map", on_create, nil) +scroll.add_callback("view_unmap", on_destroy, nil) + + diff --git a/sxhkd/sxhkdrc b/sxhkd/sxhkdrc index a38f356..96ca393 100755 --- a/sxhkd/sxhkdrc +++ b/sxhkd/sxhkdrc @@ -12,11 +12,11 @@ super + Escape # program launcher super + d - dmenu_run -i -l 15 -h 36 -fn 'FiraCode Nerd Font Mono' -nb '#000' -nf '#c5c8c6' -sb '#198844' -sf '#000' + dmenu_run -i -l 15 -h 36 -fn 'JetBrainsMono Nerd Font' -nb '#000' -nf '#c5c8c6' -sb '#198844' -sf '#000' # desktop application launcher super + r - j4-dmenu-desktop --dmenu="dmenu -i -l 15 -h 36 -fn 'FiraCode Nerd Font Mono' -nb '#000' -nf '#c5c8c6' -sb '#198844' -sf '#000'" + j4-dmenu-desktop --dmenu="dmenu -i -l 15 -h 36 -fn 'JetBrainsMono Nerd Font' -nb '#000' -nf '#c5c8c6' -sb '#198844' -sf '#000'" # dmenu prompt for recording super + control + r diff --git a/tofi/cosmic b/tofi/cosmic index 8be1a31..b339f73 100644 --- a/tofi/cosmic +++ b/tofi/cosmic @@ -7,7 +7,7 @@ height = 32 horizontal = true font-size = 18 prompt-text = "" -font = FiraCode Nerd Font Mono +font = JetBrainsMono Nerd Font outline-width = 0 border-width = 0 min-input-width = 424 diff --git a/tofi/themes/dmenu b/tofi/themes/dmenu index 82cff1d..8af8c80 100644 --- a/tofi/themes/dmenu +++ b/tofi/themes/dmenu @@ -7,7 +7,7 @@ height = 36 horizontal = true font-size = 18 prompt-text = "" -font = FiraCode Nerd Font Mono +font = JetBrainsMono Nerd Font outline-width = 0 border-width = 0 min-input-width = 424 diff --git a/tofi/themes/dmenu_vertical b/tofi/themes/dmenu_vertical index 6357b5a..2e95559 100644 --- a/tofi/themes/dmenu_vertical +++ b/tofi/themes/dmenu_vertical @@ -8,7 +8,7 @@ horizontal = false font-size = 18 prompt-text = "" prompt-padding = 18 -font = FiraCode Nerd Font Mono +font = JetBrainsMono Nerd Font outline-width = 0 border-width = 0 min-input-width = 424 diff --git a/waybar/config b/waybar/config index b34ef33..f1295b6 100644 --- a/waybar/config +++ b/waybar/config @@ -1,3 +1,4 @@ +// vim: set filetype=json5 : { "layer": "bottom", "position": "top", @@ -5,16 +6,62 @@ //"output": "%%DISPLAY%%", "spacing": 4, //"margin-top": 5, - //"margin-bottom":5, + //"margin-bottom": 5, // Choose the order of the modules - "modules-left":[ "niri/workspaces", "custom/launcher", "niri/window"], + "modules-left":[ "hyprland/workspaces", "custom/launcher", "hyprland/window"], "modules-center":[], "modules-right":[ "tray", "mpd", "idle_inhibitor", "wireplumber", "cpu", "memory", "battery", "temperature#cpu", "temperature#gpu", "backlight", "network", "clock", "custom/power"], // Modules configuration + "sway/workspaces": { + "all-outputs": false, + "persistent-workspaces": { + "11": ["eDP-1"], + "12": ["eDP-1"], + "13": ["eDP-1"], + "14": ["eDP-1"], + "15": ["eDP-1"], + "16": ["eDP-1"], + "17": ["eDP-1"], + "18": ["eDP-1"], + "19": ["eDP-1"], + }, + "format": "{icon}", + "format-icons": { + "1": "1", + "2": "2", + "3": "3", + "4": "4", + "5": "5", + "6": "6", + "7": "7", + "8": "8", + "9": "9", + "10": "0", + "11": "1", + "12": "2", + "13": "3", + "14": "4", + "15": "5", + "16": "6", + "17": "7", + "18": "8", + "19": "9", + "20": "0", + "21": "1", + "22": "2", + "23": "3", + "24": "4", + "25": "5", + "26": "6", + "27": "7", + "28": "8", + "29": "9", + }, + }, "niri/workspaces": { "format": "{value}", "all-outputs": false, @@ -47,10 +94,16 @@ "persistent-workspaces": { "eDP-1": [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ], }, - "on-scroll-up": "hyprctl dispatch split-workspace e+1", - "on-scroll-down": "hyprctl dispatch split-workspace e-1", + "on-scroll-up": "hyprctl dispatch split:workspace r+1", + "on-scroll-down": "hyprctl dispatch split:workspace r-1", "on-click": "activate" }, + "sway/window": { + "separate-outputs": true, + "icon": true, + "format": "{title}", + "expand": true + }, "niri/window": { "separate-outputs": true, "icon": true, @@ -61,7 +114,7 @@ "separate-outputs": true, "icon": true, "format": "{title}", - "espand": true, + "expand": true, }, "keyboard-state": { "numlock": true, @@ -73,9 +126,9 @@ } }, "mpd": { - "format": "{title}", + "format": "{artist} - {title}", "format-stopped": "", - "format-paused": "{title}", + "format-paused": "{artist} - {title}", "format-disconnected": "", "artist-len": 15, "title-len": 15, @@ -140,7 +193,7 @@ }, "network": { // "interface": "wlp2*", // (Optional) To force the use of this interface - "format-wifi": "{essid} ", + "format-wifi": "{essid} ({signalStrength}%) ", "format-ethernet": "Connected ", "tooltip-format": "{ifname} via {gwaddr} ", "format-linked": "{ifname} (No IP) ", @@ -162,6 +215,13 @@ "on-click": "rofi -show drun", //"on-click-right": "killall rofi" }, + "custom/battery":{ + "interval": 15, + "format": "{percentage}%", + "return-type": "json", + "exec": "custom-battery", + "tooltip": true, + }, "custom/power":{ "format": "", "on-click": "rofi -show p -modi p:rofi-power-menu", diff --git a/waybar/style.css b/waybar/style.css index fefb890..6ecb923 100644 --- a/waybar/style.css +++ b/waybar/style.css @@ -3,7 +3,7 @@ margin: 0px; border-radius: 0px; /* `otf-font-awesome` is required to be installed for icons */ - font-family: FiraCode Nerd Font Mono; + font-family: JetBrainsMono Nerd Font; font-size: 18px; min-height: 0px; min-width: 0px; @@ -14,6 +14,7 @@ window#waybar { color: #ffffff; transition-property: background-color; transition-duration: .5s; + background: rgba(0, 0, 0, 0.2); } window#waybar.hidden { @@ -56,6 +57,10 @@ window#waybar.hidden { background: #198844; } +#workspaces button.focused { + background: #198844; +} + /* #workspaces button.active:hover { background: #6e3c85; @@ -85,6 +90,7 @@ window#waybar.hidden { #custom-media, #custom-launcher, #custom-power, +#custom-battery, #custom-layout, #custom-updater, #custom-snip, @@ -211,7 +217,26 @@ label:focus { background-color: #1b1d1c; font-size: 18px; margin-right: 5px; +} + +#custom-battery{ + background-color: #1b1d1c; + font-size: 18px; +} + +#custom-battery.battery_low{ + background-color: yellow; + color: #1b1d1c; +} + +#custom-battery.battery_crit{ + background-color: red; + color: #1b1d1c; +} +#custom-battery.battery_charging{ + background-color: #1d1b1c; + color: #198844; } #custom-launcher{ @@ -278,7 +303,8 @@ label:focus { } #tray { - background-color: transparent; + border-radius: 20px; + background-color: black; color: #ffffff; } diff --git a/xsettingsd/xsettingsd.conf b/xsettingsd/xsettingsd.conf index c4ab3db..47a327b 100644 --- a/xsettingsd/xsettingsd.conf +++ b/xsettingsd/xsettingsd.conf @@ -1,5 +1,5 @@ -Net/ThemeName "Flat-Remix-GTK-Green-Darkest-Solid" -Net/IconThemeName "Cosmic" +Net/ThemeName "Flat-Remix-GTK-Green-Darkest" +Net/IconThemeName "ePapirus-Dark" Gtk/CursorThemeName "BreezeX-Black" Net/EnableEventSounds 1 EnableInputFeedbackSounds 0 @@ -120,5 +120,6 @@ bindkey -M vicmd "k" history-substring-search-up bindkey -M vicmd "j" history-substring-search-down #source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh -zinit light zsh-users/zsh-syntax-highlighting +zinit light 'zsh-users/zsh-syntax-highlighting' +zinit ice wait atload'_history_substring_search_config' #zprof |