diff options
49 files changed, 1374 insertions, 293 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/xinitrc b/X11/xinitrc index 534bfc6..e949fbc 100755 --- a/X11/xinitrc +++ b/X11/xinitrc @@ -1,5 +1,10 @@ #!/bin/sh [ -x ~/.screenlayout/layout.sh ] && ~/.screenlayout/layout.sh +xwallpaper --zoom ~/Pictures/background.png & +picom & setxkbmap -option "caps:escape" & -xrdb ~/.Xresources -exec awesome +systemctl --user start dunst & +sxhkd & +xss-lock slockd & +xrdb ~/.config/X11/xresources +exec dwm diff --git a/X11/xresources b/X11/xresources index 63f2348..2624d72 100644 --- a/X11/xresources +++ b/X11/xresources @@ -1,6 +1,13 @@ !! dmenu -dmenu.font: FiraCode Nerd Font Mono:size=24 +dmenu.font: JetBrainsMono Nerd Font:size=15 + +dmenu.selbackground: #198844 +dmenu.selforeground: #000000 +dmenu.hibackground: #000000 +dmenu.hiforeground: #39c1ed +dmenu.selhibackground: #198844 +dmenu.selhiforeground: #39c1ed !! dwm @@ -30,7 +37,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 +83,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 +126,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 @@ -413,54 +420,11 @@ rofi.color-window: #1d1f21, #101010, #000000 ! "Accept hovered row with custom action" Set from: Default ! rofi.me-accept-custom: Control+MouseDPrimary -!! special -!*.foreground: #c5c8c6 -!*.background: #1d1f21 -!*.cursorColor: #c5c8c6 -! -!! black -!*.color0: #282a2e -!*.color8: #373b41 -! -!! red -!*.color1: #a54242 -!*.color9: #cc6666 -! -!! green -!*.color2: #8c9440 -!*.color10: #b5bd68 -! -!! yellow -!*.color3: #de935f -!*.color11: #f0c674 -! -!! blue -!*.color4: #5f819d -!*.color12: #81a2be -! -!! magenta -!*.color5: #85678f -!*.color13: #b294bb -! -!! cyan -!*.color6: #5e8d87 -!*.color14: #8abeb7 -! -!! white -!*.color7: #707880 -!*.color15: #c5c8c6 -! -!! special +! special *.foreground: #c5c8c6 *.background: #000000 *.cursorColor: #c5c8c6 *.reverseCursor: #333536 -dmenu.selbackground: #39c1ed -dmenu.selforeground: #000000 -dmenu.hibackground: #000000 -dmenu.hiforeground: #198844 -dmenu.selhibackground: #39c1ed -dmenu.selhiforeground: #198844 ! black *.color0: #1b1d1c @@ -493,3 +457,5 @@ dmenu.selhiforeground: #198844 ! white *.color7: #b4b7b5 *.color15: #ffffff +Xcursor.theme: BreezeX-Black +Xcursor.size: 32 diff --git a/X11/xserverrc b/X11/xserverrc new file mode 100755 index 0000000..c96ab6d --- /dev/null +++ b/X11/xserverrc @@ -0,0 +1,3 @@ +#!/bin/sh + +exec /usr/bin/Xorg -nolisten tcp "$@" vt$XDG_VTNR 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/dwm/autostart.sh b/dwm/autostart.sh new file mode 100755 index 0000000..07f82d1 --- /dev/null +++ b/dwm/autostart.sh @@ -0,0 +1,2 @@ +#!/bin/sh +pgrep -x slstatus || slstatus diff --git a/gtk-2.0/gtkrc b/gtk-2.0/gtkrc index 628ed00..42f1844 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="Papirus-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..809e192 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=Papirus-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/hypridle.conf b/hypr/hypridle.conf index 3a58aea..5494a33 100644 --- a/hypr/hypridle.conf +++ b/hypr/hypridle.conf @@ -13,8 +13,8 @@ listener { # turn off keyboard backlight, comment out this section if you dont have a keyboard backlight. listener { timeout = 150 # 2.5min. - on-timeout = brightnessctl -d led::kbd_backlight set 0 # turn off keyboard backlight. - on-resume = brightnessctl -rd led::kbd_backlight # turn on keyboard backlight. + on-timeout = brightnessctl -d tpacpi::kbd_backlight set 0 # turn off keyboard backlight. + on-resume = brightnessctl -rd tpacpi::kbd_backlight # turn on keyboard backlight. } listener { diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index 5e2f436..9a40ef8 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -1,30 +1,39 @@ -# See https://wiki.hyprland.org/Configuring/Monitors/ +# See https://wiki.hypr.land/Configuring/Monitors/ #{{{ Monitor config +#monitor = DP-2, 1920x1080@75, 0x0, 1 +#monitor = HDMI-A-1, 1920x1080@75, 1920x0, 1 +monitor = eDP-1, 1920x1080@60, 0x0, 1 monitor = , preferred, auto, 1 #}}} -# See https://wiki.hyprland.org/Configuring/Keywords/ for more +# See https://wiki.hypr.land/Configuring/Keywords/ for more + +#{{{ Plugins +plugin = /var/cache/hyprpm/zachir/hyprland-plugins/hyprscrolling.so +plugin = /var/cache/hyprpm/zachir/hyprsplit/hyprsplit.so +#}}} #{{{ Autostart # Execute your favorite apps at launch # exec-once = waybar & hyprpaper & firefox exec-once = hyprpm reload -n -exec-once = dinit -exec-once = xdph -#exec-once = hyprpaper -#exec-once = hypridle +#exec-once = dinit +#exec-once = xdph +exec-once = dinitctl start hyprpaper.user exec-once = waybar exec-once = pypr exec-once = hyprscratch init exec-once = lxqt-policykit-agent -exec-once = import-gsettings gtk-theme 'Flat-Remix-GTK-Green-Darkest-Solid' -exec-once = import-gsettings icon-theme 'COSMIC' +exec-once = import-gsettings gtk-theme 'Flat-Remix-GTK-Green-Darkest' +exec-once = import-gsettings icon-theme 'Papirus-Dark' exec-once = import-gsettings cursor-theme 'BreezeX-Black' exec-once = gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' exec-once = xrdb -load "$XDG_CONFIG_HOME"/X11/xresources #exec-once = com.github.wwmm.easyeffects -#exec-once = dunst -#exec-once = hypridle +exec-once = dunst +exec-once = hypridle +exec-once = xwayland-satellite :1 +exec-once = bl-save #exec-once = mpd #}}} @@ -34,6 +43,7 @@ env = HYPRCURSOR_THEME,theme_BreezeX-Black env = HYPRCURSOR_SIZE,32 env = XCURSOR_THEME,BreezeX-Black env = XCURSOR_SIZE,32 +env = DISPLAY=:1 #}}} # Source a file (multi-file configs) @@ -56,7 +66,7 @@ device { # }}} #{{{ Input options -# For all categories, see https://wiki.hyprland.org/Configuring/Variables/ +# For all categories, see https://wiki.hypr.land/Configuring/Variables/ input { kb_layout = us kb_variant = @@ -83,7 +93,7 @@ input { #{{{ General options general { - # See https://wiki.hyprland.org/Configuring/Variables/ for more + # See https://wiki.hypr.land/Configuring/Variables/ for more gaps_in = 5 gaps_out = 20 border_size = 2 @@ -107,7 +117,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 } @@ -115,7 +125,7 @@ misc { #{{{ Decoration options decoration { - # See https://wiki.hyprland.org/Configuring/Variables/ for more + # See https://wiki.hypr.land/Configuring/Variables/ for more rounding = 10 #{{{ Blur options blur { @@ -141,7 +151,7 @@ decoration { #{{{ Animations options animations { enabled = no - # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + # Some default animations, see https://wiki.hypr.land/Configuring/Animations/ for more bezier = myBezier, 0.05, 0.9, 0.1, 1.05 animation = windows, 1, 7, myBezier animation = windowsOut, 1, 7, default, popin 80% @@ -154,7 +164,7 @@ animations { #{{{ Dwindle layout options dwindle { - # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more + # See https://wiki.hypr.land/Configuring/Dwindle-Layout/ for more pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below preserve_split = yes # you probably want this special_scale_factor = 0.55 @@ -165,7 +175,7 @@ dwindle { master { special_scale_factor = 0.55 mfact = 0.55 - # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more + # See https://wiki.hypr.land/Configuring/Master-Layout/ for more new_status = slave new_on_top = false new_on_active = before @@ -176,20 +186,10 @@ 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 - workspace_swipe = off + # See https://wiki.hypr.land/Configuring/Variables/ for more + #workspace_swipe = off } #}}} @@ -199,6 +199,14 @@ plugin { num_workspaces = 9 persistent_workspaces = true } + + hyprscrolling { + fullscreen_on_one_column = true + column_width = 0.5 + explicit_column_widths = 0.25, 0.333, 0.5, 0.667, 0.75, 1.0 + focus_fit_method = 1 + follow_focus = true + } } #}}} @@ -207,7 +215,7 @@ plugin { # windowrule = float, ^(kitty)$ # Example windowrule v2 # windowrule = float, class:^(kitty)$, title:^(kitty)$ -# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more +# See https://wiki.hypr.land/Configuring/Window-Rules/ for more windowrule = fullscreen, class:^(Xephyr)$ windowrule = float, title:^(LibreWolf - Choose User Profile)$ windowrule = float, class:^(xdg-desktop-portal-gtk) @@ -236,10 +244,19 @@ 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*)$ +# Center floating XWayland windows +windowrule = center, xwayland: 1 +#}}} + +#{{{ Layerrules +layerrule = blur, waybar #}}} #{{{ Mods -# See https://wiki.hyprland.org/Configuring/Keywords/ for more +# See https://wiki.hypr.land/Configuring/Keywords/ for more $mainMod = SUPER $secdMod = ALT #}}} @@ -266,14 +283,12 @@ $secdMod = ALT #{{{ hyprscrolling layout binds # 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+CONTROL, H, layoutmsg, swapcol l +bind = $mainMod+CONTROL, L, layoutmsg, swapcol r bind = $mainMod, H, layoutmsg, focus l #HYPRSCROLLING bind = $mainMod, J, layoutmsg, focus d #HYPRSCROLLING bind = $mainMod, K, layoutmsg, focus u #HYPRSCROLLING @@ -282,6 +297,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,11 +422,12 @@ 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 +bind = $mainMod $secdMod, E, exec, brc bind = $mainMod $secdMod, R, exec, ffc bind = $mainMod $secdMod, 1, exec, bm bind = $mainMod $secdMod, comma, exec, dmount -p @@ -436,7 +458,7 @@ bind = $mainMod CONTROL, B, exec, hyprscratch toggle spncmp bind = $mainMod CONTROL, A, exec, hyprscratch toggle spmutt bind = $mainMod CONTROL, S, exec, hyprscratch toggle spprof bind = $mainMod CONTROL, D, exec, hyprscratch toggle spirss -bind = $mainMod CONTROL, F, exec, hyprscratch toggle sptodo +bind = $mainMod CONTROL, F, exec, hyprscratch toggle spvimw bind = $mainMod CONTROL, G, exec, hyprscratch toggle sptrmc bind = $mainMod CONTROL, Q, exec, hyprscratch toggle helvum bind = $mainMod CONTROL, E, exec, hyprscratch toggle easyeffects @@ -473,7 +495,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/hypr/hyprlock.conf b/hypr/hyprlock.conf index 2ec72d3..8ee636d 100644 --- a/hypr/hyprlock.conf +++ b/hypr/hyprlock.conf @@ -41,7 +41,7 @@ input-field { check_color = rgb(204, 136, 34) fail_color = rgb(204, 34, 34) # if authentication failed, changes outer_color and fail message color fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i> # can be set to empty - fail_transition = 300 # transition time in ms between normal outer_color and fail_color + #fail_transition = 300 # transition time in ms between normal outer_color and fail_color capslock_color = -1 numlock_color = -1 bothlock_color = -1 # when both locks are active. -1 means don't change outer color (same for above) diff --git a/hypr/hyprscratch.conf b/hypr/hyprscratch.conf index 4274dcd..5964419 100644 --- a/hypr/hyprscratch.conf +++ b/hypr/hyprscratch.conf @@ -1,5 +1,6 @@ # Optional globals that apply to all scratchpads daemon_options = clean +daemon_options = eager global_rules = size 50% 50% @@ -83,10 +84,10 @@ spirss { options = special } -sptodo { +spvimw { # Mandatory fields - title = sptodo - command = kitty -T sptodo todo + title = spvimw + command = kitty -T spvimw nvim +VimwikiIndex # Optional fields options = lazy 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 @@ -320,7 +320,7 @@ map C clear map U unselect # Movement -map g. cd "/home/zachir" +map g. cd "~" ## PATHS map gE. cd "/etc" map gO. cd "/opt" @@ -329,64 +329,66 @@ map gR cd "/" map gU. cd "/usr" map gUs cd "/usr/share" map gV. cd "/var" -map gaw cd "/home/zachir/.config/awesome" -map gb. cd "/home/zachir/.local/bin" -map gbb cd "/home/zachir/.local/bin/blocks" -map gbf cd "/home/zachir/.local/bin/slatpak-sc" -map gbg cd "/home/zachir/.local/bin/generics" -map gbi cd "/home/zachir/.local/bin/ignore" -map gbsc cd "/home/zachir/.local/bin/scripts" -map gbsh cd "/home/zachir/.local/bin/shortcmds" -map gbsp cd "/home/zachir/.local/bin/sp" -map gc cd "/home/zachir/.config" -map gdb cd "/home/zachir/.local/src/dwmbar" -map gdc cd "/home/zachir/Documents" -map gdl cd "/home/zachir/.local/src/dwl" -map gdm cd "/home/zachir/.local/src/dmenu" -map gdo cd "/home/zachir/Downloads" -map gdp cd "/home/zachir/Downloads/plugin/zachir_librem.one" -map gdw cd "/home/zachir/Downloads/wine" -map ge cd "/home/zachir/Desktop" -map gf cd "/home/zachir/.var/app" -map gh cd "/home/zachir/.config/hypr" -map glb cd "/home/zachir/.local/bin" -map glc cd "/home/zachir/Games/cache" -map glf cd "/home/zachir/.config/lf" -map gls cd "/home/zachir/.local/share" -map gn3 cd "/home/zachir/.vst3/native" -map gns cd "/home/zachir/.vst/native" -map gnv cd "/home/zachir/.config/nvim" -map gp cd "/home/zachir/Pictures" -map gqb cd "/home/zachir/.config/qutebrowser" -map gqp cd "/home/zachir/.local/share/qutebrowser-profiles" -map gre cd "/home/zachir/.local/src" +map gaw cd "~/.config/awesome" +map gb. cd "~/.local/bin" +map gbb cd "~/.local/bin/blocks" +map gbf cd "~/.local/bin/slatpak-sc" +map gbg cd "~/.local/bin/generics" +map gbi cd "~/.local/bin/ignore" +map gbsc cd "~/.local/bin/scripts" +map gbsh cd "~/.local/bin/shortcmds" +map gbsp cd "~/.local/bin/sp" +map gc cd "~/.config" +map gdb cd "~/.local/src/dwmbar" +map gdc cd "~/Documents" +map gdl cd "~/.local/src/dwl" +map gdm cd "~/.local/src/dmenu" +map gdo cd "~/Downloads" +map gdp cd "~/Downloads/plugin/zachir_librem.one" +map gdw cd "~/Downloads/wine" +map ge cd "~/Desktop" +map gf cd "~/.var/app" +map gh cd "~/.config/hypr" +map glb cd "~/.local/bin" +map glc cd "~/Games/cache" +map glf cd "~/.config/lf" +map gls cd "~/.local/share" +map gn3 cd "~/.vst3/native" +map gns cd "~/.vst/native" +map gnv cd "~/.config/nvim" +map gp cd "~/Pictures" +map gqb cd "~/.config/qutebrowser" +map gqp cd "~/.local/share/qutebrowser-profiles" +map gre cd "~/.local/src" map grs cd "/etc/runit/sv" -map gsc cd "/home/zachir/.local/bin/scripts" -map gsh cd "/home/zachir/.config/sh" -map gsl cd "/home/zachir/.local/src/slock" +map gsc cd "~/.local/bin/scripts" +map gsh cd "~/.config/sh" +map gsl cd "~/.local/src/slock" map gss cd "/etc/s6/sv" -map gst cd "/home/zachir/.local/src/st" -map gsx cd "/home/zachir/.config/sxhkd" -map gtr cd "/home/zachir/.local/share/Trash/files" -map gurs cd "/home/zachir/.runit/sv" -map gv3. cd "/home/zachir/.vst3" -map gv3n cd "/home/zachir/.vst3/native" -map gv3y cd "/home/zachir/.vst3/yabridge" -map gv. cd "/home/zachir/var" -map gvi cd "/home/zachir/Videos" -map gvsn cd "/home/zachir/.vst/native" -map gvs. cd "/home/zachir/.vst" -map gvsy cd "/home/zachir/.vst/yabridge" -map gwdo cd "/home/zachir/.local/share/wineprefixes/default/drive_c/users/zachir/Downloads" -map gwa cd "/home/zachir/.local/src/wallpapers" -map gwd cd "/home/zachir/.local/share/wineprefixes/default" -map gwr cd "/home/zachir/.local/share/wineprefixes" -map gwv3 cd "/home/zachir/.winvst3" -map gwvs cd "/home/zachir/.winvst" -map gww cd "/home/zachir/.local/share/wineprefixes/work" -map gx cd "/home/zachir/.config/X11" -map gy3 cd "/home/zachir/.vst3/yabridge" -map gyb cd "/home/zachir/.cache/yay" -map gyc cd "/home/zachir/.config/yay" -map gzs cd "/home/zachir/.config/zsh" -map gzx cd "/home/zachir/Documents/zachir.xyz" +map gst cd "~/.local/src/st" +map gsx cd "~/.config/sxhkd" +map gtr cd "~/.local/share/Trash/files" +map gurs cd "~/.runit/sv" +map gv3. cd "~/.vst3" +map gv3n cd "~/.vst3/native" +map gv3y cd "~/.vst3/yabridge" +map gv. cd "~/var" +map gvi cd "~/Videos" +map gvsn cd "~/.vst/native" +map gvs. cd "~/.vst" +map gvsy cd "~/.vst/yabridge" +map gvw cd "~/.local/share/vimwiki" +map gwdo cd "~/.local/share/wineprefixes/default/drive_c/users/zachir/Downloads" +map gwa cd "~/.local/src/wallpapers" +map gwd cd "~/.local/share/wineprefixes/default" +map gwr cd "~/.local/share/wineprefixes" +map gwv3 cd "~/.winvst3" +map gwvs cd "~/.winvst" +map gww cd "~/.local/share/wineprefixes/work" +map gx cd "~/.config/X11" +map gy3 cd "~/.vst3/yabridge" +map gyb cd "~/.cache/yay" +map gyc cd "~/.config/yay" +map gzs cd "~/.config/zsh" +map gzx cd "~/Documents/zachir.xyz" +map gdr cd "~/Documents/work" diff --git a/mpd/mpd.conf b/mpd/mpd.conf index 755f1c8..6fdf1b0 100644 --- a/mpd/mpd.conf +++ b/mpd/mpd.conf @@ -79,7 +79,7 @@ sticker_file "~/.config/mpd/sticker.sql" # systemd socket activiation is in use. # # For network -# bind_to_address "127.0.0.1" +bind_to_address "127.0.0.1" # # And for Unix Socket bind_to_address "~/.config/mpd/socket" diff --git a/niri/config.kdl b/niri/config.kdl index aca5eda..07783fb 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" @@ -255,10 +271,15 @@ layout { // See the binds section below for more spawn examples. // 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 "dinitctl start hyprpaper" +spawn-at-startup "dinitctl start 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 +606,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/nvim/init.lua b/nvim/init.lua index 4b295d5..06b973a 100644 --- a/nvim/init.lua +++ b/nvim/init.lua @@ -4,3 +4,4 @@ require('lsp') require('plugins') require('colorscheme') require('term') +require('vimwiki') diff --git a/nvim/lua/keymaps.lua b/nvim/lua/keymaps.lua index 4f4a489..ff04b7d 100644 --- a/nvim/lua/keymaps.lua +++ b/nvim/lua/keymaps.lua @@ -23,10 +23,10 @@ vim.keymap.set('n', '<C-Up>', ':resize -2<CR>', opts) vim.keymap.set('n', '<C-Down>', ':resize +2<CR>', opts) vim.keymap.set('n', '<C-Left>', ':vertical resize -2<CR>', opts) vim.keymap.set('n', '<C-Right>', ':vertical resize +2<CR>', opts) -vim.keymap.set('n', '<leader>wh :vertical resize', '-1<CR>') -vim.keymap.set('n', '<leader>wj :resize', '-1<CR>') -vim.keymap.set('n', '<leader>wk :resize', '+1<CR>') -vim.keymap.set('n', '<leader>wl :vertical resize', '+1<CR>') +vim.keymap.set('n', '<leader>wh', ':vertical resize -1<CR>') +vim.keymap.set('n', '<leader>wj', ':resize -1<CR>') +vim.keymap.set('n', '<leader>wk', ':resize +1<CR>') +vim.keymap.set('n', '<leader>wl', ':vertical resize +1<CR>') -- NerdTREE vim.keymap.set('n', '<leader>tt', ':NERDTreeToggle<CR>') diff --git a/nvim/lua/plugins.lua b/nvim/lua/plugins.lua index f90b09c..3684b89 100644 --- a/nvim/lua/plugins.lua +++ b/nvim/lua/plugins.lua @@ -14,6 +14,15 @@ vim.opt.rtp:prepend(lazypath) require("lazy").setup({ -- LSP manager { "mason-org/mason.nvim", opts = {} }, + {"vimwiki/vimwiki", + init = function() + vim.g.vimwiki_list = { + { + path = '~/.local/share/vimwiki' + }, + } + end, + }, { "mason-org/mason-lspconfig.nvim", dependencies = { diff --git a/nvim/lua/vimwiki.lua b/nvim/lua/vimwiki.lua new file mode 100644 index 0000000..43b8aa6 --- /dev/null +++ b/nvim/lua/vimwiki.lua @@ -0,0 +1,10 @@ +-- Required for Vimwiki to work +vim.opt.compatible = false + +-- Vimwiki Keybindings +local opts = { + noremap = false, + silent = true, +} + +vim.keymap.set('n', '<leader>wx', '<Plug>VimwikiIndex', opts) 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..c6bb704 --- /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..0afaa97 --- /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_scratchpad = 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_scratchpad = true + end + end + end + return is_in_scratchpad +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) + + @@ -19,10 +19,10 @@ case `uname -s` in ;; "Linux") #alias ls="ls -h $COLOR_FLAGS_GNU" - alias ls="eza" + type eza >/dev/null && alias ls="eza" ;; "Darwin") - alias ls="eza --color" + type eza >/dev/null && alias ls="eza --color" ;; esac alias ll='ls -l' @@ -44,7 +44,7 @@ case `uname -s` in alias rm='rm -i' ;; "Linux") - alias rm='trash-put' + type trash-put >/dev/null && alias rm='trash-put' ;; esac alias cp='cp -i' diff --git a/sh/functions b/sh/functions index e8515d8..7d4cb32 100644 --- a/sh/functions +++ b/sh/functions @@ -57,67 +57,68 @@ R - / U. - /usr Us - /usr/share V. - /var -aw - /home/zachir/.config/awesome -b. - /home/zachir/.local/bin -bb - /home/zachir/.local/bin/blocks -bf - /home/zachir/.local/bin/slatpak-sc -bg - /home/zachir/.local/bin/generics -bi - /home/zachir/.local/bin/ignore -bsc - /home/zachir/.local/bin/scripts -bsh - /home/zachir/.local/bin/shortcmds -bsp - /home/zachir/.local/bin/sp -c - /home/zachir/.config -db - /home/zachir/.local/src/dwmbar -dc - /home/zachir/Documents -dl - /home/zachir/.local/src/dwl -dm - /home/zachir/.local/src/dmenu -do - /home/zachir/Downloads -dp - /home/zachir/Downloads/plugin/zachir_librem.one -dw - /home/zachir/Downloads/wine -e - /home/zachir/Desktop -f - /home/zachir/.var/app -h - /home/zachir/.config/hypr -lb - /home/zachir/.local/bin -lc - /home/zachir/Games/cache -lf - /home/zachir/.config/lf -ls - /home/zachir/.local/share -n3 - /home/zachir/.vst3/native -ns - /home/zachir/.vst/native -nv - /home/zachir/.config/nvim -p - /home/zachir/Pictures -qb - /home/zachir/.config/qutebrowser -qp - /home/zachir/.local/share/qutebrowser-profiles -re - /home/zachir/.local/src +aw - $XDG_CONFIG_HOME/awesome +b. - $HOME/.local/bin +bb - $HOME/.local/bin/blocks +bf - $HOME/.local/bin/slatpak-sc +bg - $HOME/.local/bin/generics +bi - $HOME/.local/bin/ignore +bsc - $HOME/.local/bin/scripts +bsh - $HOME/.local/bin/shortcmds +bsp - $HOME/.local/bin/sp +c - $XDG_CONFIG_HOME +db - $SRCDIR/dwmbar +dc - $XDG_DOCUMENTS_DIR +dl - $SRCDIR/dwl +dm - $SRCDIR/dmenu +do - $XDG_DOWNLOAD_DIR +dp - $XDG_DOWNLOAD_DIR/plugin/zachir_librem.one +dw - $XDG_DOWNLOAD_DIR/wine +e - $XDG_DESKTOP_DIR +f - $HOME/.var/app +h - $XDG_CONFIG_HOME/hypr +lb - $HOME/.local/bin +lc - $HOME/Games/cache +lf - $XDG_CONFIG_HOME/lf +ls - $XDG_DATA_HOME +n3 - $HOME/.vst3/native +ns - $HOME/.vst/native +nv - $XDG_CONFIG_HOME/nvim +p - $XDG_PICTURES_DIR +qb - $XDG_CONFIG_HOME/qutebrowser +qp - $XDG_DATA_HOME/qutebrowser-profiles +re - $SRCDIR rs - /etc/runit/sv -sc - /home/zachir/.local/bin/scripts -sh - /home/zachir/.config/sh -sl - /home/zachir/.local/src/slock +sc - $HOME/.local/bin/scripts +sh - $XDG_CONFIG_HOME/sh +sl - $SRCDIR/slock ss - /etc/s6/sv -st - /home/zachir/.local/src/st -sx - /home/zachir/.config/sxhkd -tr - /home/zachir/.local/share/Trash/files -urs - /home/zachir/.runit/sv -v3. - /home/zachir/.vst3 -v3n - /home/zachir/.vst3/native -v3y - /home/zachir/.vst3/yabridge -v. - /home/zachir/var -vi - /home/zachir/Videos -vsn - /home/zachir/.vst/native -vs. - /home/zachir/.vst -vsy - /home/zachir/.vst/yabridge -wdo - /home/zachir/.local/share/wineprefixes/default/drive_c/users/zachir/Downloads -wa - /home/zachir/.local/src/wallpapers -wd - /home/zachir/.local/share/wineprefixes/default -wr - /home/zachir/.local/share/wineprefixes -wv3 - /home/zachir/.winvst3 -wvs - /home/zachir/.winvst -ww - /home/zachir/.local/share/wineprefixes/work -x - /home/zachir/.config/X11 -y3 - /home/zachir/.vst3/yabridge -yb - /home/zachir/.cache/yay -yc - /home/zachir/.config/yay -zs - /home/zachir/.config/zsh -zx - /home/zachir/Documents/zachir.xyz +st - $SRCDIR/st +sx - $XDG_CONFIG_HOME/sxhkd +tr - $XDG_DATA_HOME/Trash/files +urs - $HOME/.runit/sv +v3. - $HOME/.vst3 +v3n - $HOME/.vst3/native +v3y - $HOME/.vst3/yabridge +v. - $HOME/var +vi - $XDG_VIDEOS_DIR +vsn - $HOME/.vst/native +vs. - $HOME/.vst +vsy - $HOME/.vst/yabridge +vw\t- $XDG_DATA_HOME/vimwiki +wdo - $WINEPREFIX/drive_c/users/zachir/Downloads +wa - $SRCDIR/wallpapers +wd - $WINEPREFIX +wr - $WINEROOT +wv3 - $HOME/.winvst3 +wvs - $HOME/.winvst +ww - $WINEROOT/work +x - $XDG_CONFIG_HOME/X11 +y3 - $HOME/.vst3/yabridge +yb - $XDG_CACHE_HOME/yay +yc - $XDG_CONFIG_HOME/yay +zs - $XDG_CONFIG_HOME/zsh +zx - $XDG_DOCUMENTS_DIR/zachir.xyz " ;; # STOPPRINT # STARTPATHS @@ -176,6 +177,7 @@ zx - /home/zachir/Documents/zachir.xyz "vsn") cd "$HOME/.vst/native" ;; "vs.") cd "$HOME/.vst" ;; "vsy") cd "$HOME/.vst/yabridge" ;; +"vw") cd "$XDG_DATA_HOME/vimwiki" ;; "wdo") cd "$WINEPREFIX/drive_c/users/$USER/Downloads" ;; "wa") cd "$SRCDIR/wallpapers" ;; "wd") cd "$WINEPREFIX" ;; @@ -189,6 +191,7 @@ zx - /home/zachir/Documents/zachir.xyz "yc") cd "$XDG_CONFIG_HOME/yay" ;; "zs") cd "$XDG_CONFIG_HOME/zsh" ;; "zx") cd "$XDG_DOCUMENTS_DIR/zachir.xyz" ;; +"dr") cd "$XDG_DOCUMENTS_DIR/work" ;; # STOPPATHS *) echo "\"$1\" is not a known location" ;; esac @@ -7,6 +7,7 @@ export XDG_CURRENT_DESKTOP="Hyprland" export XDG_DOCUMENTS_DIR=${HOME}/Documents export XDG_DOWNLOAD_DIR=${HOME}/Downloads export XDG_DESKTOP_DIR=${HOME}/Desktop +export XDG_PICTURES_DIR=${HOME}/Pictures export XDG_STATE_HOME="${HOME}/.local/state" export XDG_VIDEOS_DIR=${HOME}/Videos @@ -49,7 +50,7 @@ export NOTMUCH_CONFIG="$XDG_CONFIG_HOME"/notmuch/notmuchrc export NMBGIT="$XDG_DATA_HOME"/notmuch/nmbug export WINEROOT="$XDG_DATA_HOME"/wineprefixes export WINEPREFIX="$WINEROOT"/default -export MPD_HOST="$XDG_CONFIG_HOME/mpd/socket" +export MPD_HOST="127.0.0.1" export GTK2_RC_FILES="$XDG_CONFIG_HOME"/gtk-2.0/gtkrc export RENPY_PATH_TO_SAVES="$XDG_DATA_HOME" export XINITRC="$XDG_CONFIG_HOME"/X11/xinitrc diff --git a/sxhkd/sxhkdrc b/sxhkd/sxhkdrc index a38f356..125f8fe 100755 --- a/sxhkd/sxhkdrc +++ b/sxhkd/sxhkdrc @@ -12,11 +12,15 @@ 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 -l 15 # desktop application launcher +super + e + j4-dmenu-desktop --dmenu="dmenu -l 15" + +# dmenu prompt to restart programs 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'" + rs # 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..cc9d5e5 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, @@ -24,6 +71,7 @@ "format": "{icon}", "active-only": false, "all-outputs": false, + "persistent-only": true, "format-icons": { "1": "1", "2": "2", @@ -45,12 +93,18 @@ "18": "9", }, "persistent-workspaces": { - "eDP-1": [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ], + "*": 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 +115,7 @@ "separate-outputs": true, "icon": true, "format": "{title}", - "espand": true, + "expand": true, }, "keyboard-state": { "numlock": true, @@ -73,9 +127,9 @@ } }, "mpd": { - "format": "{title}", + "format": "{artist} - {title}", "format-stopped": "", - "format-paused": "{title}", + "format-paused": "{artist} - {title}", "format-disconnected": "", "artist-len": 15, "title-len": 15, @@ -104,7 +158,7 @@ "tooltip": false }, "memory": { - "format": "{}% " + "format": "{used}G " }, "battery": { //"bat": "BAT0", @@ -162,9 +216,16 @@ "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", + "on-click": "power-menu", //"on-click-right": "killall rofi" }, "custom/snip":{ diff --git a/waybar/style.css b/waybar/style.css index fefb890..04a1c3e 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.4); } 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, @@ -154,11 +160,13 @@ label:focus { #cpu { background-color: #1b1d1c; color: #ffffff; + padding-right: 18px; } #memory { background-color: #198844; color: #ffffff; + padding-right: 18px; } #disk { @@ -174,6 +182,7 @@ label:focus { #network { background-color: #198844; color: #ffffff; + padding-right: 18px; } #network.disconnected { @@ -184,6 +193,7 @@ label:focus { #wireplumber { background-color: #198844; color: #ffffff; + padding-right: 18px; } #wireplumber.muted { @@ -211,7 +221,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 +307,8 @@ label:focus { } #tray { - background-color: transparent; + border-radius: 20px; + background-color: black; color: #ffffff; } @@ -297,7 +327,7 @@ label:focus { #idle_inhibitor { background-color: #1b1d1c; border-radius: 20px 0px 0px 20px; - + padding-right: 18px; } #idle_inhibitor.activated { diff --git a/wireplumber/wireplumber.conf.d/51-id4.conf b/wireplumber/wireplumber.conf.d/51-id4.conf new file mode 100644 index 0000000..c01df40 --- /dev/null +++ b/wireplumber/wireplumber.conf.d/51-id4.conf @@ -0,0 +1,17 @@ +monitor.alsa.rules = [ + { + matches = [ + { + device.name = "alsa_card.usb-Audient_Audient_iD4-00" + } + ] + actions = { + update-props = { + api.alsa.use-acp = false, + device.profile = "pro-audio", + api.acp.auto-profile = false, + api.acp.auto-port = false + } + } + } +] diff --git a/wireplumber/wireplumber.conf.d/51-volt4.conf b/wireplumber/wireplumber.conf.d/51-volt4.conf new file mode 100644 index 0000000..0c03252 --- /dev/null +++ b/wireplumber/wireplumber.conf.d/51-volt4.conf @@ -0,0 +1,17 @@ +monitor.alsa.rules = [ + { + matches = [ + { + device.name = "alsa_card.usb-Universal_Audio_Volt_4_22282055004772-00" + } + ] + actions = { + update-props = { + api.alsa.use-acp = false, + device.profile = "pro-audio", + api.acp.auto-profile = false, + api.acp.auto-port = false + } + } + } +] diff --git a/xdg-desktop-portal/portals.conf b/xdg-desktop-portal/portals.conf index bb06f0d..b1a274e 100644 --- a/xdg-desktop-portal/portals.conf +++ b/xdg-desktop-portal/portals.conf @@ -1,4 +1,4 @@ [preferred] -default=gnome +default=hyprland org.freedesktop.impl.portal.FileChooser=gtk org.freedesktop.impl.portal.Settings=darkman diff --git a/xsettingsd/xsettingsd.conf b/xsettingsd/xsettingsd.conf index c4ab3db..7e001eb 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 "Papirus-Dark" Gtk/CursorThemeName "BreezeX-Black" Net/EnableEventSounds 1 EnableInputFeedbackSounds 0 @@ -41,13 +41,18 @@ bindkey "${key[End]}" end-of-line bindkey "${key[PageUp]}" history-substring-search-up bindkey "${key[PageDown]}" history-substring-search-down +[ -f "$ZDOTDIR/.zsh_theme" ] && . "$ZDOTDIR/.zsh_theme" +COLOR1="${COLOR1:-002}" +COLOR2="${COLOR2:-006}" +COLORV="${COLORV:-012}" + if (env | grep -Fq 'DISTROBOX'); then MYPROMPT=$'%F{000}%K{004}[%n@%m]%F{013}\UE0B2%K{013}%F{000}%~%F{013}%K{004}\UE0B0%F{000}%#%F{004}%k\UE0B0%f ' else - MYPROMPT=$'%F{000}%K{002}[%n@%m]%F{006}\UE0B2%K{006}%F{000}%~%F{006}%K{002}\UE0B0%F{000}%#%F{002}%k\UE0B0%f ' + MYPROMPT=$'%F{000}%K{'"$COLOR1"$'}[%n@%m]%F{'"$COLOR2"$'}\UE0B2%K{'"$COLOR2"$'}%F{000}%~%F{'"$COLOR2"$'}%K{'"$COLOR1"$'}\UE0B0%F{000}%#%F{'"$COLOR1"$'}%k\UE0B0%f ' fi function zle-line-init zle-keymap-select { - VIM_PROMPT=$'%F{000}%K{012}[%n@%m]%F{006}\UE0B2%K{006}%F{000}%~%F{006}%K{012}\UE0B0%F{000}%#%F{012}%k\UE0B0%f ' + VIM_PROMPT=$'%F{000}%K{'"$COLORV"$'}[%n@%m]%F{'"$COLOR2"$'}\UE0B2%K{'"$COLOR2"$'}%F{000}%~%F{'"$COLOR2"$'}%K{'"$COLORV"$'}\UE0B0%F{000}%#%F{'"$COLORV"$'}%k\UE0B0%f ' PS1="${${KEYMAP/vicmd/$VIM_PROMPT}/main/$MYPROMPT}" zle reset-prompt } @@ -120,5 +125,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 |