Compare commits

..

56 Commits

Author SHA1 Message Date
0300e55167 Squashed commit of the following:
- set icons for mon2 in i3
    - exluded a blender render dir
    - two flash backup thingys
    - lfrc filebrowser dectetion and formatting
    - changed music dir for mpd
    - moved browser backup to its own script. log too big
    - added DIAGRAM_PLANTUML_CLASSPATH var for plantuml
    - added web reqs script
    - added asciidoc preview
    - fixed ft_to_lang error by disabling treesitter in telescope
    - copy media script
2025-12-29 02:42:08 -06:00
5c4872f306 Squashed commit of the following:
- auto game restart after killing game thread
    - detect_leaks 0 for dap
    - excludes to backup
    - fixed typo "suff"
    - another one
    - added new mime
    - added serv sync script
    - unset qt theme for mumble
    - switched to printf on kaomoji-picker
    - moved stuff from wayland to hyprland
    - keybind to kill GameThread
2025-12-12 22:57:51 -06:00
4cd0854592 Squashed commit of the following:
- added private autostart script
    - removed cmus from backup scripts
    - separated more req install commands
    - cava change
    - i3 and rmpc ricing
    - added mpd to arch install. removed cmus
    - added mpv-mpris to autostart
2025-10-29 18:23:00 -05:00
2ffa49fe41 Squashed commit of the following:
- updated mimes
    - added mpd and rmpc
    - added mpd to autostart
    - removed delays from autostart
    - install script for i3, i3blocks, and i3blocks config from repo
    - i3
        - pango font and nerd font for bar
        - switched to i3blocks
        - colors :3
2025-10-23 20:28:51 -05:00
a910750e91 Squashed commit of the following:
- quote fix
2025-10-17 19:44:13 -05:00
fe74ef66ee Squashed commit of the following:
- rofi kaomoji-picker.sh and keybind in i3
    - rofi edit for vimish motions
    - indent change
    - swapped tmux keys
    - echo port on auto port
    - added proxy ignore to newsboat autofetch
    - added xorg-xwayland
    - autoport mc script using socat
    - removed /dev from cam alias
2025-10-17 18:31:32 -05:00
62ba4da27d Squashed commit of the following:
- newsboat proxy skip (proxy setup in config)
    - dev alias fix
    - i3 changes
        - added more sway binds
    - sway and i3. default no window bar
    - sway changes
        - play pause media key bind for sway
        - removed window spawn on workspace.
    - changed default wall
    - mumble to autostart
2025-09-20 19:04:15 -05:00
b38cd5c376 - repo name change and readme change
- removed markdownlint config args as it is no longer a arg. thanks markdownlint-cli2. love changing my workflow :>
    - play pause bind for i3
2025-09-14 21:42:00 -05:00
b2aa06f910 - changed i3 bar to put taskbar on the right monitor... for now
- added pull down sync script. just workes for one thing for now
- added next/prev workspace to i3
- boost libs for vr
2025-09-10 21:11:18 -05:00
581545aa36 - no that did not work..
- catppuccin theme nvim
2025-08-31 03:13:12 -05:00
7c507d072b THE only changes are actually from Merge Main.
this is also a test to see if leaving this stuff in the commit message will remove it on next merge

Squashed commit of the following:

commit 1653a5a7308a65913004c7ba38567eec35878240
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Sat Aug 30 22:13:09 2025 -0500

    - best i3bar rice. (just changed the date :p)

commit 2dd8c5cfabb044a7460464fdd4fd5e807b38a150
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Sat Aug 30 21:52:29 2025 -0500

    - added gajim theme to backup

commit ae52e335b1ffd55d2eeafd2c4d99348e49d01f2a
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Fri Aug 29 04:40:20 2025 -0500

    - added autostart to i3
    - made a audio share pulse module for sharing audio through
    - made a setkey script (when running fcitx it resets my caps switch)

commit 5c5af8cc3d751d555290ae869d6c0c5e864359a1
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Sat Aug 16 18:42:30 2025 -0500

    - uncommented xss-lock

commit d10f8b093394fa8b0dd86e6a24bde8d088370458
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Thu Aug 14 18:03:10 2025 -0500

    - added search rofi menu to i3

commit b2e5d17bc80845892b27a7adc99ba95bb23babf5
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Sat Aug 9 11:54:20 2025 -0500

    - i3 mon2

commit d2b7c98fa22617463968de7d34586b4600ef00b2
Merge: ae8d03b 968141f
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Wed Aug 6 12:17:03 2025 -0500

    Merge branch 'main' into private

commit ae8d03ba5b4eee038c41d63185b50de017781893
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Wed Aug 6 02:53:56 2025 -0500

    - mpv

commit 5728bc5e81279e7449c55a22cf70de93abae79bf
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Tue Aug 5 15:49:56 2025 -0500

    i3

commit 71ef4d929f85b352f8816582b3540822be06a18f
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Sat Aug 2 14:08:22 2025 -0500

    - changed zsh ps1

commit 60fd3457f21d05e49e5884d49b177cd38889f8fd
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Sat Aug 2 13:51:46 2025 -0500

    - added swapscape to backup-tol2

commit 4bfcd61f19458a7229b8c3fb8e3d2649f7c6a915
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Sat Aug 2 11:37:23 2025 -0500

    removed floating

commit ba81c6e3aa8d69d365002526a0a1147732233bf4
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Wed Jul 30 16:59:03 2025 -0500

    - show hidden on word search telescope

commit 7efb53e6d47782b603289a9aa3f029e4e8cf9958
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Wed Jul 30 03:11:51 2025 -0500

    - added mod+r to leave resize

commit 921fc97cacfd0deaab36922d6f7bf7e188fc8700
Merge: ca3faf7 83318af
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Wed Jul 30 03:05:10 2025 -0500

    Merge branch 'main' into private

commit ca3faf7c708e9c84090393127de8e0c4a138c481
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Wed Jul 30 03:02:45 2025 -0500

    - dusnt theme
    - readme fix?

commit 9950c607a17c98cbb8d4a9ac99d92012eacd2a01
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Wed Jul 30 00:07:18 2025 -0500

    - removed librewolf from laptop backup. takes too long

commit f07a28104dc134c6e9790ce03a9404257b4c54ee
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Tue Jul 29 22:45:15 2025 -0500

    - wezterm var for wezterm
    - use p10kbar only if wezterm var
    - removed zsh entry in wezterm and tmux

commit e4e8189f8e1fd2c9ee95c2bd1f7cbbd30c4a414d
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Tue Jul 29 21:54:32 2025 -0500

    - moved to librewolf
    - backup changes

commit 8c9fc59518838a168c18e24fe29217bbc4b8edeb
Merge: 024f50a 0574377
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Tue Jul 29 19:16:20 2025 -0500

    Merge branch 'main' into private

commit 024f50adca6c0ebe10d8169ef425db6bdb7562ad
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Tue Jul 29 19:07:44 2025 -0500

    - the splittening. get reqs are now seperate files. and im using a loop

commit e4f8f7ff7f460b6b15bc7cda60c2e2a742704285
Merge: 6318881 989269f
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Tue Jul 29 18:01:29 2025 -0500

    Merge branch 'main' into private

commit 6318881a29b5c771a4ce8f2abb8186a9ddec0b95
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Tue Jul 29 16:17:10 2025 -0500

    - customized tmux bar
    - swapped harpoon keys
    - fixed exit terminal key
    - removed trailing commas in waybar config

commit ff2d465473e5c50c773a956e378c6b1ba1a4eeec
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Tue Jul 29 00:37:40 2025 -0500

    - neovim
        - added proj search
        - added notes bind
        - bind to exit term (doesnt really work for me)
        - auto cwd OF file dir OR git main dir WHEN bufenter and bind

commit d0980ebea4aca2c2cf757cfdf99fef1a3c1ab270
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Mon Jul 28 15:42:34 2025 -0500

    - swaped tmux move keys
    - changed showmethekey windowrule

commit f491e343cc3361437b37b8609f243c4779e229d5
Merge: 32d6cdb 5887bb0
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Sun Jul 27 22:39:35 2025 -0500

    Merge branch 'main' into private

commit 32d6cdbc000e0613204d381eeac9c726a40b7007
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Sun Jul 27 22:35:48 2025 -0500

    - waybar rice
    - small edit to wezterm

commit 1ac358d0109afaf9c7e40111aa8e60ccb49a070b
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Sun Jul 27 18:45:07 2025 -0500

    - fixed sway im emoji picker rule

commit 5eeb09a7e335088a2274dc8e8dfbdc2ad4c7fc84
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Sun Jul 27 17:09:09 2025 -0500

    - made screenshot to file. will change later

commit bb825378f49971d4c68bc5d3926e77e8ab03266c
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Sun Jul 27 12:55:52 2025 -0500

    added second monitor scale

commit 2a4e0a1ec5c08841c3f0428586e126159e129b8b
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Sun Jul 27 10:26:01 2025 -0500

    added sway next

commit c181caefb0e277d84bf861e6ea2e21bd9d2e652e
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Sun Jul 27 10:10:45 2025 -0500

    - fixed dap

commit 79e25df11175f06aded12623c5e1f767e8dea62f
Merge: 77f94ba 9276e23
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Sat Jul 26 15:39:58 2025 -0500

    Merge branch 'main' into private

commit 77f94ba17e70b091426401a628fab9e85846e6ba
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Sat Jul 26 15:34:26 2025 -0500

    - scape swap for sway
    - added urxvt to sway config
    - added window rules to sway
    - added set wallpaper to autostart for swaybg
    - switched to vesktop on autostart

commit 6f0fafe4526e162d1ecf2539a25471fd14e2f290
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Sat Jul 26 01:52:03 2025 -0500

    changed split binds

commit 49c157befb489cd3b6941caa17f79d870a96c6cf
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Sat Jul 26 01:49:53 2025 -0500

    border toggle

commit 01cd90e553e43a97b1e47f4ba89996129869fad6
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Sat Jul 26 01:24:43 2025 -0500

    added sway

commit 41926914b2d133a8c12be7b3e4bc51d211004e7c
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Fri Jul 25 16:58:17 2025 -0500

    added sway stuff

commit e7f5b9a0ded83e9d18749406a8c1a1e1a94087f8
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Thu Jul 24 20:38:41 2025 -0500

    changed reqs to use /etc/os-release ID

commit 4e4afd99f7c65b3f678bea2d87a7d44ef240eed1
Merge: 1b48e80 6c9643b
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Thu Jul 24 20:25:38 2025 -0500

    Merge branch 'main' into private

commit 1b48e80a2778327bb33e3b0d145d37f681da2ede
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Thu Jul 24 20:06:36 2025 -0500

    added mediamtx to backup

commit 9b16a6bc57d54b5e43c4ceb7ca99b8aaab959fe2
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Wed Jul 23 12:24:22 2025 -0500

    removed mpris from awesome. switched to playerctl

commit 7237efb42a68325c752b7accb8682be34d6eacbc
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Wed Jul 23 11:12:36 2025 -0500

    changed autostart to discord

commit 5eea746653327c5bebba690140359057c2c35412
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Tue Jul 22 17:33:00 2025 -0500

    todo edit

commit 258a44ce129002a95eedaa37d9024019ba0d3750
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Tue Jul 22 17:27:50 2025 -0500

    added choices to get reqs all

commit b304ed21365bbcc17a9fea84d5662692cc75b178
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Tue Jul 22 15:36:55 2025 -0500

    added next and prev workspace

commit a9a5b50cf4e7f80e02f86ae470b34d2f5191ec66
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Tue Jul 22 08:32:00 2025 -0500

    made aur manager a var

commit 719be3e6628675c62e7579e9f0f1e8867f1fc0f4
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Tue Jul 22 08:27:40 2025 -0500

    todo change

commit b8fbf67a5a4bca7e247225c01989633296c75c1a
Merge: dec5490 4808986
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Mon Jul 21 20:57:39 2025 -0500

    Merge branch 'main' into private

commit dec5490fce95644a69734381a6fc0f32bbac918f
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Mon Jul 21 07:23:40 2025 -0500

    readded CC submodule

commit 1d8283b65b22fe6c34b2a718f8ab831bbe5d9366
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Mon Jul 21 07:23:40 2025 -0500

    added discord. fuck vesktop

commit d78e4f5191764f383b014366b35ca299d4352038
Author: iceyrazor <iceyrazor@mailfence.com>
Date:   Sat Jul 19 14:53:26 2025 -0500

    readme change
2025-08-30 22:14:21 -05:00
968141f8a7 Squashed commit of the following:
- mpv
    - i3
    - changed zsh ps1
    - added swapscape to backup-tol2
    - removed floating
    - show hidden on word search telescope
    - added mod+r to leave resize
2025-08-06 12:15:13 -05:00
83318afdb6 Squashed commit of the following:
- dusnt theme
    - readme fix?
    - removed librewolf from laptop backup. takes too long
    - wezterm var for wezterm
    - use p10kbar only if wezterm var
    - removed zsh entry in wezterm and tmux
    - moved to librewolf
    - backup changes
2025-07-30 03:03:50 -05:00
0574377182 Squashed commit of the following:
- the splittening. get reqs are now seperate files. and im using a loop
2025-07-29 19:08:43 -05:00
989269f4d5 Squashed commit of the following:
- customized tmux bar
    - swapped harpoon keys
    - fixed exit terminal key
    - removed trailing commas in waybar config
    - neovim
        - added proj search
        - added notes bind
        - bind to exit term (doesnt really work for me)
        - auto cwd OF file dir OR git main dir WHEN bufenter and bind
    - swaped tmux move keys
    - changed showmethekey windowrule
2025-07-29 16:20:22 -05:00
5887bb0d4d changes
- waybar rice
- small edit to wezterm
- fixed sway im emoji picker rule
- made screenshot to file. will change later
- added second monitor scale
- added sway next
- fixed dap
2025-07-27 22:37:30 -05:00
9276e2300a added sway
- scape swap for sway
- added urxvt to sway config
- added window rules to sway
- added set wallpaper to autostart for swaybg
- switched to vesktop on autostart
- changed split binds
- border toggle
- added sway
- added sway stuff
- changed reqs to use /etc/os-release ID
2025-07-26 15:37:54 -05:00
6c9643ba74 changes
- added mediamtx to backup
- removed mpris from awesome. switched to playerctl
- changed autostart to discord
- todo edit
- added choices to get reqs all
- added next and prev workspace
- made aur manager a var
- todo change
2025-07-24 20:09:13 -05:00
4808986b08 changes
- readded CC submodule
- added discord window rules
- readme change
2025-07-21 20:56:30 -05:00
143696c0a9 lots of changes
- changed music command
- added music to backup
- showmethekey more window rules
- added mpv config
- added seahorse to all reqs
- nvim
    - added render markdown
    - added treesitter. ive been using just my systems treesitter.
    - fixed undotree bind
    - removed eldritch theme. it broke
2025-07-19 14:39:56 -05:00
63cfe97908 removed script_dir_2 2025-07-10 20:01:57 -05:00
5c3d0362a2 hypr anim change 2025-07-09 19:36:01 -05:00
0131b1e430 removed wallpaper
- removed setwall and wallpapers. moved to theme-setter
- added blender to find
2025-07-07 20:32:29 -05:00
215031f5a2 - fixed dpi setting for awesome.
- changed screenshot to slurp.
- added slurp to reqs
- removed dpi setting from autostart
2025-07-07 18:32:30 -05:00
24c8a05204 readme changes 2025-07-01 19:47:01 -05:00
889894aa1d - fixed wrong dir targets
- added commands to toggle swapscape for hyprland
- fixed a launch in autostart
- wrong dir for keep finds
2025-07-01 16:19:14 -05:00
b95ae4c5c9 - moved system scripts to here
- config changes
- fixed my backup scripts. rsync -a
- added dmenu script
- fixed finds in env.sh
2025-06-30 00:05:45 -05:00
22b2eb9a95 - config changes
- added swapscape for tty and x11
2025-06-29 02:37:33 -05:00
26488dbdfc - config changes
- made remaps reload on buffer switch
- added auto switcher script
2025-06-23 18:19:43 -05:00
56a9849623 configs. fixed misspell. added gen-thumb-md.
generates thumbnails for videos and puts all video and non video in a markdown file
2025-06-21 23:06:47 -05:00
3252a201c1 added fzf-thumb script. config edits. more fugitive setup. telescope rg setup. disabled auto dapui. 2025-06-20 17:08:09 -05:00
8c809c40db dapn 2025-06-20 03:15:32 -05:00
7e2e0bdc3a config changes 2025-06-18 18:28:08 -05:00
e5ad2c3cd4 autodetect doas in profile, fixed floating wibar (awesome), rules for im on awesome and auto center, fixed display detect in lfrc, backup script changes 2025-06-15 22:32:50 -05:00
a0048ec816 fixed awesome to be a bit more consistant to hyprland. fixed autostart 2025-06-11 18:56:41 -05:00
7cf3fa4899 made get-reqs prettier. fixed script_dir overwrite 2025-06-10 20:39:48 -05:00
a67c7f6bab added hyprlock, wlogout, and wlogout script. 2025-06-10 18:49:54 -05:00
fafe4746e4 removed unused preload. vim word searching. moved tab maps. fixed zsh clipboard 2025-06-08 19:02:50 -05:00
01b58f09b7 removed lsp-zero and reconfigured lsp. setup cmp more throughly. added snippets. made packer file a bit more organized. 2025-06-08 00:09:28 -05:00
b69040fda0 fixed awesome autostart dir. added wallpaper setter script. made no extension be filetype sh in neovim. renamed some scripts. 2025-06-04 10:16:12 -05:00
edf3d20945 reformated readme, added lint and markdown lint, fixed env.sh 2025-06-02 16:59:01 -05:00
354a2abbcd made my yt playlist dir a env var 2025-06-01 22:19:29 -05:00
1531d84d91 added pipewire. cleaned up profile. 2025-05-31 08:06:08 -05:00
b849f59fe3 fixed duplicate waybar in script and added quotes 2025-05-30 12:18:50 -05:00
1796c3f769 made minimal dev deployer, moved script sudo calls to doas 2025-05-30 10:27:44 -05:00
b40f652968 usual config changes 2025-05-28 08:59:16 -05:00
c31571d643 fixed autostart secondary scripts 2025-05-26 16:52:03 -05:00
e6577b4106 added packer script. made plugin configs not error out when no plugin 2025-05-26 16:00:35 -05:00
571effe737 added mimes 2025-05-26 15:19:57 -05:00
f328ef7afd ime 2025-05-26 13:34:15 -05:00
dcbd6a365b fix path.sh source 2025-05-25 04:51:39 -05:00
5f802a4a9d made dynamic generating path. 2025-05-25 04:42:09 -05:00
90248ad822 stuff and things 2025-05-24 21:15:23 -05:00
1be4f161e3 removed auto env. kinda dangerous. configs. 2025-05-24 07:08:53 -05:00
91985fa3bb fixeeeed submodddule?????? 2025-05-24 06:43:38 -05:00
38ab795ff0 remove module? updated lsp lib module 2025-05-24 06:39:32 -05:00
123 changed files with 5630 additions and 701 deletions

6
.gitmodules vendored
View File

@@ -1,3 +1,3 @@
[submodule ".config/nvim/custom-lsp/lua-ls-cc-tweaked"]
path = .config/nvim/custom-lsp/lua-ls-cc-tweaked
url = https://github.com/nvim-computercraft/lua-ls-cc-tweaked.git
[submodule "env/.config/nvim/custom-lsp/lua-ls-cc-tweaked"]
path = env/.config/nvim/custom-lsp/lua-ls-cc-tweaked
url = https://github.com/nvim-computercraft/lua-ls-cc-tweaked

View File

@@ -1,12 +1,18 @@
# hi
this is just some configs and stuffs i decided to put on my github
eg my dotfiles
# update 05/24/2025
this has my dotfiles as well as quite a few scripts and other stuff
- current os Artix linux (btw)
## update 05/24/2025
i liked how primagen did his dev environment and deploying of scripts. so im making my own version
note: the pacman install scripts may not be fully what i have as i made this loong after installing software
# requirements
> [!NOTE]
> the pacman install scripts may not be fully what i have as i made this loong after installing software
## requirements
- for dwm or awesome
- xorg-server
- xorg-xinit
@@ -15,7 +21,8 @@ note: the pacman install scripts may not be fully what i have as i made this loo
- libxft
- libxinerama
- for awesome extra
- rofi-wayland (works on x. my rofi command on awesome is rofi -x11 so this may be required)
- rofi-wayland
(works on x. my rofi command on awesome is rofi -x11 so this may be required)
- for surf
- gcr
- webkit2gtk
@@ -27,32 +34,37 @@ note: the pacman install scripts may not be fully what i have as i made this loo
- installing dwm, dmenu, and surf
- cd into respective directory
- sudo make clean install
- startx #for dwm
- hyprland
- startx # for dwm
- hyprland or sway
- wayland
- waybar
- grim # needed for flameshot to work on wayland
- xdg-deskop=portal
- xdg-deskop=portal-hyprland
- xdg-deskop=portal-wlr # for sway
- xdg-deskop=portal-gtk
- hyprpaper
- hyprlock
- wlogout
- for neovim
- packer
- packer # (download script in runs/packer.sh)
- for urlview - urlview
- terminal
- primary wezterm
- secondary rxvt-unicode # less memory usage
- ibus
- ibus-mozc # for japanese input
- fonts
- fcitx5-im
- fcitx5-mozc
- fcitx5-im-emoji-picker-git
- fonts
- B612 mono
- ttf-inconsolata
- ttf-jetbrains-mono
- ttf-jetbrains-mono-nerd
- noto-fonts-emoji
- otf-ipafont
- login
- sddm (for hyprland. it doesnt like lightdm :<)
- lightdm
- sddm # for hyprland. it doesnt like lightdm :<
- lightdm # for x11
- lightdm-gtk-greeter
- lxappearance # for setting gtk theme
- theme
@@ -63,7 +75,7 @@ note: the pacman install scripts may not be fully what i have as i made this loo
- background setter - nitrogen # for x11
- numen # voice control, manual setup
- file manager
- lf
- lf (with lf-gadgets at .local/bin)
- pcmanfm
- shell
- zsh
@@ -72,8 +84,10 @@ note: the pacman install scripts may not be fully what i have as i made this loo
- pipewire-jack
- pipewire-pulse
- qpwgraph
- onscreen keys - screenkey
- compositor
- onscreen keys
- screenkey
- showmethekey # for wayland
- compositor
- xcompmgr # primarily
- picom # for fancy ness
- inetutils # for normal ftp
@@ -89,10 +103,11 @@ note: the pacman install scripts may not be fully what i have as i made this loo
- notifications
- libnotify
- notify-send
- dusnt # for hyprland
- dusnt
- calender
- calcurse
# todo
- deploy
- seperate installs into more scripts to have different steps in requirements. probably wont do this
## todo
- [ ] make symlink. where if -s. do symlink instead of env
- [ ] make fully portable version, all pulled and compiled version bins for just devtools.

17
env/.bash_profile vendored Normal file
View File

@@ -0,0 +1,17 @@
#
# ~/.bash_profile
#
[[ -f ~/.bashrc ]] && . ~/.bashrc
#!/bin/bash
if test -z "${XDG_RUNTIME_DIR}"; then
export XDG_RUNTIME_DIR=/tmp/${UID}-runtime-dir
if ! test -d "${XDG_RUNTIME_DIR}"; then
mkdir "${XDG_RUNTIME_DIR}"
chmod 0700 "${XDG_RUNTIME_DIR}"
fi
fi
#export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0

6
env/.bashrc vendored
View File

@@ -6,5 +6,9 @@
[[ $- != *i* ]] && return
PS1='\[\e[37;1m\][\[\e[35;1m\]\u\[\e[33m\]@\[\e[35;1m\]\h \[\e[36;1m\]\W\[\e[37;1m\]]\[\e[0;1m\]∮ '
~/stuff/scripts/system/neoboot.sh
set -o vi
~/.local/bin/system/neoboot.sh
source ~/.config/.profile
eval "$(fzf --bash)"
eval "$(atuin init bash)"

78
env/.config/.profile vendored
View File

@@ -23,71 +23,69 @@ fi
#fi
# . torsocks on
export DEV_ENV=~
export PROMPT_EOL_MARK=""
export EDITOR="nvim"
# idk which one works
# export BROWSER="/home/iceyrazor/.local/bin/zen-x86_64.AppImage"
export BROWSER="zen.desktop"
#export BROWSER="custom-zen.desktop"
export PREFIX=/usr
export PATH="$PATH:$HOME/.cargo/bin:$HOME/stuff/scripts/system:$HOME/stuff/scripts/system/backup:$HOME/stuff/scripts/system/wlx:$HOME/stuff/scripts/system/youtube-playlist-cli:$HOME/.local/bin/blender-4.1.1-linux-x64:$HOME/stuff/manual-programs/app-images:$HOME/stuff/scripts/system/theme-setter"
export PATH="$PATH:$HOME/.cargo/bin:$HOME/.local/bin/blender-4.1.1-linux-x64"
export MANPAGER='nvim +Man!'
# export DWM_NOTIF_FILE="/home/iceyrazor/stuff/scripts/c/SDL/notif/notif.txt"
if [ -f ~/.local/bin/system/paths.sh ]; then
source ~/.local/bin/system/paths.sh
fi
export DIAGRAM_PLANTUML_CLASSPATH=/usr/lib/ruby/gems/3.4.0/gems/asciidoctor-diagram-plantuml-1.2025.3/lib/asciidoctor-diagram/plantuml/plantuml-lgpl-1.2025.3.jar
export heartost="/home/iceyrazor/.steam/root/steamapps/music/Heartbound - OST"
alias fukn="sudo $@"
[ doas ] && alias fukn="doas $@"
alias ls='ls --color=auto'
alias lss="fukn du -ahd 1 | sort -hr"
alias lss="fukn du -ahd 1 | sort -h"
alias lsu="lsblk --filter 'NAME=~\"sd[abcde]\"' -o NAME,MOUNTPOINTS"
alias surf="WEBKIT_DISABLE_COMPOSITING_MODE=1 surf"
alias lsblkfs="lsblk -o PATH,FSTYPE,MOUNTPOINT"
alias grep='grep --color=auto'
alias fzf="fzf --walker-skip=.private-parent"
alias fcd="cd \"\$(fzf --walker dir,hidden --walker-skip=.private-parent)\""
# alias ffchar='fastfetch --logo ~/stuff/media/ICE/ascii-char.txt --logo-color-5 "light_magenta" --logo-color-1 "reset_black" --logo-color-2 "light_black" --logo-color-3 "light_blue"'
alias ffcompact='fastfetch -c $HOME/.config/fastfetch/compact.jsonc'
alias ff='fastfetch -c $HOME/.config/fastfetch/10.jsonc 2> /dev/null || fastfetch --localip-show-ipv4 0'
alias ffchar='fastfetch -c $HOME/.config/fastfetch/ascii-char.jsonc'
# alias fastfetch='fastfetch --localip-show-ipv4 0 --kitty-direct /home/iceyrazor/stuff/media/ICE/Sprite-0009.png --logo-width 40 --logo-height 20'
[ "$(cat /etc/hostname)" = "Kasino" ] && alias fukn="doas $@"
[ "$(cat /etc/hostname)" = "Kan" ] && alias fukn="doas $@"
alias numen="echo key x | fukn dotool && NUMEN_DMENU=rofi NUMEN_DMENU_OPTS='-show drun' LD_LIBRARY_PATH=/usr/lib/ numen & disown"
alias ascii="~/stuff/scripts/c/SDL/ascii/ascii"
alias newsboat="NO_PROXY=\".com,.org,.xyz,.chat,.social,.net,.co\" newsboat"
alias watchlss="fukn watch \"du -ah -d 1 | sort -hr\""
alias lfub=~/.local/bin/lf-gadgets/lf-ueberzug/lf-ueberzug
alias dev="~/stuff/scripts/dotfiles/run.sh"
# alias lfub=~/.local/bin/lf-gadgets/lf-ueberzug/lf-ueberzug
alias lfk=~/.local/bin/lf-gadgets/lf-kitty/lf-kitty
alias ovim=/usr/bin/vim
alias vim=nvim
alias fzf="fzf --walker-skip=.private-parent"
alias fcd="cd \"\$(fzf --walker dir,hidden --walker-skip=.private-parent)\""
alias notes="cd ~/stuff/notes && vim notes.md && cd ~"
alias ts="~/stuff/scripts/system/tmux-sessionizer.sh"
alias ts="tmux-sessionizer.sh"
alias fman="bash -c 'compgen -c' | fzf | xargs man"
alias etask="$EDITOR stuff/scripts/system/task.sh"
alias LC="fukn loadkeys ~/.config/swapscape.map"
#alias updateL='fukn /home/iceyrazor/update_list/update_list.sh '
alias music="nohup vlc /home/iceyrazor/stuff/scripts/system/youtube-playlist-cli/title_vids > /dev/null 2> /dev/null < /dev/null & disown && cd /home/iceyrazor/stuff/scripts/system/youtube-playlist-cli/title_vids && lfk"
alias ibuss="ibus-daemon -rxRd"
alias ygg="fukn bash -c 'mkdir /var/run/yggdrasil; yggdrasil -useconf < /etc/yggdrasil.conf'"
alias alvr="WINIT_X11_SCALE_FACTOR=\"1\" /home/iceyrazor/stuff/manual-programs/dontsync/alvr_streamer_linux/bin/alvr_dashboard & disown"
alias obss="obs && obs --enable-media-stream & disown"
alias get_channel_id="xargs curl -s | grep -Eo 'channel_id=.{0,50}' | sed 's/\".*//g' | fzf | xargs printf \"https://www.youtube.com/feeds/videos.xml?%s\" | xclip -selection clipboard"
alias get_channel_id="xargs curl -s | grep -Eo 'channel_id=.{0,50}' | sed 's/\".*//g' | fzf | xargs printf \"https://www.youtube.com/feeds/videos.xml?%s\""
alias killa="~/stuff/killall.sh"
alias bbackup="~/stuff/scripts/system/backup/backup.sh"
alias bbacklap="~/stuff/scripts/system/backup/backup-tol.sh"
alias bgit="~/stuff/scripts/system/backup/move-to-git.sh"
alias vasm="~/stuff/manual-programs/vasm/vasm6502_oldstyle -Fbin -dotdir "
alias pipes="pipes.sh -t 0 -p 3 -f 30 -r 2000"
alias astro="astroterm --color --constellations --speed 10000 --fps 64 --unicode -i Arlington"
# hyprland
alias anim="hyprctl keyword animations:enabled "
alias bri="fukn ~/stuff/scripts/system/bri.sh"
# alias drkwll="nitrogen --head=0 --set-zoom-fill ~/stuff/media/gallifreyan/linux2.png && nitrogen --head=1 --set-zoom-fill ~/stuff/media/gallifreyan/linux2.png"
# alias drkwll="nitrogen --head=0 --set-zoom-fill ~/stuff/media/wallpapers/dark_leaves.png && nitrogen --head=1 --set-zoom-fill ~/stuff/media/wallpapers/dark_leaves.png"
alias drkwll="[ -z $WAYLAND_DISPLAY ] && nitrogen --head=0 --set-zoom-fill ~/stuff/media/wallpapers/dark_leaves.png && nitrogen --head=1 --set-zoom-fill ~/stuff/media/wallpapers/dark_leaves.png || hyprctl hyprpaper wallpaper 'HDMI-A-1,/home/iceyrazor/stuff/media/wallpapers/dark_leaves.png' && hyprctl hyprpaper wallpaper 'DP-1,/home/iceyrazor/stuff/media/wallpapers/dark_leaves.png'"
alias reswll="hyprctl hyprpaper wallpaper 'HDMI-A-1,/home/iceyrazor/stuff/media/wallpapers/4500025-retrowave-vaporwave-car-typography-purple-blue-chromatic-aberration-initial-d-hachi-roku.jpg' && hyprctl hyprpaper wallpaper 'DP-1,/home/iceyrazor/stuff/media/wallpapers/tumblr_06bbd355f3e355049446dac24f6e7c44_2c486f77_1280 ninesols.jpg'"
alias swap="hyprctl keyword input:kb_options caps:swapescape"
alias nswap="hyprctl keyword input:kb_options null"
if [ "$XDG_CURRENT_DESKTOP" = "sway:wlroots" ]; then
alias swap="swaymsg 'input \"type:keyboard\" xkb_options \"caps:swapescape\"'"
alias nswap="swaymsg 'input \"type:keyboard\" xkb_options \"\"'"
fi
# mounting
alias umsu="fukn umount u"
@@ -100,22 +98,23 @@ alias msfd="fukn mount /dev/sdc1 u2"
alias msf="fukn cryptsetup open /dev/sdc2 flashdrive && fukn mount /dev/mapper/flashdrive ~/u"
alias umsf="fukn umount ~/u && fukn cryptsetup close flashdrive"
alias cam="ffplay -input_format mjpeg -fast -fflags +nobuffer -i -framerate 30 -max_delay 100 -max_probe_packets 0 -analyzeduration 0 -flags +low_delay /dev/video0"
alias cam="ffplay -input_format mjpeg -fast -fflags +nobuffer -i -framerate 30 -max_delay 100 -max_probe_packets 0 -analyzeduration 0 -flags +low_delay"
alias sc="ffmpeg -f x11grab -framerate 1 -video_size 1920x1200 -i :0.0 -vframes 1 -crf 18 ~/Pictures/Screenshots/$(date '+%m-%d-%Y-%I-%M')_${RANDOM}_screenshot.jpeg"
alias sccam="ffmpeg -f video4linux2 -i /dev/v4l/by-id/usb-Sonix_Technology_Co.__Ltd._USB_2.0_Camera_SN0001-video-index0 -vframes 1 -video_size 1280x720 test.jpeg"
alias sc2="escrotum -s ~/Pictures/%Y-%m-%d-%H%M%S_$wx$h_escrotum.png"
alias scs="sleep 3s && ffmpeg -f x11grab -framerate 1 -video_size 1920x1200 -i :0.0 -vframes 1 -crf 18 output.jpeg"
alias wwrite="watch -d grep -e Dirty: -e Writeback: /proc/meminfo"
alias gol="~/stuff/scripts/c/SDL/game-of-life/game-of-life & disown"
# alias vrinit="echo key x | fukn dotool && drkwll && killall xcompmgr; sleep 1s && wlx-layout.sh main; \
alias vrinit="echo key x | fukn dotool && drkwll && sleep 2s && tmux new-session -s chat-loop -c stuff/scripts/rust/chat-loop"
alias statst="echo full_stat:true > ~/stuff/scripts/system/stbar/config.txt"
alias statsf="echo full_stat:false > ~/stuff/scripts/system/stbar/config.txt"
alias statst="echo full_stat:true > ~/.local/bin/system/stbar/config.txt"
alias statsf="echo full_stat:false > ~/.local/bin/system/stbar/config.txt"
# git
alias gitlol="git log --oneline --graph --decorate"
alias get_drm="fukn cat /sys/module/nvidia_drm/parameters/modeset"
alias nodem="find . -name 'node_modules' -type d | xargs du -sh | sort -hr | fzf -m --header \"select witch ones to delete\" --preview 'cat $(dirname {})/package.json'|awk print '{print $2}' | xargs -r rm -rf"
@@ -123,10 +122,5 @@ alias walltaker="stuff/manual-programs/git/walltaker-client/walltaker.sh"
alias savewall="stuff/manual-programs/git/walltaker-client/save.sh"
# alias session="./Downloads/session-desktop-linux-x86_64-1.12.4.AppImage > /dev/null & disown"
# alias simplex="_JAVA_AWT_WM_NONREPARENTING=1 ./Downloads/simplex-desktop-x86_64.AppImage > /dev/null & disown"
# alias loki="./stuff/scripts/loki-toggle.sh"
# alias lokig="fukn Lokinet-GUI.AppImage --no-sandbox > /dev/null & disown"
xset r rate 300 50
# xset r off

2
env/.config/awesome/awesome.xinitrc vendored Normal file
View File

@@ -0,0 +1,2 @@
xrandr --dpi 120 --output eDP-1 --scale 1.2x1.2
exec awesome

View File

@@ -1,3 +1,4 @@
-- KEYS are out of wack. n should be o but its not. ill fix it later
pcall(require, "luarocks.loader")
-- Standard awesome library
@@ -66,7 +67,7 @@ globalkeys = gears.table.join(
awful.key({ modkey, "Shift" }, "q", awesome.quit,
{description = "quit awesome", group = "awesome"}),
awful.key({ modkey, "Shift" }, "u", show_my_desktop, {description = "show desktop", group = "awesome"}),
-- awful.key({ modkey, "Shift" }, "u", show_my_desktop, {description = "show desktop", group = "awesome"}),
awful.key({ modkey, }, "i", function () awful.tag.incmwfact( 0.05) end,
{description = "increase master width factor", group = "layout"}),
@@ -126,8 +127,8 @@ globalkeys = gears.table.join(
awesome.restart()
end),
awful.key({ }, "XF86AudioPlay", function () awful.util.spawn(mpris.." -a PlayPause") end),
awful.key({ }, "XF86AudioStop", function () awful.util.spawn(mpris.." -a pause") end),
awful.key({ }, "XF86AudioPlay", function () awful.util.spawn("playerctl play-pause") end),
awful.key({ }, "XF86AudioStop", function () awful.util.spawn("playerctl -a pause") end),
--awful.key({ }, "XF86AudioRaiseVolume", function () awful.util.spawn("amixer -D pulse sset Master 2%+", false) end),
awful.key({ }, "XF86AudioRaiseVolume", function () awful.util.spawn("pactl set-sink-volume @DEFAULT_SINK@ +2%", false) end),
awful.key({ }, "XF86AudioLowerVolume", function () awful.util.spawn("pactl set-sink-volume @DEFAULT_SINK@ -2%", false) end),

View File

@@ -43,7 +43,7 @@ globalkeys = gears.table.join(
{description = "swap with next client by index", group = "client"}),
awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end,
{description = "swap with previous client by index", group = "client"}),
awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end,
awful.key({ modkey, }, "o", function () awful.screen.focus_relative( 1) end,
{description = "focus the next screen", group = "screen"}),
awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-1) end,
{description = "focus the previous screen", group = "screen"}),
@@ -66,7 +66,7 @@ globalkeys = gears.table.join(
awful.key({ modkey, "Shift" }, "q", awesome.quit,
{description = "quit awesome", group = "awesome"}),
awful.key({ modkey, "Shift" }, "o", show_my_desktop, {description = "show desktop", group = "awesome"}),
--awful.key({ modkey, "Shift" }, "o", show_my_desktop, {description = "show desktop", group = "awesome"}),
awful.key({ modkey, }, "l", function () awful.tag.incmwfact( 0.05) end,
{description = "increase master width factor", group = "layout"}),
@@ -127,8 +127,8 @@ globalkeys = gears.table.join(
awesome.restart()
end),
awful.key({ }, "XF86AudioPlay", function () awful.util.spawn(mpris.." -a PlayPause") end),
awful.key({ }, "XF86AudioStop", function () awful.util.spawn(mpris.." -a pause") end),
awful.key({ }, "XF86AudioPlay", function () awful.util.spawn("playerctl play-pause") end),
awful.key({ }, "XF86AudioStop", function () awful.util.spawn("playerctl -a pause") end),
--awful.key({ }, "XF86AudioRaiseVolume", function () awful.util.spawn("amixer -D pulse sset Master 2%+", false) end),
awful.key({ }, "XF86AudioRaiseVolume", function () awful.util.spawn("pactl set-sink-volume @DEFAULT_SINK@ +2%", false) end),
awful.key({ }, "XF86AudioLowerVolume", function () awful.util.spawn("pactl set-sink-volume @DEFAULT_SINK@ -2%", false) end),
@@ -222,7 +222,7 @@ clientkeys = gears.table.join(
{description = "toggle floating", group = "client"}),
awful.key({ modkey, }, "z", function (c) c:swap(awful.client.getmaster()) end,
{description = "move to master", group = "client"}),
awful.key({ modkey, }, "o", function (c) c:move_to_screen() end,
awful.key({ modkey, "Shift" }, "o", function (c) c:move_to_screen() end,
{description = "move to screen", group = "client"}),
awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end,
{description = "toggle keep on top", group = "client"}),

View File

@@ -21,8 +21,7 @@ Us_keys_colemak = require("keys-US-colemak")
-- when client with a matching name is opened:
require("awful.hotkeys_popup.keys")
local HOMEDIR="/home/iceyrazor"
mpris=HOMEDIR.."/stuff/scripts/system/mpris_player_control"
local HOMEDIR="/home/iceyrazor/"
local show_desktop = false
@@ -103,9 +102,6 @@ editor_cmd = terminal .. " -e " .. editor
-- I suggest you to remap Mod4 to another key using xmodmap or other tools.
-- However, you can use another modifier like Mod1, but it may interact with others.
modkey = "Mod4"
if awesome.hostname == "DangerNoodle" then
--modkey = "Mod3"
end
-- Table of layouts to cover with awful.layout.inc, order matters.
@@ -141,10 +137,10 @@ myawesomemenu = {
{ "quit", function() awesome.quit() end },
}
mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon },
{ "open terminal", terminal }
}
})
mymainmenu = awful.menu({ items = {
{ "awesome", myawesomemenu, beautiful.awesome_icon },
{ "open terminal", terminal }
}})
mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon,
menu = mymainmenu })
@@ -261,7 +257,7 @@ awful.screen.connect_for_each_screen(function(screen)
spacerbg.bg = beautiful.bg_normal
screen.mywibox.bg = beautiful.wibar_background
screen.mywibox.ontop = true
screen.mywibox.ontop = false
screen.mywibox.floating = false
local mykeyboardlayout = wibox.widget.background(mykeyboardlayout)
@@ -275,7 +271,7 @@ awful.screen.connect_for_each_screen(function(screen)
-- Add widgets to the wibox
if screen.index==1 then
local stbar = awful.widget.watch(HOMEDIR..'/stuff/scripts/system/stbar/stbar-awesome.sh', 2)
local stbar = awful.widget.watch(HOMEDIR..'.local/bin/system/stbar/stbar-awesome.sh', 2)
local stbar = wibox.widget.background(stbar)
stbar.bg = beautiful.bg_normal
@@ -322,7 +318,7 @@ awful.screen.connect_for_each_screen(function(screen)
screen.mylayoutbox,
},
}
end
end
-- Add widgets to the wibox
@@ -454,6 +450,14 @@ awful.rules.rules = {
class = { "steam_app*", "vesktop", "Minecraft*" }
},
properties = { border_width = 0 }
},
{
rule = { name = "im-emoji-picker" },
properties = {
focusable = false,
focus = false,
}
}
-- Set Firefox to always map on the tag named "2" on screen 1.
@@ -462,7 +466,6 @@ awful.rules.rules = {
}
-- }}}
if screen[2] then
screen[2]:fake_resize(1986,33,1792,1015)
table.insert(awful.rules.rules,
{ rule_any = {
class = { "Mumble", "gajim", "vesktop" }
@@ -472,6 +475,25 @@ if screen[2] then
)
end
client.connect_signal("manage", function(c)
if c.name == "im-emoji-picker" then
local focused = client.focus
if focused and focused ~= c then
-- Center on focused client
local geo = focused:geometry()
local c_geo = c:geometry()
c:geometry({
x = geo.x + (geo.width - c_geo.width) / 2,
y = geo.y + (geo.height - c_geo.height) / 2
})
else
-- Fallback: center on screen
awful.placement.centered(c, nil)
end
end
end)
-- {{{ Signals
-- Signal function to execute when a new client appears.
client.connect_signal("manage", function (c)
@@ -487,15 +509,6 @@ client.connect_signal("manage", function (c)
end
end)
screen[1]:connect_signal("request::geometry", function(s)
-- Recalculate the workarea height
-- s.workarea.height = s.geometry.height - 100
gears.debug.print_error("Workarea height: " .. tostring(s.workarea.height))
naughty.notify({ title = "Oops, there were errors during startup!",
text = 'djsakldsaujsaiodsjugfa89rdfjg489ejt' })
-- You can also recalculate s.workarea.y if you want to fine-tune vertical placement
-- awful.layout.arrange(s)
end)
awful.layout.suit.tile.master_width_factor = 0.5
-- Add a titlebar if titlebars_enabled is set to true in the rules.
@@ -551,4 +564,4 @@ client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_n
-- autostart applets
awful.spawn.with_shell("~/.config/dwm/autostart.sh")
awful.spawn.with_shell("~/.local/bin/system/start-scripts/autostart.sh")

View File

@@ -22,7 +22,7 @@
# The number of bars (0-512). 0 sets it to auto (fill up console).
# Bars' width and space between bars in number of characters.
bars = 512
bars = 0
bar_width = 1
; bar_spacing = 0
# bar_height is only used for output in "noritake" format

513
env/.config/dunst/dunstrc vendored Normal file
View File

@@ -0,0 +1,513 @@
# See dunst(5) for all configuration options
[global]
### Display ###
# Which monitor should the notifications be displayed on.
# i keep having to change this because hyprland ◔̯◔
monitor = 1
# Display notification on focused monitor. Possible modes are:
# mouse: follow mouse pointer
# keyboard: follow window with keyboard focus
# none: don't follow anything
#
# "keyboard" needs a window manager that exports the
# _NET_ACTIVE_WINDOW property.
# This should be the case for almost all modern window managers.
#
# If this option is set to mouse or keyboard, the monitor option
# will be ignored.
follow = none
### Geometry ###
# The width of the window, excluding the frame.
# dynamic width from 0 to 300
# width = (0, 300)
# constant width of 300
width = 300
# The height of a single notification, excluding the frame.
# dynamic height from 0 to 300
height = (0, 300)
# constant height of 300
# height = 300
# NOTE: Dunst from version 1.11 and older don't support dynamic height
# and the given value is treated as the maximum height
# Position the notification in the top right corner
origin = top-right
# Offset from the origin
# NOTE: Dunst from version 1.11 and older use this alternative notation
# offset = 10x50
offset = (10, 50)
# Scale factor. It is auto-detected if value is 0.
scale = 0
# Maximum number of notification (0 means no limit)
notification_limit = 20
### Progress bar ###
# Turn on the progress bar. It appears when a progress hint is passed with
# for example dunstify -h int:value:12
progress_bar = true
# Set the progress bar height. This includes the frame, so make sure
# it's at least twice as big as the frame width.
progress_bar_height = 10
# Set the frame width of the progress bar
progress_bar_frame_width = 1
# Set the minimum width for the progress bar
progress_bar_min_width = 150
# Set the maximum width for the progress bar
progress_bar_max_width = 300
# Corner radius for the progress bar. 0 disables rounded corners.
progress_bar_corner_radius = 0
# Define which corners to round when drawing the progress bar. If progress_bar_corner_radius
# is set to 0 this option will be ignored.
progress_bar_corners = all
# Corner radius for the icon image.
icon_corner_radius = 0
# Define which corners to round when drawing the icon image. If icon_corner_radius
# is set to 0 this option will be ignored.
icon_corners = all
# Show how many messages are currently hidden (because of
# notification_limit).
indicate_hidden = yes
# The transparency of the window. Range: [0; 100].
# This option will only work if a compositing window manager is
# present (e.g. xcompmgr, compiz, etc.). (X11 only)
transparency = 0
# Draw a line of "separator_height" pixel height between two
# notifications.
# Set to 0 to disable.
# If gap_size is greater than 0, this setting will be ignored.
separator_height = 2
# Padding between text and separator.
padding = 8
# Horizontal padding.
horizontal_padding = 8
# Padding between text and icon.
text_icon_padding = 0
# Defines width in pixels of frame around the notification window.
# Set to 0 to disable.
frame_width = 3
# Defines color of the frame around the notification window.
frame_color = "#aaaaaa"
# Size of gap to display between notifications - requires a compositor.
# If value is greater than 0, separator_height will be ignored and a border
# of size frame_width will be drawn around each notification instead.
# Click events on gaps do not currently propagate to applications below.
gap_size = 0
# Define a color for the separator.
# possible values are:
# * auto: dunst tries to find a color fitting to the background;
# * foreground: use the same color as the foreground;
# * frame: use the same color as the frame;
# * anything else will be interpreted as a X color.
separator_color = frame
# Sort type.
# possible values are:
# * id: sort by id
# * urgency_ascending: sort by urgency (low then normal then critical)
# * urgency_descending: sort by urgency (critical then normal then low)
# * update: sort by update (most recent always at the top)
sort = yes
# Don't remove messages, if the user is idle (no mouse or keyboard input)
# for longer than idle_threshold seconds.
# Set to 0 to disable.
# A client can set the 'transient' hint to bypass this. See the rules
# section for how to disable this if necessary
# idle_threshold = 120
### Text ###
font = Monospace 10
# The spacing between lines. If the height is smaller than the
# font height, it will get raised to the font height.
line_height = 0
# Possible values are:
# full: Allow a small subset of html markup in notifications:
# <b>bold</b>
# <i>italic</i>
# <s>strikethrough</s>
# <u>underline</u>
#
# For a complete reference see
# <https://docs.gtk.org/Pango/pango_markup.html>.
#
# strip: This setting is provided for compatibility with some broken
# clients that send markup even though it's not enabled on the
# server. Dunst will try to strip the markup but the parsing is
# simplistic so using this option outside of matching rules for
# specific applications *IS GREATLY DISCOURAGED*.
#
# no: Disable markup parsing, incoming notifications will be treated as
# plain text. Dunst will not advertise that it has the body-markup
# capability if this is set as a global setting.
#
# It's important to note that markup inside the format option will be parsed
# regardless of what this is set to.
markup = full
# The format of the message. Possible variables are:
# %a appname
# %s summary
# %b body
# %i iconname (including its path)
# %I iconname (without its path)
# %p progress value if set ([ 0%] to [100%]) or nothing
# %n progress value if set without any extra characters
# %% Literal %
# Markup is allowed
format = "<b>%s</b>\n%b"
# Alignment of message text.
# Possible values are "left", "center" and "right".
alignment = left
# Vertical alignment of message text and icon.
# Possible values are "top", "center" and "bottom".
vertical_alignment = center
# Show age of message if message is older than show_age_threshold
# seconds.
# Set to -1 to disable.
show_age_threshold = 10
# Specify where to make an ellipsis in long lines.
# Possible values are "start", "middle" and "end".
ellipsize = middle
# Ignore newlines '\n' in notifications.
ignore_newline = no
# Stack together notifications with the same content
stack_duplicates = true
# Hide the count of stacked notifications with the same content
hide_duplicate_count = false
# Display indicators for URLs (U) and actions (A).
show_indicators = yes
### Icons ###
# Recursive icon lookup. You can set a single theme, instead of having to
# define all lookup paths.
enable_recursive_icon_lookup = true
# Set icon theme (only used for recursive icon lookup)
icon_theme = Adwaita
# You can also set multiple icon themes, with the leftmost one being used first.
# icon_theme = "Adwaita, breeze"
# Align icons left/right/top/off
icon_position = left
# Scale small icons up to this size, set to 0 to disable. Helpful
# for e.g. small files or high-dpi screens. In case of conflict,
# max_icon_size takes precedence over this.
min_icon_size = 32
# Scale larger icons down to this size, set to 0 to disable
max_icon_size = 128
# Paths to default icons (only necessary when not using recursive icon lookup)
icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
### History ###
# Should a notification popped up from history be sticky or timeout
# as if it would normally do.
sticky_history = yes
# Maximum amount of notifications kept in history
history_length = 20
### Misc/Advanced ###
# dmenu path.
dmenu = /usr/bin/rofi -dmenu -p dunst:
# Browser for opening urls in context menu.
browser = /usr/bin/xdg-open
# Always run rule-defined scripts, even if the notification is suppressed
always_run_script = true
# Define the title of the windows spawned by dunst (X11 only)
title = Dunst
# Define the class of the windows spawned by dunst (X11 only)
class = Dunst
# Define the corner radius of the notification window
# in pixel size. If the radius is 0, you have no rounded
# corners.
# The radius will be automatically lowered if it exceeds half of the
# notification height to avoid clipping text and/or icons.
corner_radius = 0
# Define which corners to round when drawing the window. If the corner radius
# is set to 0 this option will be ignored.
#
# Comma-separated list of the corners. The accepted corner values are bottom-right,
# bottom-left, top-right, top-left, top, bottom, left, right or all.
corners = all
# Ignore the dbus closeNotification message.
# Useful to enforce the timeout set by dunst configuration. Without this
# parameter, an application may close the notification sent before the
# user defined timeout.
ignore_dbusclose = false
### Wayland ###
# These settings are Wayland-specific. They have no effect when using X11
# Uncomment this if you want to let notifications appear under fullscreen
# applications (default: overlay)
# layer = top
# Set this to true to use X11 output on Wayland.
force_xwayland = false
### Legacy
# Use the Xinerama extension instead of RandR for multi-monitor support.
# This setting is provided for compatibility with older nVidia drivers that
# do not support RandR and using it on systems that support RandR is highly
# discouraged.
#
# By enabling this setting dunst will not be able to detect when a monitor
# is connected or disconnected which might break follow mode if the screen
# layout changes.
force_xinerama = false
### mouse
# Defines list of actions for each mouse event
# Possible values are:
# * none: Don't do anything.
# * do_action: Invoke the action determined by the action_name rule. If there is no
# such action, open the context menu.
# * open_url: If the notification has exactly one url, open it. If there are multiple
# ones, open the context menu.
# * close_current: Close current notification.
# * close_all: Close all notifications.
# * context: Open context menu for the notification.
# * context_all: Open context menu for all notifications.
# These values can be strung together for each mouse event, and
# will be executed in sequence.
mouse_left_click = close_current
mouse_middle_click = do_action, close_current
mouse_right_click = close_all
# Experimental features that may or may not work correctly. Do not expect them
# to have a consistent behaviour across releases.
[experimental]
# Calculate the dpi to use on a per-monitor basis.
# If this setting is enabled the Xft.dpi value will be ignored and instead
# dunst will attempt to calculate an appropriate dpi value for each monitor
# using the resolution and physical size. This might be useful in setups
# where there are multiple screens with very different dpi values.
per_monitor_dpi = false
[urgency_low]
# IMPORTANT: colors have to be defined in quotation marks.
# Otherwise the "#" and following would be interpreted as a comment.
background = "#222222"
foreground = "#888888"
timeout = 10
# Icon for notifications with low urgency
default_icon = dialog-information
[urgency_normal]
background = "#222222"
foreground = "#eeeeee"
timeout = 10
override_pause_level = 30
# Icon for notifications with normal urgency
default_icon = dialog-information
[urgency_critical]
background = "#900000"
foreground = "#ffffff"
frame_color = "#ff0000"
timeout = 0
override_pause_level = 60
# Icon for notifications with critical urgency
default_icon = dialog-warning
# Every section that isn't one of the above is interpreted as a rules to
# override settings for certain messages.
#
# Messages can be matched by
# appname (discouraged, see desktop_entry)
# body
# category
# desktop_entry
# icon
# match_transient
# msg_urgency
# stack_tag
# summary
#
# and you can override the
# background
# foreground
# format
# frame_color
# fullscreen
# new_icon
# set_stack_tag
# set_transient
# set_category
# timeout
# urgency
# icon_position
# skip_display
# history_ignore
# action_name
# word_wrap
# ellipsize
# alignment
# hide_text
# override_pause_level
#
# Shell-like globbing will get expanded.
#
# Instead of the appname filter, it's recommended to use the desktop_entry filter.
# GLib based applications export their desktop-entry name. In comparison to the appname,
# the desktop-entry won't get localized.
#
# You can also allow a notification to appear even when paused. Notification will appear whenever notification's override_pause_level >= dunst's paused level.
# This can be used to set partial pause modes, where more urgent notifications get through, but less urgent stay paused. To do that, you can override the following in the rules:
# override_pause_level = X
# SCRIPTING
# You can specify a script that gets run when the rule matches by
# setting the "script" option.
# The script will be called as follows:
# script appname summary body icon urgency
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
#
# NOTE: It might be helpful to run dunst -print in a terminal in order
# to find fitting options for rules.
# Disable the transient hint so that idle_threshold cannot be bypassed from the
# client
#[transient_disable]
# match_transient = yes
# set_transient = no
#
# Make the handling of transient notifications more strict by making them not
# be placed in history.
#[transient_history_ignore]
# match_transient = yes
# history_ignore = yes
# fullscreen values
# show: show the notifications, regardless if there is a fullscreen window opened
# delay: displays the new notification, if there is no fullscreen window active
# If the notification is already drawn, it won't get undrawn.
# pushback: same as delay, but when switching into fullscreen, the notification will get
# withdrawn from screen again and will get delayed like a new notification
#[fullscreen_delay_everything]
# fullscreen = delay
#[fullscreen_show_critical]
# msg_urgency = critical
# fullscreen = show
#[espeak]
# summary = "*"
# script = dunst_espeak.sh
#[script-test]
# summary = "*script*"
# script = dunst_test.sh
#[ignore]
# # This notification will not be displayed
# summary = "foobar"
# skip_display = true
#[history-ignore]
# # This notification will not be saved in history
# summary = "foobar"
# history_ignore = yes
#[skip-display]
# # This notification will not be displayed, but will be included in the history
# summary = "foobar"
# skip_display = yes
#[signed_on]
# appname = Pidgin
# summary = "*signed on*"
# urgency = low
#
#[signed_off]
# appname = Pidgin
# summary = *signed off*
# urgency = low
#
#[says]
# appname = Pidgin
# summary = *says*
# urgency = critical
#
#[twitter]
# appname = Pidgin
# summary = *twitter.com*
# urgency = normal
#
#[stack-volumes]
# appname = "some_volume_notifiers"
# set_stack_tag = "volume"
#
# vim: ft=cfg
[global]
frame_color = "#8aadf4"
separator_color= frame
highlight = "#8aadf4"
[urgency_low]
background = "#24273a"
foreground = "#cad3f5"
[urgency_normal]
background = "#24273a"
foreground = "#cad3f5"
[urgency_critical]
background = "#24273a"
foreground = "#cad3f5"
frame_color = "#f5a97f"

View File

@@ -0,0 +1,19 @@
[General]
closeAfterFirstInput=false
gendersDisabled=false
maxEmojiVersion=-1
saveKaomojiInMRU=false
scaleFactor=
skinTonesDisabled=false
systemEmojiFontOverride=
useSystemEmojiFont=false
useSystemEmojiFontWidthHeuristics=true
useSystemQtTheme=false
windowOpacity=0.9
[customHotKeys]
size=0
[emojiAliasFiles]
1\path=:/res/aliases/github-emojis.ini
size=1

View File

@@ -7,6 +7,7 @@
# autogenerated = 1 # remove this line to remove the warning
env = QT_QPA_PLATFORMTHEME,qt6ct
env = QT_QPA_PLATFORM,wayland
env = LIBVA_DRIVER_NAME,nvidia
env = GBM_BACKEND,nvidia-drm
@@ -18,16 +19,14 @@ env = GDK_BACKEND,wayland,x11,*
env = HYPRLAND_PER_MONITOR_WORKSPACES,1
windowrule = float,title:^(flameshot)
windowrule = move 0 0,title:^(flameshot)
windowrule = suppressevent fullscreen,title:^(flameshot)
exec-once = $HOME/.config/dwm/autostart.sh
exec-once = waybar
exec-once = $HOME/.local/bin/system/start-scripts/autostart.sh
exec-once = /usr/lib/xdg-desktop-portal &
exec-once = dbus-update-activation-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
# exec-once = ibus-daemon -rxRd
exec-once = /usr/lib/ibus/ibus-wayland
exec-once = hyprpaper
exec-once = /usr/bin/dunst $HOME/.config/dunst/dunstrc
@@ -145,11 +144,12 @@ general {
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
# col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
# col.active_border = rgba(cf68e6ee) rgba(8568e6ee) 45deg
col.active_border = rgba(8568e6ee) rgba(cf68e6ee) 45deg
col.active_border = rgba(cf68e6ee) rgba(8568e6ee) 45deg
#33ccff
#00ff99
#8568e6
#cf68e6
col.inactive_border = rgba(595959aa)
# Set to true enable resizing windows by clicking and dragging on borders and gaps
@@ -187,36 +187,45 @@ decoration {
}
}
# https://wiki.hyprland.org/Configuring/Variables/#animations
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
#enabled = yes, please :)
animations {
enabled = yes, please :)
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
bezier = myBezier, 0.05, 0.9, 0.1, 1.08
bezier = easeOutQuint,0.23,1,0.32,1
bezier = easeInOutCubic,0.65,0.05,0.36,1
bezier = linear,0,0,1,1
bezier = almostLinear,0.5,0.5,0.75,1.0
bezier = quick,0.15,0,0.1,1
animation = windows, 1, 3, myBezier
animation = windowsOut, 1, 3, default, popin 80%
animation = windowsMove, 1, 4, myBezier
animation = border, 1, 10, default
animation = fade, 1, 3, default
animation = workspaces, 1, 2, default
animation = specialWorkspace, 1, 3, default, slidefadevert
animation = global, 1, 10, default
animation = border, 1, 5.39, easeOutQuint
animation = windows, 1, 1.79, easeOutQuint
animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
animation = windowsOut, 1, 1.49, linear, popin 87%
animation = fadeIn, 1, 1.73, almostLinear
animation = fadeOut, 1, 1.46, almostLinear
animation = fade, 1, 3.03, quick
animation = layers, 1, 3.81, easeOutQuint
animation = layersIn, 1, 4, easeOutQuint, fade
animation = layersOut, 1, 1.5, linear, fade
animation = fadeLayersIn, 1, 1.79, almostLinear
animation = fadeLayersOut, 1, 1.39, almostLinear
animation = workspaces, 1, 1.94, almostLinear, fade
animation = workspacesIn, 1, 1.21, almostLinear, fade
animation = workspacesOut, 1, 1.94, almostLinear, fade
# bezier = easeOutQuint,0.23,1,0.32,1
# bezier = easeInOutCubic,0.65,0.05,0.36,1
# bezier = linear,0,0,1,1
# bezier = almostLinear,0.5,0.5,0.75,1.0
# bezier = quick,0.15,0,0.1,1
# animation = global, 1, 10, default
# animation = border, 1, 5.39, easeOutQuint
# animation = windows, 1, 1.79, easeOutQuint
# animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
# animation = windowsOut, 1, 1.49, linear, popin 87%
# animation = fadeIn, 1, 1.73, almostLinear
# animation = fadeOut, 1, 1.46, almostLinear
# animation = fade, 1, 3.03, quick
# animation = layers, 1, 3.81, easeOutQuint
# animation = layersIn, 1, 4, easeOutQuint, fade
# animation = layersOut, 1, 1.5, linear, fade
# animation = fadeLayersIn, 1, 1.79, almostLinear
# animation = fadeLayersOut, 1, 1.39, almostLinear
# animation = workspaces, 1, 1.94, almostLinear, fade
# animation = workspacesIn, 1, 1.21, almostLinear, fade
# animation = workspacesOut, 1, 1.94, almostLinear, fade
}
# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/
# "Smart gaps" / "No gaps when only"
# uncomment all if you wish to use that.
@@ -255,7 +264,7 @@ input {
kb_layout = us
kb_variant =
kb_model =
kb_options =
kb_options = caps:swapescape
kb_rules =
follow_mouse = 1
@@ -298,15 +307,20 @@ bind = $mainMod SHIFT, Q, exit,
bind = $mainMod, E, exec, $fileManager
bind = $mainMod, space, togglefloating,
bind = $mainMod, D, exec, $menu
bind = $mainMod SHIFT, D, exec, $HOME/stuff/scripts/system/rofi-search-web.sh
bind = $mainMod SHIFT, D, exec, $HOME/.local/bin/system/rofi-search-web.sh
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, i, togglesplit, # dwindle
bind = $mainMod SHIFT, i, togglesplit, # dwindle
bind = $mainMod, f, fullscreen, 0
bind = $mainMod SHIFT, m, fullscreen, 1
# screenshot
bind = $mainMod, escape, exec, grim -g "$(slurp -b 00000088 -c cba6f7; sleep 0.5)" - | wl-copy
bind = $mainMod shift, escape, exec, grim -o HDMI-A-1 - | wl-copy
# layout stuffs
bind = $mainMod SHIFT, space, exec, $HOME/.config/hypr/cycle-layout.sh
bind = $mainMod SHIFT, i, layoutmsg, cyclenext
bind = $mainMod, i, cyclenext
bind = $mainMod, i, alterzorder, top
bind = $mainMod, z, layoutmsg, swapwithmaster master
# behaves like xmonads promote feature (https://hackage.haskell.org/package/xmonad-contrib-0.17.1/docs/XMonad-Actions-Promote.html)
@@ -326,13 +340,15 @@ bind = $mainMod SHIFT, k, movewindow, u
bind = $mainMod SHIFT, j, movewindow, d
bind = $mainMod, t, pin
bind = $mainMod CTRL, h, resizeactive, -50 0
bind = $mainMod CTRL, l, resizeactive, 50 0
bind = $mainMod CTRL, k, resizeactive, 0 -50
bind = $mainMod CTRL, j, resizeactive, 0 50
bind = $mainMod CTRL SHIFT, h, resizeactive, -50 0
bind = $mainMod CTRL SHIFT, l, resizeactive, 50 0
bind = $mainMod CTRL SHIFT, k, resizeactive, 0 -50
bind = $mainMod CTRL SHIFT, j, resizeactive, 0 50
bind = $mainMod, o, focusmonitor, +1
bind = $mainMod SHIFT, o, movewindow, mon:+1
bind = $mainMod, n, workspace, r+1
bind = $mainMod, b, workspace, r-1
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, r~1
bind = $mainMod, 2, workspace, r~2
@@ -422,6 +438,17 @@ windowrule = noborder, class:vesktop
windowrule = noshadow, class:vesktop
windowrule = noblur, class:vesktop
# discord
windowrule = float, class:discord
windowrule = monitor DP-1, class:discord
windowrule = move 0% 0%, class:discord
windowrule = size 70% 70%, class:discord
windowrule = workspace 11, class:discord
windowrule = bordercolor rgba(00000000), class:discord
windowrule = noborder, class:discord
windowrule = noshadow, class:discord
windowrule = noblur, class:discord
# Mumble
windowrule = float, title:Mumble
windowrule = monitor DP-1, title:Mumble
@@ -438,3 +465,25 @@ windowrule = size 20% 70%, title:Friends List, class: steam
windowrule = workspace 9, title: Envision
windowrule = workspace 8, title: VRChat
windowrule = noinitialfocus, title:im-emoji-picker
windowrule = nofocus, title:im-emoji-picker
windowrule = float,title:(blob\:https://)(.*),class:xdg-desktop-portal-gtk
windowrule = size 60% 60%,title:(blob\:https://)(.*),class:xdg-desktop-portal-gtk
windowrule = float,title:Open Files,class:xdg-desktop-portal-gtk
windowrule = size 60% 60%,title:Open Files,class:xdg-desktop-portal-gtk
windowrule = noblur,class:showmethekey-gtk
windowrule = noshadow,class:showmethekey-gtk
windowrule = noborder,class:showmethekey-gtk
windowrule = float,class:showmethekey-gtk
windowrule = size 1128 53,class:showmethekey-gtk
windowrule = move 253 1450,class:showmethekey-gtk
windowrule = workspace 1,class:showmethekey-gtk
windowrule = noblur,class:desktop-pet
windowrule = noshadow,class:desktop-pet
windowrule = noborder,class:desktop-pet
windowrule = float,class:desktop-pet

106
env/.config/hypr/hyprlock.conf vendored Normal file
View File

@@ -0,0 +1,106 @@
# sample hyprlock.conf
# for more configuration options, refer https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock
#
# rendered text in all widgets supports pango markup (e.g. <b> or <i> tags)
# ref. https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#general-remarks
#
# shortcuts to clear password buffer: ESC, Ctrl+U, Ctrl+Backspace
#
# you can get started by copying this config to ~/.config/hypr/hyprlock.conf
#
$font = B612
general {
hide_cursor = false
}
# uncomment to enable fingerprint authentication
# auth {
# fingerprint {
# enabled = true
# ready_message = Scan fingerprint to unlock
# present_message = Scanning...
# retry_delay = 250 # in milliseconds
# }
# }
animations {
enabled = true
bezier = linear, 1, 1, 0, 0
animation = fadeIn, 1, 5, linear
animation = fadeOut, 1, 5, linear
animation = inputFieldDots, 1, 2, linear
}
background {
monitor =
path = screenshot
blur_passes = 3
}
input-field {
monitor =
size = 20%, 5%
outline_thickness = 3
inner_color = rgba(0, 0, 0, 0.0) # no fill
outer_color = rgba(33ccffee) rgba(00ff99ee) 45deg
check_color = rgba(00ff99ee) rgba(ff6633ee) 120deg
fail_color = rgba(ff6633ee) rgba(ff0066ee) 40deg
font_color = rgb(143, 143, 143)
fade_on_empty = false
rounding = 15
font_family = $font
placeholder_text = Input password...
fail_text = $PAMFAIL
# uncomment to use a letter instead of a dot to indicate the typed password
# dots_text_format = *
# dots_size = 0.4
dots_spacing = 0.3
# uncomment to use an input indicator that does not show the password length (similar to swaylock's input indicator)
# hide_input = true
position = 0, -20
halign = center
valign = center
}
# TIME
label {
monitor =
text = $TIME # ref. https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#variable-substitution
font_size = 90
font_family = $font
position = -30, 0
halign = right
valign = top
}
# DATE
label {
monitor =
text = cmd[update:60000] date +"%A, %d %B %Y" # update every 60 seconds
font_size = 25
font_family = $font
position = -30, -150
halign = right
valign = top
}
label {
monitor =
text = $LAYOUT[en,ru]
font_size = 24
onclick = hyprctl switchxkblayout all next
position = 250, -20
halign = center
valign = center
}

View File

@@ -1,7 +1,5 @@
preload = /home/iceyrazor/stuff/media/wallpapers/4500025-retrowave-vaporwave-car-typography-purple-blue-chromatic-aberration-initial-d-hachi-roku.jpg
preload = /home/iceyrazor/stuff/media/wallpapers/tumblr_06bbd355f3e355049446dac24f6e7c44_2c486f77_1280 ninesols.jpg
preload = /home/iceyrazor/stuff/media/wallpapers/dark_leaves.png
preload = /home/iceyrazor/stuff/media/wallpapers/6b06108fa3bc46f5.jpg
preload = /home/iceyrazor/stuff/media/wallpapers/tumblr_06bbd355f3e355049446dac24f6e7c44_2c486f77_1280 ninesols.jpg
#set the default wallpaper(s) seen on initial workspace(s) --depending on the number of monitors used
wallpaper = HDMI-A-1,/home/iceyrazor/stuff/media/wallpapers/6b06108fa3bc46f5.jpg

320
env/.config/i3/config vendored Normal file
View File

@@ -0,0 +1,320 @@
# i3 config file (v4)
#
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
#
# This config file uses keycodes (bindsym) and was written for the QWERTY
# layout.
#
# To get a config file with the same key positions, but for your current
# layout, use the i3-config-wizard
#
exec ~/.local/bin/system/start-scripts/autostart.sh
# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
font pango:b612:monospace 7, "JetBrainsMono Nerd Font" 7
# This font is widely installed, provides lots of unicode glyphs, right-to-left
# text rendering and scalability on retina/hidpi displays (thanks to pango).
#font pango:DejaVu Sans Mono 8
# Start XDG autostart .desktop files using dex. See also
# https://wiki.archlinux.org/index.php/XDG_Autostart
# exec --no-startup-id dex --autostart --environment i3
# The combination of xss-lock, nm-applet and pactl is a popular choice, so
# they are included here as an example. Modify as you see fit.
# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
# screen before suspend. Use loginctl lock-session to lock your screen.
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
# NetworkManager is the most popular way to manage wireless networks on Linux,
# and nm-applet is a desktop environment-independent system tray GUI for it.
# exec --no-startup-id nm-applet
# Use pactl to adjust volume in PulseAudio.
set $refresh_i3status killall -SIGUSR1 i3status
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
bindsym XF86AudioPlay exec --no-startup-id playerctl play-pause && $refresh_i3status
# swap caps lock and escape
exec_always --no-startup-id xmodmap -e "clear lock"
exec_always --no-startup-id xmodmap -e "keycode 9 = Caps_Lock NoSymbol Caps_Lock"
exec_always --no-startup-id xmodmap -e "keycode 66 = Escape NoSymbol Escape"
workspace 1 output HDMI-A-1
workspace 2 output HDMI-A-1
workspace 3 output HDMI-A-1
workspace 4 output HDMI-A-1
workspace 5 output HDMI-A-1
workspace 6 output HDMI-A-1
workspace 7 output HDMI-A-1
workspace 8 output HDMI-A-1
workspace 9 output HDMI-A-1
workspace 10 output HDMI-A-1
workspace 11 output DP-1
workspace 12 output DP-1
workspace 13 output DP-1
workspace 14 output DP-1
workspace 15 output DP-1
workspace 16 output DP-1
workspace 17 output DP-1
workspace 18 output DP-1
workspace 19 output DP-1
workspace 20 output DP-1
# use these keys for focus, movement, and resize directions when reaching for
# the arrows is not convenient
set $up k
set $down j
set $left h
set $right l
set $mod Mod4
# use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# move tiling windows via drag & drop by left-clicking into the title bar,
# or left-clicking anywhere into the window while holding the floating modifier.
tiling_drag modifier titlebar
# start a terminal
bindsym $mod+Return exec wezterm
bindsym $mod+Shift+Return exec urxvt
# kill focused window
bindsym $mod+q kill
# start dmenu (a program launcher)
bindsym $mod+d exec --no-startup-id "rofi -x11 -show drun"
bindsym $mod+SHIFT+D exec $HOME/.local/bin/system/rofi-search-web.sh
bindsym $mod+Control+period exec $HOME/.local/bin/system/kaomoji-picker.sh
# kill gamethread
bindsym $mod+Shift+i exec "pkill GameThread && sleep 1 && steam run steam://rungameid/2073850"
#toggle border
bindsym $mod+Shift+b border toggle
# A more modern dmenu replacement is rofi:
# bindsym $mod+d exec "rofi -modi drun,run -show drun"
# There also is i3-dmenu-desktop which only displays applications shipping a
# .desktop file. It is a wrapper around dmenu, so you need that installed.
# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
# change focus
bindsym $mod+$left focus left
bindsym $mod+$down focus down
bindsym $mod+$up focus up
bindsym $mod+$right focus right
# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# move focused window
bindsym $mod+Shift+$left move left
bindsym $mod+Shift+$down move down
bindsym $mod+Shift+$up move up
bindsym $mod+Shift+$right move right
# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# split in horizontal orientation
bindsym $mod+Control+l split h
# split in vertical orientation
bindsym $mod+Control+j split v
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle
# change container layout (stacked, tabbed, toggle split)
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
# toggle tiling / floating
bindsym $mod+space floating toggle
# change focus between tiling / floating windows
bindsym $mod+Shift+space focus mode_toggle
# focus the parent container
bindsym $mod+a focus parent
# focus the child container
#bindsym $mod+d focus child
# move the currently focused window to the scratchpad
bindsym $mod+Shift+minus 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+minus scratchpad show
# Define names for default workspaces for which we configure key bindings later on.
# We use variables to avoid repeating the names in multiple places.
set $ws1 "1: "
set $ws2 "2: "
set $ws3 "3: "
set $ws4 "4: "
set $ws5 "5: "
set $ws6 "6: "
set $ws7 "7: "
set $ws8 "8: "
set $ws9 "9: "
set $ws10 "10: "
set $ws11 "11: "
set $ws12 "12: "
set $ws13 "13: "
set $ws14 "14: "
set $ws15 "15: "
set $ws16 "16: "
set $ws17 "17: "
set $ws18 "18: "
set $ws19 "19: "
set $ws20 "20: "
bindsym $mod+n workspace next
bindsym $mod+b workspace prev
# switch to workspace
bindsym $mod+1 workspace number $ws1
bindsym $mod+2 workspace number $ws2
bindsym $mod+3 workspace number $ws3
bindsym $mod+4 workspace number $ws4
bindsym $mod+5 workspace number $ws5
bindsym $mod+6 workspace number $ws6
bindsym $mod+7 workspace number $ws7
bindsym $mod+8 workspace number $ws8
bindsym $mod+9 workspace number $ws9
bindsym $mod+0 workspace number $ws10
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace number $ws1
bindsym $mod+Shift+2 move container to workspace number $ws2
bindsym $mod+Shift+3 move container to workspace number $ws3
bindsym $mod+Shift+4 move container to workspace number $ws4
bindsym $mod+Shift+5 move container to workspace number $ws5
bindsym $mod+Shift+6 move container to workspace number $ws6
bindsym $mod+Shift+7 move container to workspace number $ws7
bindsym $mod+Shift+8 move container to workspace number $ws8
bindsym $mod+Shift+9 move container to workspace number $ws9
bindsym $mod+Shift+0 move container to workspace number $ws10
mode "mon2" {
bindsym $mod+1 workspace number $ws11
bindsym $mod+2 workspace number $ws12
bindsym $mod+3 workspace number $ws13
bindsym $mod+4 workspace number $ws14
bindsym $mod+5 workspace number $ws15
bindsym $mod+6 workspace number $ws16
bindsym $mod+7 workspace number $ws17
bindsym $mod+8 workspace number $ws18
bindsym $mod+9 workspace number $ws19
bindsym $mod+0 workspace number $ws20
bindsym $mod+Shift+1 move container to workspace number $ws11
bindsym $mod+Shift+2 move container to workspace number $ws12
bindsym $mod+Shift+3 move container to workspace number $ws13
bindsym $mod+Shift+4 move container to workspace number $ws14
bindsym $mod+Shift+5 move container to workspace number $ws15
bindsym $mod+Shift+6 move container to workspace number $ws16
bindsym $mod+Shift+7 move container to workspace number $ws17
bindsym $mod+Shift+8 move container to workspace number $ws18
bindsym $mod+Shift+9 move container to workspace number $ws19
bindsym $mod+Shift+0 move container to workspace number $ws20
bindsym $mod+o mode "default"
}
bindsym $mod+o mode "mon2"
# reload the configuration file
bindsym $mod+Shift+c reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+r restart
# exit i3 (logs you out of your X session)
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
# resize window (you can also use the mouse for that)
mode "resize" {
# These bindings trigger as soon as you enter the resize mode
# Pressing left will shrink the windows width.
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows height.
bindsym $left resize shrink width 10 px or 10 ppt
bindsym $down resize grow height 10 px or 10 ppt
bindsym $up resize shrink height 10 px or 10 ppt
bindsym $right resize grow width 10 px or 10 ppt
# same bindings, but for the arrow keys
bindsym Left resize shrink width 10 px or 10 ppt
bindsym Down resize grow height 10 px or 10 ppt
bindsym Up resize shrink height 10 px or 10 ppt
bindsym Right resize grow width 10 px or 10 ppt
# back to normal: Enter or Escape or $mod+r
bindsym Return mode "default"
bindsym Escape mode "default"
bindsym $mod+r mode "default"
}
bindsym $mod+r mode "resize"
client.focused #8568e6 #222222 #8568e6 #e598ff #8568e6
client.unfocused #222222 #222222 #8568e6 #e598ff #222222
default_border pixel 1
default_floating_border pixel 1
set $trans #00000000
set $inactive-bg-color #1e1e2e
set $text-color #cdd6f4
set $urbg-color #f38ba8
set $color #8568ef
set $ws_color #d37340
set $ws_bord #8568ef
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
bar {
separator_symbol ""
output primary
strip_workspace_numbers yes
status_command SCRIPT_DIR=~/.config/i3blocks i3blocks
colors {
statusline #FFFFFF
background $trans
separator #757575
# border background text
focused_workspace $ws_bord $color $text-color
inactive_workspace $trans $trans #676E7D
active_workspace $trans $trans $text-color
urgent_workspace $urbg-color $urbg-color $text-color
}
}
bar {
separator_symbol ""
output nonprimary
strip_workspace_numbers yes
}

163
env/.config/i3blocks/config vendored Normal file
View File

@@ -0,0 +1,163 @@
# i3blocks config file
#
# Please see man i3blocks for a complete reference!
# The man page is also hosted at http://vivien.github.io/i3blocks
#
# List of valid properties:
#
# align
# color
# command
# full_text
# instance
# interval
# label
# min_width
# name
# separator
# separator_block_width
# short_text
# signal
# urgent
# Global properties
#
# The top properties below are applied to every block, but can be overridden.
# Each block command defaults to the script name to avoid boilerplate.
# Change $SCRIPT_DIR to the location of your scripts!
command=$SCRIPT_DIR/$BLOCK_NAME/$BLOCK_NAME
separator_block_width=15
markup=pango
# Volume indicator
#
# The first parameter sets the step (and units to display)
# The second parameter overrides the mixer selection
# See the script for details.
[volume2]
label= 
interval=1
signal=10
#STEP=5%
# Memory usage
#
# The type defaults to "mem" if the instance is not specified.
[memory]
label= 
separator=false
interval=30
[memory]
label=SWAP
instance=swap
separator=false
interval=30
# Disk usage
#
# The directory defaults to $HOME if the instance is not specified.
# The script may be called with a optional argument to set the alert
# (defaults to 10 for 10%).
[disk]
label= 
#DIR=/mnt/data
interval=30
# Network interface monitoring
#
# If the instance is not specified, use the interface used for default route.
# The address can be forced to IPv4 or IPv6 with -4 or -6 switches.
# [iface]
# #IFACE=wlan0
# color=#00FF00
# interval=10
# separator=false
[wifi]
#INTERFACE=wlp3s0
label=wifi:
interval=10
separator=false
[bandwidth]
#INTERFACE=eth0
interval=5
# CPU usage
#
# The script may be called with -w and -c switches to specify thresholds,
# see the script for details.
[cpu_usage]
label= 
interval=10
min_width=  100.00%
#separator=false
[load_average]
label=LOAD
interval=10
# Battery indicator
#
# The battery instance defaults to 0.
[battery]
label=BAT
#label=⚡
interval=30
[rss]
label=
command=/usr/bin/newsboat -x print-unread|sed 's/\s.*//; s/Error:/E/'
interval=20
# Date Time
#
[time]
command=date '+%a %m/%d/%Y %I:%M%p'
interval=5
# Generic media player support
#
# This displays "ARTIST - SONG" if a music is playing.
# Supported players are: spotify, vlc, audacious, xmms2, mplayer, and others.
# Set to %any to automatically pick (Requires playerctl >=2.1.1)
#[mediaplayer]
# This picks any player, with vlc as first, and spotify as last choice
#instance=vlc,%any,spotify
#interval=5
#signal=10
# OpenVPN support
#
# Support multiple VPN, with colors.
#[openvpn]
#interval=20
# Temperature
#
# Support multiple chips, though lm-sensors.
# The script may be called with -w and -c switches to specify thresholds,
# see the script for details.
#[temperature]
#label=TEMP
#interval=10
# Key indicators
#
# Add the following bindings to i3 config file:
#
# bindsym --release Caps_Lock exec pkill -SIGRTMIN+11 i3blocks
# bindsym --release Num_Lock exec pkill -SIGRTMIN+11 i3blocks
#[keyindicator]
#KEY=CAPS
#markup=pango
#interval=once
#signal=11
#[keyindicator]
#KEY=NUM
#markup=pango
#interval=once
#signal=11

1
env/.config/i3blocks/volume2/volume2 vendored Executable file
View File

@@ -0,0 +1 @@
pactl -f json get-sink-volume @DEFAULT_SINK@ | sed -e 's/.*value_percent":"//' -e 's/".*//'

53
env/.config/i3status/config vendored Normal file
View File

@@ -0,0 +1,53 @@
# i3status configuration file.
# see "man i3status" for documentation.
# It is important that this file is edited as UTF-8.
# The following line should contain a sharp s:
# ß
# If the above line is not correctly displayed, fix your editor first!
general {
colors = true
interval = 5
}
order += "ipv6"
order += "wireless _first_"
order += "ethernet _first_"
order += "battery all"
order += "disk /"
order += "load"
order += "memory"
order += "tztime local"
wireless _first_ {
format_up = "W: (%quality at %essid) %ip"
format_down = "W: down"
}
ethernet _first_ {
format_up = "E: %ip (%speed)"
format_down = "E: down"
}
battery all {
format = "%status %percentage %remaining"
}
disk "/" {
format = "%avail"
}
load {
format = "%1min"
}
memory {
format = "%used | %available"
threshold_degraded = "1G"
format_degraded = "MEMORY < %available"
}
tztime local {
format = "%a %m/%d/%Y %I:%M%p"
}

59
env/.config/lf/lfrc vendored
View File

@@ -10,6 +10,9 @@ set shell sh
# times.
set shellopts '-eu'
# set number true
set relativenumber true
# set internal field separator (IFS) to "\n" for shell commands
# This is useful to automatically split file names in $fs and $fx properly
# since default file separator used in these variables (i.e. 'filesep' option)
@@ -108,21 +111,21 @@ cmd zip ${{
}}
cmd trash ${{
files=$(printf "$fx" | tr '\n' ';')
while [ "$files" ]; do
file=${files%%;*}
files=$(printf "$fx" | tr '\n' ';')
while [ "$files" ]; do
file=${files%%;*}
mv "$(basename "$file")" ~/.trash
if [ "$files" = "$file" ]; then
files=''
else
files="${files#*;}"
fi
done
mv "$(basename "$file")" ~/.trash
if [ "$files" = "$file" ]; then
files=''
else
files="${files#*;}"
fi
done
}}
cmd vim ${{
nvim $f
nvim $f
}}
cmd Sxiv ${{
@@ -133,23 +136,23 @@ cmd clipf ${{
# printf "$f" | xclip -selection clipboard
# xclip -selection clipboard -t "$(file -b --mime-type $f)" -i $f
# echo -n '$f' | xclip -sel clip -t text/uri-list -i
case "$(file -b --mime-type $f)" in
image/png|image/jpeg|image/gif)
xclip -selection clipboard -t image/png -i $f
;;
video/mp4)
# !! doesnt work. no clue how todo uri-list. ICCCM section 2.6.2 is confusing
# echo -n '$f' | xclip -selection clipboard -t x-special/gnome-copied-files -i
xclip -selection clipboard -t text/uri-list -i $f
;;
*)
xclip -selection clipboard -t "$(file -b --mime-type $f)" -i $f
;;
esac
case "$(file -b --mime-type $f)" in
image/png|image/jpeg|image/gif)
xclip -selection clipboard -t image/png -i $f
;;
video/mp4)
# !! doesnt work. no clue how todo uri-list. ICCCM section 2.6.2 is confusing
# echo -n '$f' | xclip -selection clipboard -t x-special/gnome-copied-files -i
xclip -selection clipboard -t text/uri-list -i $f
;;
*)
xclip -selection clipboard -t "$(file -b --mime-type $f)" -i $f
;;
esac
}}
cmd clip-path ${{
if [ -z $WAYLAND_DISPLAY ]; then
if [ -z "${WAYLAND_DISPLAY-}" ]; then
printf "$f" | xclip -selection clipboard
else
printf "$f" | wl-copy
@@ -157,7 +160,11 @@ cmd clip-path ${{
}}
cmd filebrowser ${{
nohup pcmanfm $f > /dev/null 2> /dev/null < /dev/null & disown
if [ "$(file -b --mime-type "$f")" == "inode/directory" ]; then
nohup pcmanfm -- "$f" > /dev/null 2> /dev/null < /dev/null & disown
else
nohup pcmanfm -- "$(dirname -- $f)" > /dev/null 2> /dev/null < /dev/null & disown
fi
}}
map DD trash

11
env/.config/mpd/mpd.conf vendored Normal file
View File

@@ -0,0 +1,11 @@
music_directory "~/stuff/media/music"
playlist_directory "$XDG_CONFIG_HOME/mpd/playlists"
db_file "$XDG_CACHE_HOME/mpd/database"
bind_to_address "127.0.0.1"
port "6600"
audio_output {
type "pipewire"
name "PipeWire Sound"
}

6
env/.config/mpv/mpv.conf vendored Normal file
View File

@@ -0,0 +1,6 @@
sub-color='#FFFF00' #subtitle color in rgb
sub-shadow-color='#000000' #shadow color
sub-font='Noto Sans' #set font
sub-bold=yes
sub-font-size=60
sub-pos=95 #subtitle position 5 percent above the bottom of the screen

View File

@@ -10,5 +10,8 @@
"workspace.library": [
"$VIMRUNTIME",
"./lua"
]
],
"diagnostics.disable": [
"deprecated"
]
}

View File

@@ -1,41 +1,44 @@
require("image").setup({
backend = "kitty",
processor = "magick_cli", -- or "magick_rock"
integrations = {
markdown = {
enabled = true,
clear_in_insert_mode = false,
download_remote_images = false,
only_render_image_at_cursor = true,
only_render_image_at_cursor_mode = "popup",
floating_windows = false, -- if true, images will be rendered in floating markdown windows
filetypes = { "markdown", "vimwiki" }, -- markdown extensions (ie. quarto) can go here
local ok, image = pcall(require, 'image')
if ok then
image.setup({
backend = "kitty",
processor = "magick_cli", -- or "magick_rock"
integrations = {
markdown = {
enabled = true,
clear_in_insert_mode = false,
download_remote_images = false,
only_render_image_at_cursor = true,
only_render_image_at_cursor_mode = "popup",
floating_windows = false, -- if true, images will be rendered in floating markdown windows
filetypes = { "markdown", "vimwiki" }, -- markdown extensions (ie. quarto) can go here
},
neorg = {
enabled = true,
filetypes = { "norg" },
},
typst = {
enabled = true,
filetypes = { "typst" },
},
html = {
enabled = false,
},
css = {
enabled = false,
},
},
neorg = {
enabled = true,
filetypes = { "norg" },
},
typst = {
enabled = true,
filetypes = { "typst" },
},
html = {
enabled = false,
},
css = {
enabled = false,
},
},
max_width = nil,
max_height = nil,
max_width_window_percentage = nil,
max_height_window_percentage = 50,
window_overlap_clear_enabled = false, -- toggles images when windows are overlapped
window_overlap_clear_ft_ignore = { "cmp_menu", "cmp_docs", "snacks_notif", "scrollview", "scrollview_sign" },
editor_only_render_when_focused = false, -- auto show/hide images when the editor gains/looses focus
tmux_show_only_in_active_window = false, -- auto show/hide images in the correct Tmux window (needs visual-activity off)
hijack_file_patterns = { "*.png", "*.jpg", "*.jpeg", "*.gif", "*.webp", "*.avif" }, -- render image files as images when opened
})
max_width = nil,
max_height = nil,
max_width_window_percentage = nil,
max_height_window_percentage = 50,
window_overlap_clear_enabled = false, -- toggles images when windows are overlapped
window_overlap_clear_ft_ignore = { "cmp_menu", "cmp_docs", "snacks_notif", "scrollview", "scrollview_sign" },
editor_only_render_when_focused = false, -- auto show/hide images when the editor gains/looses focus
tmux_show_only_in_active_window = false, -- auto show/hide images in the correct Tmux window (needs visual-activity off)
hijack_file_patterns = { "*.png", "*.jpg", "*.jpeg", "*.gif", "*.webp", "*.avif" }, -- render image files as images when opened
})
end
-- require("image").enable() -- enable the plugin
-- print(require("image").is_enabled()) -- bool

View File

@@ -0,0 +1,30 @@
local ok, asciidoc = pcall(require, 'asciidoc-preview')
if ok then
asciidoc.setup({
server = {
-- Specifies how the AsciiDoc file is converted to HTML for the preview.
-- `js` - asciidoctor.js (no local installation needed)
-- `cmd` - asciidoctor command (local installation needed)
converter = 'cmd',
-- Specifies the hostname or IP address of the preview website for the client.
-- This is only needed if you run neovim in a remote session and
-- want to access the preview website from another machine.
hostname = 'localhost',
-- Specifies the port of the preview website on the client and server side.
-- Must be between 10000 and 65535.
port = 11235,
},
preview = {
-- Specifies the scroll position of the preview website.
-- `current` - Keep current scroll position
-- `start` - Start of the website
-- `sync` - (experimental) Same (similar) position as in Neovim
-- => inaccurate, because very content dependent
position = 'current',
},
})
vim.keymap.set('n', '<leader>max', ':AsciiDocPreview<cr>')
vim.keymap.set('n', '<leader>mas', ':AsciiDocPreviewStop<cr>')
end

View File

@@ -1,31 +1,34 @@
require('yourmom/cloak').setup({
enabled = true,
cloak_character = '*',
-- The applied highlight group (colors) on the cloaking, see `:h highlight`.
highlight_group = 'Comment',
-- Applies the length of the replacement characters for all matched
-- patterns, defaults to the length of the matched pattern.
cloak_length = nil, -- Provide a number if you want to hide the true length of the value.
-- Whether it should try every pattern to find the best fit or stop after the first.
try_all_patterns = true,
-- Set to true to cloak Telescope preview buffers. (Required feature not in 0.1.x)
cloak_telescope = true,
-- Re-enable cloak when a matched buffer leaves the window.
cloak_on_leave = false,
patterns = {
{
-- Match any file starting with '.env'.
-- This can be a table to match multiple file patterns.
file_pattern = '.env*',
-- Match an equals sign and any character after it.
-- This can also be a table of patterns to cloak,
-- example: cloak_pattern = { ':.+', '-.+' } for yaml files.
cloak_pattern = '=.+',
-- A function, table or string to generate the replacement.
-- The actual replacement will contain the 'cloak_character'
-- where it doesn't cover the original text.
-- If left empty the legacy behavior of keeping the first character is retained.
replace = nil,
}
},
})
local ok, cloak = pcall(require, 'yourmom/cloak')
if ok then
cloak.setup({
enabled = true,
cloak_character = '*',
-- The applied highlight group (colors) on the cloaking, see `:h highlight`.
highlight_group = 'Comment',
-- Applies the length of the replacement characters for all matched
-- patterns, defaults to the length of the matched pattern.
cloak_length = nil, -- Provide a number if you want to hide the true length of the value.
-- Whether it should try every pattern to find the best fit or stop after the first.
try_all_patterns = true,
-- Set to true to cloak Telescope preview buffers. (Required feature not in 0.1.x)
cloak_telescope = true,
-- Re-enable cloak when a matched buffer leaves the window.
cloak_on_leave = false,
patterns = {
{
-- Match any file starting with '.env'.
-- This can be a table to match multiple file patterns.
file_pattern = '.env*',
-- Match an equals sign and any character after it.
-- This can also be a table of patterns to cloak,
-- example: cloak_pattern = { ':.+', '-.+' } for yaml files.
cloak_pattern = '=.+',
-- A function, table or string to generate the replacement.
-- The actual replacement will contain the 'cloak_character'
-- where it doesn't cover the original text.
-- If left empty the legacy behavior of keeping the first character is retained.
replace = nil,
}
},
})
end

View File

@@ -1 +1,4 @@
require("colorizer").setup()
local ok, colorizer = pcall(require, 'colorizer')
if ok then
colorizer.setup()
end

112
env/.config/nvim/after/plugin/dap.lua vendored Normal file
View File

@@ -0,0 +1,112 @@
local ok, dap = pcall(require, 'dap')
if ok then
-- vim.api.nvim_set_hl(namespace, 'DapBreakpoint', { fg='#993939', bg='#31353f' })
-- vim.api.nvim_set_hl(namespace, 'DapLogPoint', { fg='#61afef', bg='#31353f' })
-- vim.api.nvim_set_hl(namespace, 'DapStopped', { fg='#98c379', bg='#31353f' })
-- Reuse current SignColumn background (except for DapStoppedLine)
local sign_column_hl = vim.api.nvim_get_hl(0, { name = 'SignColumn' })
-- if bg or ctermbg aren't found, use bg = 'bg' (which means current Normal) and ctermbg = 'Black'
-- convert to 6 digit hex value starting with #
local sign_column_bg = (sign_column_hl.bg ~= nil) and ('#%06x'):format(sign_column_hl.bg) or 'bg'
local sign_column_ctermbg = (sign_column_hl.ctermbg ~= nil) and sign_column_hl.ctermbg or 'Black'
--vim.api.nvim_set_hl(0, 'DapStopped', { fg = '#00ff00', bg = sign_column_bg, ctermbg = sign_column_ctermbg })
vim.api.nvim_set_hl(0, 'DapStopped', { fg = '#00ff00', bg = '#1e1e2e', ctermbg = sign_column_ctermbg })
vim.api.nvim_set_hl(0, 'DapStoppedLine', { bg = '#2e4d3d', ctermbg = 'Green' })
--vim.api.nvim_set_hl(0, 'DapBreakpoint', { fg = '#c23127', bg = sign_column_bg, ctermbg = sign_column_ctermbg })
vim.api.nvim_set_hl(0, 'DapBreakpoint', { fg = '#c23127', bg = '#1e1e2e', ctermbg = sign_column_ctermbg })
--vim.api.nvim_set_hl(0, 'DapBreakpointRejected', { fg = '#888ca6', bg = sign_column_bg, ctermbg = sign_column_ctermbg })
vim.api.nvim_set_hl(0, 'DapBreakpointRejected', { fg = '#888ca6', bg = '#1e1e2e', ctermbg = sign_column_ctermbg })
--vim.api.nvim_set_hl(0, 'DapLogPoint', { fg = '#61afef', bg = sign_column_bg, ctermbg = sign_column_ctermbg })
vim.api.nvim_set_hl(0, 'DapLogPoint', { fg = '#61afef', bg = '#1e1e2e', ctermbg = sign_column_ctermbg })
vim.fn.sign_define('DapBreakpoint', { text='', texthl='DapBreakpoint', linehl='DapBreakpoint', numhl='DapBreakpoint' })
vim.fn.sign_define('DapBreakpointCondition', { text='', texthl='DapBreakpoint', linehl='DapBreakpoint', numhl='DapBreakpoint' })
vim.fn.sign_define('DapBreakpointRejected', { text='', texthl='DapBreakpoint', linehl='DapBreakpoint', numhl= 'DapBreakpoint' })
vim.fn.sign_define('DapLogPoint', { text='', texthl='DapLogPoint', linehl='DapLogPoint', numhl= 'DapLogPoint' })
vim.fn.sign_define('DapStopped', { text='', texthl='DapStopped', linehl='DapStopped', numhl= 'DapStopped' })
dap.configurations.rust = {
{
name = "Launch",
type = "codelldb",
request = "launch",
program = function()
--return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/target/debug/", "file")
vim.fn.jobstart('cargo build')
if vim.fn.expand("%:t:r") == "main" then
return vim.fn.getcwd() .. "/target/debug/" .. vim.fn.fnamemodify(vim.fn.getcwd(), ':t')
else
return vim.fn.getcwd() .. "/target/debug/" .. vim.fn.fnameescape(vim.fn.expand("%:t:r"))
end
end,
cwd = "${workspaceFolder}",
stopOnEntry = false,
},
}
dap.configurations.c = {
{
name = "Launch file",
type = "codelldb",
request = "launch",
program = function()
--return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file')
return vim.fn.getcwd() .. "/" .. vim.fn.fnamemodify(vim.fn.getcwd(), ':t')
end,
cwd = '${workspaceFolder}',
stopOnEntry = false,
env = {
ASAN_OPTIONS = "detect_leaks=0"
},
},
}
local ok, dapui = pcall(require, 'dapui')
if ok then
dapui.setup()
vim.keymap.set("n", "<Leader>dl", function() dap.step_into() end)
vim.keymap.set("n", "<Leader>dj", function() dap.step_over() end)
vim.keymap.set("n", "<Leader>dk", function() dap.step_out() end)
--vim.keymap.set("n", "<Leader>dc", function() dap.run(dap.configurations.rust[1]) end)
vim.keymap.set("n", "<Leader>dc", function()
local ft = vim.bo.filetype
local configs = dap.configurations[ft]
if type(configs) == "table" and configs[1] then
dap.run(configs[1])
else
vim.notify("No DAP configuration found for filetype: " .. ft, vim.log.levels.ERROR)
end
end)
vim.keymap.set("n", "<Leader>dC", function() dap.continue() end)
vim.keymap.set("n", "<Leader>db", function() dap.toggle_breakpoint() end)
vim.keymap.set("n", "<Leader>dB", function()
dap.set_breakpoint(vim.fn.input('Breakpoint condition: '))
end)
vim.keymap.set("n", "<Leader>dd", function() dap.terminate() end)
vim.keymap.set("n", "<Leader>dr", function() dap.run_last() end)
--vim.keymap.set("n", "<Leader>dt", "<cmd>lua vim.cmd('RustLsp testables')<Cr>")
vim.keymap.set("n", "<Leader>ds", function() dapui.toggle() end)
--[[
dap.listeners.before.attach.dapui_config = function()
dapui.open()
end
dap.listeners.before.launch.dapui_config = function()
dapui.open()
end
dap.listeners.before.event_terminated.dapui_config = function()
dapui.close()
end
dap.listeners.before.event_exited.dapui_config = function()
dapui.close()
end
]]--
end
end

View File

@@ -1 +1,4 @@
require("hardtime").setup()
local ok, hardtime = pcall(require, 'hardtime')
if ok then
hardtime.setup()
end

View File

@@ -1,11 +1,14 @@
local mark = require("harpoon.mark")
local ui = require("harpoon.ui")
local ok, _ = pcall(require, 'harpoon.mark')
if ok then
local mark = require("harpoon.mark")
local ui = require("harpoon.ui")
vim.keymap.set("n","<leader>a", mark.add_file)
vim.keymap.set("n","<C-e>", ui.toggle_quick_menu)
vim.keymap.set("n","<leader>a", mark.add_file)
vim.keymap.set("n","<C-e>", ui.toggle_quick_menu)
vim.keymap.set("n","<C-y>", function() ui.nav_file(1) end)
vim.keymap.set("n","<C-t>", function() ui.nav_file(2) end)
vim.keymap.set("n","<C-n>", function() ui.nav_file(3) end)
vim.keymap.set("n","<C-s>", function() ui.nav_file(4) end)
vim.keymap.set("n","<C-t>", function() ui.nav_file(1) end)
vim.keymap.set("n","<C-y>", function() ui.nav_file(2) end)
vim.keymap.set("n","<C-n>", function() ui.nav_file(3) end)
vim.keymap.set("n","<C-s>", function() ui.nav_file(4) end)
end

View File

@@ -1,30 +1,33 @@
local highlight = {
"RainbowRed",
}
local ok, _ = pcall(require, 'ibl')
if ok then
local highlight = {
"RainbowRed",
}
local hooks = require "ibl.hooks"
-- create the highlight groups in the highlight setup hook, so they are reset
-- every time the colorscheme changes
hooks.register(hooks.type.HIGHLIGHT_SETUP, function()
vim.api.nvim_set_hl(0, "RainbowRed", { fg = "#702ec0" })
end)
local hooks = require "ibl.hooks"
-- create the highlight groups in the highlight setup hook, so they are reset
-- every time the colorscheme changes
hooks.register(hooks.type.HIGHLIGHT_SETUP, function()
vim.api.nvim_set_hl(0, "RainbowRed", { fg = "#702ec0" })
end)
require('ibl').setup {
indent = {
char = '|',
highlight = highlight,
},
scope = {
show_start = false,
show_end = false,
show_exact_scope = false,
},
exclude = {
filetypes = {
'help',
'packer',
'undotree',
'diff',
require('ibl').setup {
indent = {
char = '|',
highlight = highlight,
},
},
}
scope = {
show_start = false,
show_end = false,
show_exact_scope = false,
},
exclude = {
filetypes = {
'help',
'packer',
'undotree',
'diff',
},
},
}
end

15
env/.config/nvim/after/plugin/lint.lua vendored Normal file
View File

@@ -0,0 +1,15 @@
local ok, lint = pcall(require, 'lint')
if ok then
lint.linters_by_ft = {
markdown = { "markdownlint" },
}
local lint_augroup = vim.api.nvim_create_augroup("lint", { clear = true })
vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, {
group = lint_augroup,
callback = function()
lint.try_lint()
end,
})
end

266
env/.config/nvim/after/plugin/lsp.lua vendored Executable file → Normal file
View File

@@ -1,75 +1,199 @@
vim.api.nvim_create_autocmd("FileType", {
pattern = "src",
callback = function()
print("LSP should now be active for src files")
end,
})
local on_atk = function(ev)
local opts = {buffer = ev.buf, remap = false}
local lsp = require("lsp-zero")
lsp.preset("recommended")
local cmp = require('cmp')
local cmp_select = {behavior = cmp.SelectBehavior.Select}
local cmp_mappings = cmp.mapping.preset.insert({
['<C-p>'] = cmp.mapping.select_prev_item(cmp_select),
['<C-n>'] = cmp.mapping.select_next_item(cmp_select),
['<C-y>'] = cmp.mapping.confirm({ select = true }),
["<C-Space>"] = cmp.mapping.complete(),
})
cmp.setup({
mapping = cmp_mappings,
})
vim.diagnostic.config({
virtual_text = true,
})
lsp.on_attach(function(client, bufnr)
local opts = {buffer = bufnr, remap = false}
vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, opts)
vim.keymap.set("n", "K", function() vim.lsp.buf.hover() end, opts)
vim.keymap.set("n", "<leader>vws", function() vim.lsp.buf.workspace_symbol() end, opts)
vim.keymap.set("n", "<leader>vd", function() vim.diagnostic.open_float() end, opts)
vim.keymap.set("n", "[d", function() vim.diagnostic.goto_next() end, opts)
vim.keymap.set("n", "]d", function() vim.diagnostic.goto_prev() end, opts)
vim.keymap.set("n", "<leader>vca", function() vim.lsp.buf.code_action() end, opts)
vim.keymap.set("n", "<leader>vrr", function() vim.lsp.buf.references() end, opts)
vim.keymap.set("n", "<leader>vrn", function() vim.lsp.buf.rename() end, opts)
vim.keymap.set("i", "<C-h>", function() vim.lsp.buf.signature_help() end, opts)
end)
local lsp_configurations = require('lspconfig.configs')
if not lsp_configurations.greybel then
lsp_configurations.greybel = {
default_config = {
cmd = { "/bin/greybel-languageserver", "--stdio" },
filetypes = { "greyscript" },
root_dir = require('lspconfig.util').root_pattern(".git", vim.fn.getcwd()),
settings = {},
}
}
vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, opts)
vim.keymap.set("n", "K", function() vim.lsp.buf.hover() end, opts)
vim.keymap.set("n", "<leader>vws", function() vim.lsp.buf.workspace_symbol() end, opts)
vim.keymap.set("n", "<leader>vd", function() vim.diagnostic.open_float() end, opts)
vim.keymap.set("n", "[d", function() vim.diagnostic.goto_next() end, opts)
vim.keymap.set("n", "]d", function() vim.diagnostic.goto_prev() end, opts)
vim.keymap.set("n", "<leader>vca", function() vim.lsp.buf.code_action() end, opts)
vim.keymap.set("n", "<leader>vrr", function() vim.lsp.buf.references() end, opts)
vim.keymap.set("n", "<leader>vrn", function() vim.lsp.buf.rename() end, opts)
vim.keymap.set("i", "<C-h>", function() vim.lsp.buf.signature_help() end, opts)
end
-- to learn how to use mason.nvim with lsp-zero
-- read this: https://github.com/VonHeikemen/lsp-zero.nvim/blob/v3.x/doc/md/guides/integrate-with-mason-nvim.md
require('mason').setup({
registries = {
"github:mason-org/mason-registry",
},
})
require('mason-lspconfig').setup({
ensure_installed = { },
handlers = {
lsp.default_setup,
},
})
require('lspconfig').greybel.setup({})
local ok, trouble = pcall(require, 'trouble')
if ok then
trouble.setup({ icons = {} })
vim.keymap.set("n", "<leader>tt", "<cmd>Trouble diagnostics toggle<cr>")
lsp.setup()
vim.keymap.set("n", "[t", function()
trouble.next({skip_groups = true, jump = true})
end)
vim.keymap.set("n", "]t", function()
trouble.prev({skip_groups = true, jump = true})
end)
end
local ok, cmp = pcall(require, 'cmp')
if ok then
local cmp_select = {behavior = cmp.SelectBehavior.Select}
cmp.setup({
snippet = {
expand = function(args)
require('luasnip').lsp_expand(args.body)
end,
},
window = {
completion = cmp.config.window.bordered(),
documentation = cmp.config.window.bordered(),
},
mapping = cmp.mapping.preset.insert({
['<C-b>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-e>'] = cmp.mapping.abort(),
['<C-p>'] = cmp.mapping.select_prev_item(cmp_select),
['<C-n>'] = cmp.mapping.select_next_item(cmp_select),
['<C-y>'] = cmp.mapping.confirm({ select = true }),
["<C-Space>"] = cmp.mapping.complete(),
-- ['<CR>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
}),
sources = cmp.config.sources({
{ name = 'nvim_lsp' },
{ name = 'luasnip' },
}, {
{ name = 'buffer' },
})
})
-- To use git you need to install the plugin petertriho/cmp-git and uncomment lines below
-- Set configuration for specific filetype.
--[[ cmp.setup.filetype('gitcommit', {
sources = cmp.config.sources({
{ name = 'git' },
}, {
{ name = 'buffer' },
})
})
require("cmp_git").setup() ]]--
-- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore).
cmp.setup.cmdline({ '/', '?' }, {
mapping = cmp.mapping.preset.cmdline(),
sources = {
{ name = 'buffer' }
}
})
-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore).
cmp.setup.cmdline(':', {
mapping = cmp.mapping.preset.cmdline(),
sources = cmp.config.sources({
{ name = 'path' }
}, {
{ name = 'cmdline' }
}),
matching = { disallow_symbol_nonprefix_matching = false }
})
end
local ok, lsp = pcall(require, 'lspconfig')
if ok then
vim.api.nvim_create_autocmd("FileType", {
pattern = "src",
callback = function()
print("LSP should now be active for src files")
end,
})
vim.diagnostic.config({
update_in_insert = true,
float = {
focusable = false,
style = "minimal",
border = "rounded",
source = "always",
header = "",
prefix = "",
}
})
vim.diagnostic.config({ virtual_text = true })
local lsp_configurations = require('lspconfig.configs')
if not lsp_configurations.greybel then
lsp_configurations.greybel = {
default_config = {
cmd = { "/bin/greybel-languageserver", "--stdio" },
filetypes = { "greyscript" },
root_dir = require('lspconfig.util').root_pattern(".git", vim.fn.getcwd()),
settings = {},
}
}
end
local capabilities = vim.tbl_deep_extend(
"force",
{},
vim.lsp.protocol.make_client_capabilities(),
require('cmp_nvim_lsp').default_capabilities()
)
require('mason').setup({
registries = {
"github:mason-org/mason-registry",
},
})
require('mason-nvim-dap').setup({
ensure_installed = {
"codelldb",
},
handlers = {
function(config)
require("mason-nvim-dap").default_setup(config)
end,
}
})
require('mason-lspconfig').setup({
ensure_installed = {
--"markdownlint",
--"markdown-toc",
"bashls",
"clangd",
"html",
"cssls",
"lua_ls",
"rust_analyzer",
"ts_ls",
},
handlers = {
function(server_name)
lsp[server_name].setup{capabilities = capabilities}
end,
["lua_ls"] = function ()
lsp.lua_ls.setup {
capabilities = capabilities,
settings = {
Lua ={
diagnostics = {
globasl = { "vim" }
}
}
}
}
end
}
})
vim.filetype.add({
extension = {
src = "greyscript"
}
})
lsp.greybel.setup({})
vim.api.nvim_create_autocmd('LspAttach', {
group = vim.api.nvim_create_augroup('my.lsp', {}),
callback = on_atk
})
end

View File

@@ -1,46 +1,47 @@
require('lualine').setup()
local ok, lualine = pcall(require, 'lualine')
if ok then
local custom_gruvbox = require'lualine.themes.base16'
local custom_gruvbox = require'lualine.themes.base16'
-- Change the background of lualine_c section for normal mode
custom_gruvbox.normal.c.bg = '#222222'
-- Change the background of lualine_c section for normal mode
custom_gruvbox.normal.c.bg = '#222222'
local hide_in_width = function()
return vim.fn.winwidth(0) > 80
end
local hide_in_width = function()
return vim.fn.winwidth(0) > 80
end
local diagnostics = {
'diagnostics',
sources = { 'nvim_diagnostic' },
sections = { 'error' , 'warn' },
symbols = { error = '', warn = '', info = '', hint = '' },
update_in_insert = false,
allways_visible = false,
cond = hide_in_width,
}
require('lualine').setup {
options = {
theme = custom_gruvbox,
icons_enabled = true,
disabled_filetypes = {'undotree', 'diff'},
},
sections = {
lualine_a = {{
'mode',
fmt = function(str)
return '' .. str
end,
}},
lualine_b = {'branch', 'diff', diagnostics},
lualine_c = {{
'filename',
file_status = true,
path = 0,
}},
--lualine_x = {'encoding', 'fileformat', 'filetype'},
lualine_x = {{'encoding', cond=hide_in_width}, {'filetype',cond=hide_in_width}},
lualine_y = {'progress'},
lualine_z = {'location'}
local diagnostics = {
'diagnostics',
sources = { 'nvim_diagnostic' },
sections = { 'error' , 'warn' },
symbols = { error = '', warn = '', info = '', hint = '' },
update_in_insert = false,
allways_visible = false,
cond = hide_in_width,
}
}
lualine.setup {
options = {
theme = custom_gruvbox,
icons_enabled = true,
disabled_filetypes = {'undotree', 'diff'},
},
sections = {
lualine_a = {{
'mode',
fmt = function(str)
return '' .. str
end,
}},
lualine_b = {'branch', 'diff', diagnostics},
lualine_c = {{
'filename',
file_status = true,
path = 0,
}},
--lualine_x = {'encoding', 'fileformat', 'filetype'},
lualine_x = {{'encoding', cond=hide_in_width}, {'filetype',cond=hide_in_width}},
lualine_y = {'progress'},
lualine_z = {'location'}
}
}
end

View File

@@ -0,0 +1,2 @@
vim.keymap.set('n', '<leader>mx', ':MarkdownPreview<cr>')
vim.keymap.set('n', '<leader>ms', ':MarkdownPreviewStop<cr>')

View File

@@ -1,4 +1,7 @@
vim.notify = require("notify")
require("notify").setup({
background_colour="#000000"
})
local ok, notify = pcall(require, 'notify')
if ok then
vim.notify = notify
notify.setup({
background_colour="#000000"
})
end

View File

@@ -0,0 +1,8 @@
local ok, null_ls = pcall(require, 'null-ls')
if ok then
null_ls.setup({
sources = {
null_ls.builtins.diagnostics.markdownlint,
},
})
end

View File

@@ -0,0 +1,38 @@
local ok, rmarkdown = pcall(require, 'render-markdown')
if ok then
rmarkdown.setup({
code = {
enabled = true,
render_modes = false,
sign = true,
style = 'full',
position = 'left',
language_pad = 0,
language_icon = true,
language_name = true,
language_info = true,
disable_background = { 'diff' },
width = 'full',
left_margin = 0,
left_pad = 0,
right_pad = 0,
min_width = 0,
border = 'hide',
language_border = '',
language_left = '',
language_right = '',
above = '',
below = '',
inline_left = '',
inline_right = '',
inline_pad = 0,
highlight = 'RenderMarkdownCode',
highlight_info = 'RenderMarkdownCodeInfo',
highlight_language = nil,
highlight_border = 'RenderMarkdownCodeBorder',
highlight_fallback = 'RenderMarkdownCodeFallback',
highlight_inline = 'RenderMarkdownCodeInline',
},
completions = { lsp = { enabled = true } },
})
end

View File

@@ -0,0 +1,18 @@
local ok, luasnip= pcall(require, 'luasnip')
if ok then
luasnip.filetype_extend("javascript", { "jsdoc" })
luasnip.filetype_extend("lua", { "luadoc" })
luasnip.filetype_extend("rust", { "rustdoc" })
luasnip.filetype_extend("c", { "cdoc" })
vim.keymap.set({"i"}, "<C-s>e", function() luasnip.expand() end, {silent = true})
vim.keymap.set({"i", "s"}, "<C-s>;", function() luasnip.jump(1) end, {silent = true})
vim.keymap.set({"i", "s"}, "<C-s>,", function() luasnip.jump(-1) end, {silent = true})
vim.keymap.set({"i", "s"}, "<C-E>", function()
if luasnip.choice_active() then
luasnip.change_choice(1)
end
end, {silent = true})
end

View File

@@ -1,9 +1,76 @@
local builtin = require('telescope.builtin')
vim.keymap.set('n', '<leader>pf', builtin.find_files, {})
vim.keymap.set('n', '<leader>pg', builtin.live_grep, {})
vim.keymap.set('n', '<leader>pb', builtin.buffers, {})
vim.keymap.set('n', '<leader>ph', builtin.help_tags, {})
vim.keymap.set('n', '<leader>ps', function()
builtin.grep_string({ search = vim.fn.input("Grep > ") });
end)
--vim.keymap.set('n', '<C-p>', builtin.git_files, {})
local ok, telescope = pcall(require, 'telescope')
if ok then
local builtin = require('telescope.builtin')
local action = require('telescope.actions')
telescope.setup{
defaults = {
mappings = {
n = {
["d"] = action.delete_buffer,
["q"] = action.close,
}
},
preview = {
treesitter = false,
},
},
pickers = {
find_files = {
find_command = {
"rg",
"--files",
"--hidden",
"--ignore-vcs",
"--no-ignore",
"-g", "!**/.git/*",
},
},
},
}
--[[
if string.find(vim.loop.cwd(),"iceys%-linux%-stuffs") then
telescope.setup{
pickers = {
find_files = {
hidden=true
}
}
}
end
]]--
-- vim.keymap.set('n', '<leader>pf', "<cmd>Telescope find_files initial_mode=normal<cr>", {})
-- sort_mru=true sort by most recently used
-- sort_lastused=true
vim.keymap.set('n', '<leader>pf', builtin.find_files, {})
vim.keymap.set('n', '<leader>pg', builtin.live_grep, {})
vim.keymap.set('n', '<leader>pb', builtin.buffers, {})
vim.keymap.set('n', '<leader>ph', builtin.help_tags, {})
vim.keymap.set('n', '<leader>pr', builtin.registers, {})
vim.keymap.set('n', '<leader>ps', function()
builtin.grep_string({
search = vim.fn.input("Grep > "),
additional_args = function()
return {
"--hidden",
"--no-ignore",
"--glob", "!**/.git/*"
}
end
})
end)
vim.keymap.set('n', '<leader>pws', function()
local word = vim.fn.expand("<cword>")
builtin.grep_string({ search = word })
end)
vim.keymap.set('n', '<leader>pWs', function()
local word = vim.fn.expand("<cWORD>")
builtin.grep_string({ search = word })
end)
vim.keymap.set('n', '<leader>gg', builtin.git_files, {})
vim.keymap.set('n', '<leader>gs', builtin.git_status, {})
vim.keymap.set('n', '<leader>gm', builtin.git_commits, {})
vim.keymap.set('n', '<leader>proj', function ()
require('telescope.builtin').find_files({cwd = "~/stuff/scripts"})
end, {})
end

View File

@@ -0,0 +1,7 @@
local ok, treesitter = pcall(require, 'nvim-treesitter.configs')
if ok then
treesitter.setup {
ensure_installed = { "c", "lua", "rust", "css", "html", "bash", "markdown", "markdown_inline" },
highlight = { enable = true, },
}
end

View File

@@ -1 +1 @@
vim.keymap.set("n", "<leader>u", vim.cmd.UndotreeToggle)
vim.keymap.set("n", "<leader>u", ":UndotreeToggle<CR>")

View File

@@ -14,7 +14,7 @@ vim.opt.smartindent=true
vim.opt.wrap = true
vim.opt.hlsearch = false
vim.opt.hlsearch = true
vim.opt.incsearch = true
vim.o.ignorecase = true
@@ -22,13 +22,14 @@ vim.o.ignorecase = true
vim.opt.updatetime = 50
--vim.opt.colorcolumn = "80"
--vim.cmd('colorscheme vim')
--vim.cmd('colorscheme rose-pine')
--vim.cmd('colorscheme tokyonight')
vim.cmd('colorscheme catppuccin-mocha')
vim.api.nvim_set_hl(0, "Normal", { bg = "none" })
vim.api.nvim_set_hl(0, "NormalFloat", { bg = "none" })
vim.cmd('hi SignColumn ctermbg=0')
vim.cmd('set signcolumn=no')
vim.cmd('hi Pmenu ctermfg=120')
vim.cmd('hi Pmenu ctermbg=0')
@@ -43,8 +44,13 @@ vim.opt.termguicolors = true
--vim.api.nvim_set_hl(0, '@lsp.type.comment.cpp', {})
vim.filetype.add({
extension = {
src = "greyscript"
}
-- make no file extension go to sh type
vim.api.nvim_create_autocmd({"BufRead", "BufNewFile"}, {
pattern = "*",
callback = function()
local fname = vim.fn.expand("%:t")
if not fname:find("%.") then -- no dot in filename
vim.bo.filetype = "sh"
end
end
})

View File

@@ -4,70 +4,99 @@
vim.cmd [[packadd packer.nvim]]
return require('packer').startup(function(use)
-- Packer can manage itself
use 'wbthomason/packer.nvim'
use 'ThePrimeagen/vim-be-good'
use 'ThePrimeagen/harpoon'
-- # learning
use 'ThePrimeagen/vim-be-good'
-- use 'vuciv/golf' --vim daily task
use 'm4xshen/hardtime.nvim'
-- # niceties
use 'rcarriga/nvim-notify'
use { "rose-pine/neovim", as = "rose-pine" }
use { "folke/tokyonight.nvim", as = "tokyonight"}
use { "catppuccin/nvim", as = "catppuccin" }
use "jbyuki/quickmath.nvim"
use '3rd/image.nvim'
use {
'nvim-telescope/telescope.nvim', tag = '0.1.5',
-- or , branch = '0.1.x',
requires = { {'nvim-lua/plenary.nvim'} }
}
use("mbbill/undotree")
use "lukas-reineke/indent-blankline.nvim"
use({ "NStefan002/screenkey.nvim", tag = "*" })
use("catgoose/nvim-colorizer.lua")
use("catgoose/nvim-colorizer.lua")
use {
'nvim-lualine/lualine.nvim',
--requires = { 'nvim-tree/nvim-web-devicons', opt = true }
}
--[[
use('nvim-treesitter/nvim-treesitter', {run = ':TSUpdate',
config = function()
require("nvim-treesitter.configs").setup {
ensure_installed = { "c", "lua", "rust" },
highlight = { enable = true, }
}
end
})
]]--
--use "jbyuki/venn.nvim"
use 'tpope/vim-fugitive'
-- # main dev requirements
use('nvim-treesitter/nvim-treesitter', {run = ':TSUpdate'})
use 'ThePrimeagen/harpoon'
use("mbbill/undotree")
use {
'VonHeikemen/lsp-zero.nvim',
branch = 'v3.x',
requires = {
--- Uncomment the two plugins below if you want to manage the language servers from neovim
{'williamboman/mason.nvim'},
{'williamboman/mason-lspconfig.nvim'},
'nvim-telescope/telescope.nvim', tag = '0.1.8', -- 0.1.5
-- or , branch = '0.1.x',
requires = { {'nvim-lua/plenary.nvim'} }
}
-- LSP Support
{'neovim/nvim-lspconfig'},
use {
'neovim/nvim-lspconfig',
requires = {
'williamboman/mason.nvim',
'williamboman/mason-lspconfig.nvim',
"jay-babu/mason-nvim-dap.nvim",
-- Autocompletion
{'hrsh7th/nvim-cmp'},
{'hrsh7th/cmp-buffer'},
{'hrsh7th/cmp-path'},
{'hrsh7th/cmp-nvim-lsp'},
{'hrsh7th/cmp-nvim-lua'},
{'L3MON4D3/LuaSnip'},
'hrsh7th/cmp-nvim-lsp',
'hrsh7th/cmp-buffer',
'hrsh7th/cmp-path',
'hrsh7th/cmp-cmdline',
'hrsh7th/nvim-cmp',
--snippets
'L3MON4D3/LuaSnip',
'saadparwaiz1/cmp_luasnip',
'rafamadriz/friendly-snippets',
}
}
use 'folke/trouble.nvim'
use 'mfussenegger/nvim-lint'
use 'nvimtools/none-ls.nvim'
-- to dap, or not to dap? tis the question
-- ill trya dap
use { "rcarriga/nvim-dap-ui", requires = {"mfussenegger/nvim-dap", "nvim-neotest/nvim-nio"} }
use({ "iamcco/markdown-preview.nvim", run = "cd app && npm install", setup = function() vim.g.mkdp_filetypes = { "markdown" } end, ft = { "markdown" }, })
use({
'MeanderingProgrammer/render-markdown.nvim',
after = { 'nvim-treesitter' },
requires = { 'echasnovski/mini.nvim', opt = true }, -- if you use the mini.nvim suite
-- requires = { 'echasnovski/mini.icons', opt = true }, -- if you use standalone mini plugins
-- requires = { 'nvim-tree/nvim-web-devicons', opt = true }, -- if you prefer nvim-web-devicons
})
use({
'tigion/nvim-asciidoc-preview',
run = 'cd server && npm install --omit=dev',
})
end)

View File

@@ -1,13 +1,10 @@
vim.g.mapleader=" "
vim.g.maplocalleader=" "
vim.keymap.set("n", "<leader>pv", vim.cmd.Ex)
--[[vim.cmd[[
au VimEnter * silent! !xmodmap -e 'clear Lock' -e 'keycode 0x42 = Escape'
au VimLeave * silent! !xmodmap -e 'clear Lock' -e 'keycode 0x42 = Caps_Lock'>
]]
-- notes
vim.keymap.set("n", "<leader>notes", ":e ~/stuff/notes/notes.md<CR>")
--move highlighted stuffs
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
@@ -15,6 +12,7 @@ vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
--keeps cursor at cur pos when stacking lines to single line
vim.keymap.set("n", "J", "mzJ`z")
--keeps cursur in middle with up down
vim.keymap.set("n", "<C-d>", "<C-d>zz")
vim.keymap.set("n", "<C-u>", "<C-u>zz")
@@ -25,18 +23,13 @@ vim.keymap.set("n", "N", "Nzzzv")
vim.keymap.set("n", "<leader>y", "\"+y")
vim.keymap.set("v", "<leader>y", "\"+y")
vim.keymap.set("n", "<leader>Y", "\"+Y")
--paste but dont overwrite current register with selection
vim.keymap.set("v", "<leader>p", "\"_dP")
--nnoremap S :%s//g<left><left>
vim.keymap.set("n", "S", [[:%s//<Left>]])
vim.keymap.set('n', '<leader>to', ':tabnew<CR>')
vim.keymap.set('n', '<leader>tx', ':tabclose<CR>')
vim.keymap.set('n', '<leader>tn', ':tabn<CR>')
vim.keymap.set('n', '<leader>tp', ':tabp<CR>')
vim.keymap.set('n', '<leader>lw', '<cmd>:set wrap!<CR>')
--stay in indent mode
@@ -44,7 +37,7 @@ vim.keymap.set('v', '<', '<gv', {noremap = true})
vim.keymap.set('v', '>', '>gv', {noremap = true})
--reize with arrows
--reize with alt
vim.keymap.set('n', '<A-k>', ':resize -2<CR>')
vim.keymap.set('n', '<A-j>', ':resize +2<CR>')
vim.keymap.set('n', '<A-h>', ':vertical resize -2<CR>')
@@ -54,7 +47,7 @@ vim.keymap.set('n', '<A-l>', ':vertical resize +2<CR>')
vim.keymap.set('n', '<leader>v', '<C-w>v')
vim.keymap.set('n', '<leader>h', '<C-w>s')
vim.keymap.set('n', '<leader>se', '<C-w>=')
vim.keymap.set('n', '<leader>xs', ':close<CR>')
vim.keymap.set('n', '<leader>sx', ':close<CR>')
-- navigate splits
vim.keymap.set("n","<C-h>","<C-w>h")
@@ -62,31 +55,48 @@ vim.keymap.set("n","<C-j>","<C-w>j")
vim.keymap.set("n","<C-l>","<C-w>l")
vim.keymap.set("n","<C-k>","<C-w>k")
-- navigate tabs
vim.keymap.set('n', '<leader>to', ':tabnew<CR>')
vim.keymap.set('n', '<leader>tx', ':tabclose<CR>')
vim.keymap.set('n', '<leader>tn', ':tabn<CR>')
vim.keymap.set('n', '<leader>tp', ':tabp<CR>')
-- make a error check thing for c
vim.keymap.set("n", "<leader>ee", "oif err != nil {<CR>}<Esc>Oreturn err<Esc>")
--per file type log quick binds
local cc_command=""
local filename = vim.api.nvim_buf_get_name(0)
-- terminal niceites
-- vim.keymap.set("n", "<C-;>", ":", { desc = "Enter command mode" })
-- vim.keymap.set("v", "<C-;>", ":", { desc = "Enter command mode (visual)" })
vim.keymap.set("t", "<C-e>", "<C-\\><C-n>", { desc = "Exit terminal" })
if string.find(filename,".*%.js$") then
cc_command="oconsole.log();<Esc>V=$hi"
elseif string.find(filename,".*%.lua$") then
cc_command="oterm.print()<Esc>V=$i"
elseif string.find(filename,".*%.c$") then
cc_command="oprintf(\"debug: %i\",);<Esc>V=$hi"
elseif string.find(filename,".*%.rs$") then
cc_command="oprintln!(\"debug: {}\",);<Esc>V=$hi"
--change cwd to directory of buffer or git master directory
local function set_cwd()
local fname = vim.fn.expand("%:p")
if not fname:find("fugitive") and not fname:find("term") then -- no dot in filename
vim.cmd('cd ' .. vim.fn.expand('%:p:h'))
local gitroot = vim.fn.system("git rev-parse --show-toplevel")
if string.find(gitroot, "fatal", 1, true) == nil then
vim.cmd("cd " .. gitroot)
end
end
end
vim.keymap.set("n", "<leader>cc", cc_command)
vim.keymap.set("n", "<leader>c", set_cwd, {})
local auto_close=false
local function toggle_auto_close()
if auto_close==false then
vim.api.nvim_create_autocmd({ "BufEnter" }, {
pattern = "*",
callback = set_cwd
})
-- auto closing para
local function set_auto_close(doclose)
if doclose==true then
vim.keymap.set("i", "{", "{<CR>}<Esc>ko");
vim.keymap.set("i", "(", "()<Esc>i");
local filename = vim.api.nvim_buf_get_name(0)
if string.find(filename,".*%.html$") then
vim.keymap.set("i", "<", "<");
vim.keymap.set("i", ">", "><Esc>T<yef>a</><Esc>hpF<i");
@@ -97,7 +107,6 @@ local function toggle_auto_close()
vim.keymap.set("i", "[", "[]<Esc>i");
vim.keymap.set("i", "\"", "\"\"<Esc>i");
vim.keymap.set("i", "'", "''<Esc>i");
auto_close=true
else
vim.keymap.set("i", "{", "{");
vim.keymap.set("i", "(", "(");
@@ -106,19 +115,48 @@ local function toggle_auto_close()
vim.keymap.set("i", "[", "[");
vim.keymap.set("i", "\"", "\"");
vim.keymap.set("i", "'", "'");
auto_close=false
end
end
toggle_auto_close()
set_auto_close(true)
local auto_close=true
local function toggle_auto_close()
if auto_close==true then
auto_close=false
else
auto_close=true
end
set_auto_close(auto_close)
end
vim.keymap.set("n", "<leader>k", toggle_auto_close)
--[[
vim.keymap("i","<Caps_Lock>", function()
end)
]]
-- update every buffer
vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost" }, {
pattern = "*",
callback = function()
--per file type log quick binds
local cc_command=""
local filename = vim.api.nvim_buf_get_name(0)
set_auto_close(auto_close)
if string.find(filename,".*%.js$") then
cc_command="oconsole.log();<Esc>V=$hi"
elseif string.find(filename,".*%.lua$") then
cc_command="oterm.print()<Esc>V=$i"
elseif string.find(filename,".*%.c$") then
cc_command="oprintf(\"debug: %i\",);<Esc>V=$hi"
elseif string.find(filename,".*%.rs$") then
cc_command="oprintln!(\"debug: {}\",);<Esc>V=$hi"
end
vim.keymap.set("n", "<leader>cc", cc_command)
end
})
-- colemak rebinds
local colemak_switch=false
local colemak_tog = function()

148
env/.config/pipewire/client.conf vendored Normal file
View File

@@ -0,0 +1,148 @@
# Client config file for PipeWire version "1.4.2" #
#
# Copy and edit this file in /etc/pipewire for system-wide changes
# or in ~/.config/pipewire for local changes.
#
# It is also possible to place a file with an updated section in
# /etc/pipewire/client.conf.d/ for system-wide changes or in
# ~/.config/pipewire/client.conf.d/ for local changes.
#
context.properties = {
## Configure properties in the system.
#mem.warn-mlock = false
#mem.allow-mlock = true
#mem.mlock-all = false
log.level = 0
#default.clock.quantum-limit = 8192
}
context.spa-libs = {
#<factory-name regex> = <library-name>
#
# Used to find spa factory names. It maps an spa factory name
# regular expression to a library name that should contain
# that factory.
#
audio.convert.* = audioconvert/libspa-audioconvert
support.* = support/libspa-support
video.convert.* = videoconvert/libspa-videoconvert
}
context.modules = [
#{ name = <module-name>
# ( args = { <key> = <value> ... } )
# ( flags = [ ( ifexists ) ( nofail ) ] )
# ( condition = [ { <key> = <value> ... } ... ] )
#}
#
# Loads a module with the given parameters.
# If ifexists is given, the module is ignored when it is not found.
# If nofail is given, module initialization failures are ignored.
#
# Uses realtime scheduling to boost the audio thread priorities
{ name = libpipewire-module-rt
args = {
#rt.prio = 83
#rt.time.soft = -1
#rt.time.hard = -1
}
flags = [ ifexists nofail ]
condition = [ { module.rt = !false } ]
}
# The native communication protocol.
{ name = libpipewire-module-protocol-native }
# Allows creating nodes that run in the context of the
# client. Is used by all clients that want to provide
# data to PipeWire.
{ name = libpipewire-module-client-node
condition = [ { module.client-node = !false } ]
}
# Allows creating devices that run in the context of the
# client. Is used by the session manager.
{ name = libpipewire-module-client-device
condition = [ { module.client-device = !false } ]
}
# Makes a factory for wrapping nodes in an adapter with a
# converter and resampler.
{ name = libpipewire-module-adapter
condition = [ { module.adapter = !false } ]
}
# Allows applications to create metadata objects. It creates
# a factory for Metadata objects.
{ name = libpipewire-module-metadata
condition = [ { module.metadata = !false } ]
}
# Provides factories to make session manager objects.
{ name = libpipewire-module-session-manager
condition = [ { module.session-manager = !false } ]
}
]
filter.properties = {
#node.latency = 1024/48000
}
stream.properties = {
#node.latency = 1024/48000
#node.autoconnect = true
#resample.quality = 4
#channelmix.normalize = false
#channelmix.mix-lfe = true
#channelmix.upmix = true
#channelmix.upmix-method = psd # none, simple
#channelmix.lfe-cutoff = 150
#channelmix.fc-cutoff = 12000
#channelmix.rear-delay = 12.0
#channelmix.stereo-widen = 0.0
#channelmix.hilbert-taps = 0
#dither.noise = 0
}
stream.rules = [
{ matches = [
{
# all keys must match the value. ! negates. ~ starts regex.
#application.name = "pw-cat"
#node.name = "~Google Chrome$"
}
]
actions = {
update-props = {
#node.latency = 512/48000
}
}
}
]
alsa.properties = {
#alsa.deny = false
# ALSA params take a single value, an array [] of values
# or a range { min=.. max=... }
#alsa.access = [ MMAP_INTERLEAVED MMAP_NONINTERLEAVED RW_INTERLEAVED RW_NONINTERLEAVED ]
#alsa.format = [ FLOAT S32 S24 S24_3 S16 U8 ]
#alsa.rate = { min=1 max=384000 } # or [ 44100 48000 .. ]
#alsa.channels = { min=1 max=64 } # or [ 2 4 6 .. ]
#alsa.period-bytes = { min=128 max=2097152 } # or [ 128 256 1024 .. ]
#alsa.buffer-bytes = { min=256 max=4194304 } # or [ 256 512 4096 .. ]
#alsa.volume-method = cubic # linear, cubic
}
# client specific properties
alsa.rules = [
{ matches = [ { application.process.binary = "resolve" } ]
actions = {
update-props = {
alsa.buffer-bytes = 131072
}
}
}
]

63
env/.config/pipewire/filter-chain.conf vendored Normal file
View File

@@ -0,0 +1,63 @@
# Filter-chain config file for PipeWire version "1.4.2" #
#
# This is a base config file for running filters.
#
# Place filter fragments in /etc/pipewire/filter-chain.conf.d/
# for system-wide changes or in ~/.config/pipewire/filter-chain.conf.d/
# for local changes.
#
# Run the filters with pipewire -c filter-chain.conf
#
context.properties = {
## Configure properties in the system.
#mem.warn-mlock = false
#mem.allow-mlock = true
#mem.mlock-all = false
log.level = 0
}
context.spa-libs = {
#<factory-name regex> = <library-name>
#
# Used to find spa factory names. It maps an spa factory name
# regular expression to a library name that should contain
# that factory.
#
audio.convert.* = audioconvert/libspa-audioconvert
support.* = support/libspa-support
}
context.modules = [
#{ name = <module-name>
# ( args = { <key> = <value> ... } )
# ( flags = [ ( ifexists ) ( nofail ) ] )
# ( condition = [ { <key> = <value> ... } ... ] )
#}
#
# Loads a module with the given parameters.
# If ifexists is given, the module is ignored when it is not found.
# If nofail is given, module initialization failures are ignored.
#
# Uses realtime scheduling to boost the audio thread priorities
{ name = libpipewire-module-rt
args = {
#rt.prio = 83
#rt.time.soft = -1
#rt.time.hard = -1
}
flags = [ ifexists nofail ]
}
# The native communication protocol.
{ name = libpipewire-module-protocol-native }
# Allows creating nodes that run in the context of the
# client. Is used by all clients that want to provide
# data to PipeWire.
{ name = libpipewire-module-client-node }
# Makes a factory for wrapping nodes in an adapter with a
# converter and resampler.
{ name = libpipewire-module-adapter }
]

140
env/.config/pipewire/jack.conf vendored Normal file
View File

@@ -0,0 +1,140 @@
# JACK client config file for PipeWire version "1.4.2" #
#
# Copy and edit this file in /etc/pipewire for system-wide changes
# or in ~/.config/pipewire for local changes.
#
# It is also possible to place a file with an updated section in
# /etc/pipewire/jack.conf.d/ for system-wide changes or in
# ~/.config/pipewire/jack.conf.d/ for local changes.
#
context.properties = {
## Configure properties in the system.
#mem.warn-mlock = false
#mem.allow-mlock = true
#mem.mlock-all = false
log.level = 0
#default.clock.quantum-limit = 8192
}
context.spa-libs = {
#<factory-name regex> = <library-name>
#
# Used to find spa factory names. It maps an spa factory name
# regular expression to a library name that should contain
# that factory.
#
support.* = support/libspa-support
}
context.modules = [
#{ name = <module-name>
# ( args = { <key> = <value> ... } )
# ( flags = [ ( ifexists ) ( nofail ) ] )
# ( condition = [ { <key> = <value> ... } ... ] )
#}
#
# Loads a module with the given parameters.
# If ifexists is given, the module is ignored when it is not found.
# If nofail is given, module initialization failures are ignored.
#
#
# Boost the data thread priority.
{ name = libpipewire-module-rt
args = {
#rt.prio = 83
#rt.time.soft = -1
#rt.time.hard = -1
}
flags = [ ifexists nofail ]
}
# The native communication protocol.
{ name = libpipewire-module-protocol-native }
# Allows creating nodes that run in the context of the
# client. Is used by all clients that want to provide
# data to PipeWire.
{ name = libpipewire-module-client-node }
# Allows applications to create metadata objects. It creates
# a factory for Metadata objects.
{ name = libpipewire-module-metadata }
]
# global properties for all jack clients
jack.properties = {
#node.latency = 1024/48000
#node.rate = 1/48000
#node.quantum = 1024/48000
#node.lock-quantum = true
#node.force-quantum = 0
#jack.show-monitor = true
#jack.merge-monitor = true
#jack.show-midi = true
#jack.short-name = false
#jack.filter-name = false
#jack.filter-char = " "
#
# allow: Don't restrict self connect requests
# fail-external: Fail self connect requests to external ports only
# ignore-external: Ignore self connect requests to external ports only
# fail-all: Fail all self connect requests
# ignore-all: Ignore all self connect requests
#jack.self-connect-mode = allow
#
# allow: Allow connect request of other ports
# fail: Fail connect requests of other ports
# ignore: Ignore connect requests of other ports
#jack.other-connect-mode = allow
#jack.locked-process = true
#jack.default-as-system = false
#jack.fix-midi-events = true
#jack.global-buffer-size = false
#jack.max-client-ports = 768
#jack.fill-aliases = false
#jack.writable-input = true
#jack.flag-midi2 = false
}
# client specific properties
jack.rules = [
{ matches = [
{
# all keys must match the value. ! negates. ~ starts regex.
#client.name = "Carla"
#application.process.binary = "jack_simple_client"
#application.name = "~jack_simple_client.*"
}
]
actions = {
update-props = {
#node.latency = 512/48000
}
}
}
{ matches = [ { application.process.binary = "jack_bufsize" } ]
actions = {
update-props = {
jack.global-buffer-size = true # quantum set globally using metadata
}
}
}
{ matches = [ { application.process.binary = "qsynth" } ]
actions = {
update-props = {
node.always-process = false # makes qsynth idle
node.pause-on-idle = false # makes audio fade out when idle
node.passive = out # makes the sink and qsynth suspend
}
}
}
{ matches = [ { client.name = "Mixxx" } ]
actions = {
update-props = {
jack.merge-monitor = false
}
}
}
]

476
env/.config/pipewire/minimal.conf vendored Normal file
View File

@@ -0,0 +1,476 @@
# Simple daemon config file for PipeWire version "1.4.2" #
#
# Copy and edit this file in /etc/pipewire for system-wide changes
# or in ~/.config/pipewire for local changes.
#
# It is also possible to place a file with an updated section in
# /etc/pipewire/minimal.conf.d/ for system-wide changes or in
# ~/.config/pipewire/minimal.conf.d/ for local changes.
#
context.properties = {
## Configure properties in the system.
#library.name.system = support/libspa-support
#context.data-loop.library.name.system = support/libspa-support
#support.dbus = true
#link.max-buffers = 64
link.max-buffers = 16 # version < 3 clients can't handle more
#mem.warn-mlock = false
#mem.allow-mlock = true
#mem.mlock-all = false
#clock.power-of-two-quantum = true
#log.level = 2
#cpu.zero.denormals = false
core.daemon = true # listening for socket connections
core.name = pipewire-0 # core name and socket name
## Properties for the DSP configuration.
#default.clock.rate = 48000
#default.clock.allowed-rates = [ 48000 ]
#default.clock.quantum = 1024
#default.clock.min-quantum = 32
#default.clock.max-quantum = 2048
#default.clock.quantum-limit = 8192
#default.clock.quantum-floor = 4
#default.video.width = 640
#default.video.height = 480
#default.video.rate.num = 25
#default.video.rate.denom = 1
#
settings.check-quantum = true
settings.check-rate = true
# This config can use udev or hardcoded ALSA devices. Make sure to
# change the alsa device below when disabling udev
minimal.use-udev = true
# Load the pulseaudio emulation daemon
minimal.use-pulse = true
}
context.properties.rules = [
{ matches = [ { cpu.vm.name = !null } ]
actions = {
update-props = {
# These overrides are only applied when running in a vm.
default.clock.min-quantum = 1024
}
}
}
]
context.spa-libs = {
#<factory-name regex> = <library-name>
#
# Used to find spa factory names. It maps an spa factory name
# regular expression to a library name that should contain
# that factory.
#
audio.convert.* = audioconvert/libspa-audioconvert
audio.adapt = audioconvert/libspa-audioconvert
api.alsa.* = alsa/libspa-alsa
support.* = support/libspa-support
}
context.modules = [
#{ name = <module-name>
# ( args = { <key> = <value> ... } )
# ( flags = [ ( ifexists ) ( nofail ) ] )
# ( condition = [ { <key> = <value> ... } ... ] )
#}
#
# Loads a module with the given parameters.
# If ifexists is given, the module is ignored when it is not found.
# If nofail is given, module initialization failures are ignored.
#
# Uses realtime scheduling to boost the audio thread priorities. This uses
# RTKit if the user doesn't have permission to use regular realtime
# scheduling.
{ name = libpipewire-module-rt
args = {
nice.level = -11
rt.prio = 88
#rt.time.soft = -1
#rt.time.hard = -1
}
flags = [ ifexists nofail ]
}
# The native communication protocol.
{ name = libpipewire-module-protocol-native }
# The profile module. Allows application to access profiler
# and performance data. It provides an interface that is used
# by pw-top and pw-profiler.
{ name = libpipewire-module-profiler }
# Allows applications to create metadata objects. It creates
# a factory for Metadata objects.
{ name = libpipewire-module-metadata }
# Creates a factory for making nodes that run in the
# context of the PipeWire server.
{ name = libpipewire-module-spa-node-factory }
{ name = libpipewire-module-spa-device-factory }
# Allows creating nodes that run in the context of the
# client. Is used by all clients that want to provide
# data to PipeWire.
{ name = libpipewire-module-client-node }
# The access module can perform access checks and block
# new clients.
{ name = libpipewire-module-access
args = {
# access.allowed to list an array of paths of allowed
# apps.
#access.allowed = [
# /usr/bin/pipewire-media-session
#]
# An array of rejected paths.
#access.rejected = [ ]
# An array of paths with restricted access.
#access.restricted = [ ]
# Anything not in the above lists gets assigned the
# access.force permission.
#access.force = flatpak
}
}
# Makes a factory for wrapping nodes in an adapter with a
# converter and resampler.
{ name = libpipewire-module-adapter }
# Makes a factory for creating links between ports.
{ name = libpipewire-module-link-factory }
{ name = libpipewire-module-protocol-pulse
condition = [ { minimal.use-pulse = true } ]
}
]
pulse.properties = {
# the addresses this server listens on
server.address = [
"unix:native"
]
}
stream.properties = {
adapter.auto-port-config = { mode = dsp }
}
context.objects = [
#{ factory = <factory-name>
# ( args = { <key> = <value> ... } )
# ( flags = [ ( nofail ) ] )
# ( condition = [ { <key> = <value> ... } ... ] )
#}
#
# Creates an object from a PipeWire factory with the given parameters.
# If nofail is given, errors are ignored (and no object is created).
#
#{ factory = spa-node-factory args = { factory.name = videotestsrc node.name = videotestsrc node.description = videotestsrc node.param.Props = { patternType = 1 } } }
#{ factory = spa-device-factory args = { factory.name = api.jack.device foo=bar } flags = [ nofail ] }
#{ factory = spa-device-factory args = { factory.name = api.alsa.enum.udev } }
#{ factory = spa-node-factory args = { factory.name = api.alsa.seq.bridge node.name = Internal-MIDI-Bridge } }
#{ factory = adapter args = { factory.name = audiotestsrc node.name = my-test node.description = audiotestsrc node.param.Props = { live = false } } }
#{ factory = spa-node-factory args = { factory.name = api.vulkan.compute.source node.name = my-compute-source } }
# Make a default metadata store
{ factory = metadata
args = {
metadata.name = default
# metadata.values = [
# { key = default.audio.sink value = { name = somesink } }
# { key = default.audio.source value = { name = somesource } }
# ]
}
}
# A default dummy driver. This handles nodes marked with the "node.always-process"
# property when no other driver is currently active. JACK clients need this.
{ factory = spa-node-factory
args = {
factory.name = support.node.driver
node.name = Dummy-Driver
node.group = pipewire.dummy
priority.driver = 20000
}
}
{ factory = spa-node-factory
args = {
factory.name = support.node.driver
node.name = Freewheel-Driver
priority.driver = 19000
node.group = pipewire.freewheel
node.freewheel = true
#freewheel.wait = 10
}
}
# This creates a ALSA udev device that will enumerate all
# ALSA devices. Because it is using ACP and has the auto-profile
# property set, this will enable a profile and create associated
# nodes, which will be automatically configured to their best
# configuration with the auto-port-config settings.
# Extra node and device params can be given with node.param and
# device.param prefixes.
{ factory = spa-device-factory
args = {
factory.name = api.alsa.enum.udev
alsa.use-acp = true
device.object.properties = {
api.acp.auto-profile = true
api.acp.auto-port = true
device.object.properties = {
node.adapter = audio.adapt
resample.disable = false
adapter.auto-port-config = {
mode = dsp
monitor = false
control = false
position = preserve # unknown, aux
}
#node.param.Props = {
# channelVolumes = [ 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.6 ]
#}
}
#device.param.Profile = {
# #idx = 0
# name = pro-audio
#}
}
}
condition = [ { minimal.use-udev = true } ]
}
# This creates a single PCM source device for the given
# alsa device path hw:0. You can change source to sink
# to make a sink in the same way.
{ factory = adapter
args = {
factory.name = api.alsa.pcm.source
node.name = "system"
node.description = "system"
media.class = "Audio/Source"
api.alsa.path = "hw:4"
#api.alsa.period-size = 0
#api.alsa.period-num = 0
#api.alsa.headroom = 0
#api.alsa.start-delay = 0
#api.alsa.disable-mmap = false
#api.alsa.disable-batch = false
#api.alsa.use-chmap = false
#api.alsa.multirate = true
#latency.internal.rate = 0
#latency.internal.ns = 0
#clock.name = api.alsa.0
node.suspend-on-idle = true
#audio.format = "S32"
#audio.rate = 48000
#audio.allowed-rates = [ ]
#audio.channels = 4
#audio.position = [ FL FR RL RR ]
#resample.quality = 4
resample.disable = true
#monitor.channel-volumes = false
#channelmix.normalize = false
#channelmix.mix-lfe = true
#channelmix.upmix = true
#channelmix.upmix-method = psd # none, simple
#channelmix.lfe-cutoff = 150
#channelmix.fc-cutoff = 12000
#channelmix.rear-delay = 12.0
#channelmix.stereo-widen = 0.0
#channelmix.hilbert-taps = 0
#channelmix.disable = false
#dither.noise = 0
#node.param.Props = {
# params = [
# audio.channels 6
# ]
#}
adapter.auto-port-config = {
mode = dsp
monitor = false
control = false
position = unknown # aux, preserve
}
#node.param.PortConfig = {
# direction = Output
# mode = dsp
# format = {
# mediaType = audio
# mediaSubtype = raw
# format = F32
# rate = 48000
# channels = 4
# position = [ FL FR RL RR ]
# }
#}
#node.param.Props = {
# channelVolumes = [ 0.5 0.4 0.3 0.5 ]
#}
}
condition = [ { minimal.use-udev = false } ]
}
{ factory = adapter
args = {
factory.name = api.alsa.pcm.sink
node.name = "system"
node.description = "system"
media.class = "Audio/Sink"
api.alsa.path = "hw:4"
#api.alsa.period-size = 0
#api.alsa.period-num = 0
#api.alsa.headroom = 0
#api.alsa.start-delay = 0
#api.alsa.disable-mmap = false
#api.alsa.disable-batch = false
#api.alsa.use-chmap = false
#api.alsa.multirate = true
#latency.internal.rate = 0
#latency.internal.ns = 0
#clock.name = api.alsa.0
node.suspend-on-idle = true
#audio.format = "S32"
#audio.rate = 48000
#audio.allowed-rates = [ ]
#audio.channels = 2
#audio.position = "FL,FR"
#resample.quality = 4
resample.disable = true
#channelmix.normalize = false
#channelmix.mix-lfe = true
#channelmix.upmix = true
#channelmix.upmix-method = psd # none, simple
#channelmix.lfe-cutoff = 150
#channelmix.fc-cutoff = 12000
#channelmix.rear-delay = 12.0
#channelmix.stereo-widen = 0.0
#channelmix.hilbert-taps = 0
#channelmix.disable = false
#dither.noise = 0
#node.param.Props = {
# params = [
# audio.format S16
# ]
#}
adapter.auto-port-config = {
mode = dsp
monitor = false
control = false
position = unknown # aux, preserve
}
#node.param.PortConfig = {
# direction = Input
# mode = dsp
# monitor = true
# format = {
# mediaType = audio
# mediaSubtype = raw
# format = F32
# rate = 48000
# channels = 4
# }
#}
#node.param.Props = {
# channelVolumes = [ 0.5 0.4 0.3 0.5 ]
#}
}
condition = [ { minimal.use-udev = false } ]
}
# This creates a new Source node. It will have input ports
# that you can link, to provide audio for this source.
#{ factory = adapter
# args = {
# factory.name = support.null-audio-sink
# node.name = "my-mic"
# node.description = "Microphone"
# media.class = "Audio/Source/Virtual"
# audio.position = "FL,FR"
# monitor.passthrough = true
# adapter.auto-port-config = {
# mode = dsp
# monitor = true
# position = preserve # unknown, aux, preserve
# }
# }
#}
# This creates a new link between the source and the virtual
# source ports.
#{ factory = link-factory
# args = {
# link.output.node = system
# link.output.port = capture_1
# link.input.node = my-mic
# link.input.port = input_FL
# }
#}
#{ factory = link-factory
# args = {
# link.output.node = system
# link.output.port = capture_2
# link.input.node = my-mic
# link.input.port = input_FR
# }
#}
]
context.exec = [
#{ path = <program-name>
# ( args = "<arguments>" | [ <arg1> <arg2> ... ] )
# ( condition = [ { <key> = <value> ... } ... ] )
#}
#
# Execute the given program with arguments.
#
# You can optionally start the pulseaudio-server here as well
# but it is better to start it as a systemd service.
# It can be interesting to start another daemon here that listens
# on another address with the -a option (eg. -a tcp:4713).
#
##{ path = "/usr/bin/pipewire" args = "-c pipewire-pulse.conf" }
]
node.rules = [
{ matches = [
{
# all keys must match the value. ! negates. ~ starts regex.
#alsa.card_name = "ICUSBAUDIO7D"
#api.alsa.pcm.stream = "playback"
}
]
actions = {
update-props = {
#node.name = "alsa_playback.ICUSBAUDIO7D"
}
}
}
]
device.rules = [
{ matches = [
{
#alsa.card_name = "ICUSBAUDIO7D"
}
]
actions = {
update-props = {
#device.name = "alsa_card.ICUSBAUDIO7D"
#api.acp.auto-profile = false
#api.acp.auto-port = false
#device.param.Profile = {
# #idx = 0
# name = off
#}
}
}
}
]

157
env/.config/pipewire/pipewire-aes67.conf vendored Normal file
View File

@@ -0,0 +1,157 @@
# AES67 config file for PipeWire version "1.4.2" #
#
# Copy and edit this file in /etc/pipewire for system-wide changes
# or in ~/.config/pipewire for local changes.
#
# It is also possible to place a file with an updated section in
# /etc/pipewire/pipewire-aes67.conf.d/ for system-wide changes or in
# ~/.config/pipewire/pipewire-aes67.conf.d/ for local changes.
#
context.properties = {
## Configure properties in the system.
#mem.warn-mlock = false
#mem.allow-mlock = true
#mem.mlock-all = false
#log.level = 2
#default.clock.quantum-limit = 8192
}
context.spa-libs = {
support.* = support/libspa-support
}
context.objects = [
# An example clock reading from /dev/ptp0. You can also specify the network interface name,
# pipewire will query the interface for the current active PHC index. Another option is to
# sync the ptp clock to CLOCK_TAI and then set clock.id = tai, keep in mind that tai may
# also be synced by a NTP client.
# The precedence is: device, interface, id
{ factory = spa-node-factory
args = {
factory.name = support.node.driver
node.name = PTP0-Driver
node.group = pipewire.ptp0
# This driver should only be used for network nodes marked with group
priority.driver = 100000
clock.name = "clock.system.ptp0"
### Please select the PTP hardware clock here
# Interface name is the preferred method of specifying the PHC
clock.interface = "eth0"
#clock.device = "/dev/ptp0"
#clock.id = tai
# Lower this in case of periodic out-of-sync
resync.ms = 1.5
object.export = true
}
}
]
context.modules = [
{ name = libpipewire-module-rt
args = {
nice.level = -11
#rt.prio = 83
#rt.time.soft = -1
#rt.time.hard = -1
}
flags = [ ifexists nofail ]
}
{ name = libpipewire-module-protocol-native }
{ name = libpipewire-module-client-node }
{ name = libpipewire-module-spa-node-factory }
{ name = libpipewire-module-adapter }
{ name = libpipewire-module-rtp-sap
args = {
### Please select the interface here
local.ifname = eth0
sap.ip = 239.255.255.255
sap.port = 9875
net.ttl = 32
net.loop = false
# If you use another PTPv2 daemon supporting management
# messages over a UNIX socket, specify its path here
ptp.management-socket = "/var/run/ptp4lro"
stream.rules = [
{
matches = [
{
rtp.session = "~.*"
}
]
actions = {
create-stream = {
node.virtual = false
media.class = "Audio/Source"
device.api = aes67
# You can adjust the latency buffering here. Use integer values only
sess.latency.msec = 3
node.group = pipewire.ptp0
}
}
},
{
matches = [
{
sess.sap.announce = true
}
]
actions = {
announce-stream = {}
}
}
]
}
},
{ name = libpipewire-module-rtp-sink
args = {
### Please select the interface here
local.ifname = eth0
### If you want to create multiple output streams, please copy the whole
### module-rtp-sink block, but change this multicast IP to another unused
### one keeping 239.69.x.x range unless you know you need another one
destination.ip = 239.69.150.243
destination.port = 5004
net.mtu = 1280
net.ttl = 32
net.loop = false
# These should typically be equal
# You can customize packet length, but 1 ms should work for every device
# Consult receiver documentation to ensure it supports the value you set
sess.min-ptime = 1
sess.max-ptime = 1
### Please change this, especially if you create multiple sinks
sess.name = "PipeWire RTP stream"
sess.media = "audio"
# This property is used if you aren't using ptp4l 4
sess.ts-refclk = "ptp=traceable"
sess.ts-offset = 0
# You can adjust the latency buffering here. Use integer values only
sess.latency.msec = 3
audio.format = "S24BE"
audio.rate = 48000
audio.channels = 2
# These channel names will be visible both to applications and AES67 receivers
node.channel-names = ["CH1", "CH2"]
# Uncomment this and comment node.group in send/recv stream.props to allow
# separate drivers for the RTP sink and PTP sending (i.e. force rate matching on
# the AES67 node rather than other nodes)
#aes67.driver-group = "pipewire.ptp0"
stream.props = {
### Please change the sink name, this is necessary when you create multiple sinks
node.name = "rtp-sink"
media.class = "Audio/Sink"
node.virtual = false
device.api = aes67
sess.sap.announce = true
node.always-process = true
node.group = pipewire.ptp0
rtp.ntp = 0
rtp.fetch-ts-refclk = true
}
}
},
]

80
env/.config/pipewire/pipewire-avb.conf vendored Normal file
View File

@@ -0,0 +1,80 @@
# PulseAudio config file for PipeWire version "1.4.2" #
#
# Copy and edit this file in /etc/pipewire for system-wide changes
# or in ~/.config/pipewire for local changes.
#
# It is also possible to place a file with an updated section in
# /etc/pipewire/pipewire-pulse.conf.d/ for system-wide changes or in
# ~/.config/pipewire/pipewire-pulse.conf.d/ for local changes.
#
context.properties = {
## Configure properties in the system.
#mem.warn-mlock = false
#mem.allow-mlock = true
#mem.mlock-all = false
#log.level = 2
#default.clock.quantum-limit = 8192
}
context.spa-libs = {
audio.convert.* = audioconvert/libspa-audioconvert
support.* = support/libspa-support
}
context.modules = [
{ name = libpipewire-module-rt
args = {
nice.level = -11
#rt.prio = 83
#rt.time.soft = -1
#rt.time.hard = -1
}
flags = [ ifexists nofail ]
}
{ name = libpipewire-module-protocol-native }
{ name = libpipewire-module-client-node }
{ name = libpipewire-module-adapter }
{ name = libpipewire-module-avb
args = {
# contents of avb.properties can also be placed here
# to have config per server.
}
}
]
# Extra modules can be loaded here. Setup in default.pa can be moved here
context.exec = [
#{ path = "pactl" args = "load-module module-always-sink" }
]
stream.properties = {
#node.latency = 1024/48000
#node.autoconnect = true
#resample.quality = 4
#channelmix.normalize = false
#channelmix.mix-lfe = true
#channelmix.upmix = true
#channelmix.lfe-cutoff = 120
#channelmix.fc-cutoff = 6000
#channelmix.rear-delay = 12.0
#channelmix.stereo-widen = 0.1
#channelmix.hilbert-taps = 0
}
avb.properties = {
# the addresses this server listens on
#ifname = "eth0.2"
ifname = "enp3s0"
}
avb.properties.rules = [
{ matches = [ { cpu.vm.name = !null } ]
actions = {
update-props = {
# These overrides are only applied when running in a vm.
}
}
}
]

187
env/.config/pipewire/pipewire-pulse.conf vendored Normal file
View File

@@ -0,0 +1,187 @@
# PulseAudio config file for PipeWire version "1.4.2" #
#
# Copy and edit this file in /etc/pipewire for system-wide changes
# or in ~/.config/pipewire for local changes.
#
# It is also possible to place a file with an updated section in
# /etc/pipewire/pipewire-pulse.conf.d/ for system-wide changes or in
# ~/.config/pipewire/pipewire-pulse.conf.d/ for local changes.
#
context.properties = {
## Configure properties in the system.
#mem.warn-mlock = false
#mem.allow-mlock = true
#mem.mlock-all = false
#log.level = 2
#default.clock.quantum-limit = 8192
}
context.spa-libs = {
audio.convert.* = audioconvert/libspa-audioconvert
support.* = support/libspa-support
}
context.modules = [
{ name = libpipewire-module-rt
args = {
nice.level = -11
#rt.prio = 83
#rt.time.soft = -1
#rt.time.hard = -1
#uclamp.min = 0
#uclamp.max = 1024
}
flags = [ ifexists nofail ]
}
{ name = libpipewire-module-protocol-native }
{ name = libpipewire-module-client-node }
{ name = libpipewire-module-adapter }
{ name = libpipewire-module-metadata }
{ name = libpipewire-module-protocol-pulse
args = {
# contents of pulse.properties can also be placed here
# to have config per server.
}
}
]
# Extra scripts can be started here. Setup in default.pa can be moved in
# a script or in pulse.cmd below
context.exec = [
#{ path = "pactl" args = "load-module module-always-sink" }
#{ path = "pactl" args = "upload-sample my-sample.wav my-sample" }
#{ path = "/usr/bin/sh" args = "~/.config/pipewire/default.pw" }
]
# Extra commands can be executed here.
# load-module : loads a module with args and flags
# args = "<module-name> <module-args>"
# ( flags = [ nofail ] )
# ( condition = [ { <key1> = <value1>, ... } ... ] )
# conditions will check the pulse.properties key/values.
pulse.cmd = [
{ cmd = "load-module" args = "module-always-sink" flags = [ ]
condition = [ { pulse.cmd.always-sink = !false } ] }
{ cmd = "load-module" args = "module-device-manager" flags = [ ]
condition = [ { pulse.cmd.device-manager = !false } ] }
{ cmd = "load-module" args = "module-device-restore" flags = [ ]
condition = [ { pulse.cmd.device-restore = !false } ] }
{ cmd = "load-module" args = "module-stream-restore" flags = [ ]
condition = [ { pulse.cmd.stream-restore = !false } ] }
#{ cmd = "load-module" args = "module-switch-on-connect" }
#{ cmd = "load-module" args = "module-gsettings" flags = [ nofail ] }
]
stream.properties = {
#node.latency = 1024/48000
#node.autoconnect = true
#resample.quality = 4
#channelmix.normalize = false
#channelmix.mix-lfe = true
#channelmix.upmix = true
#channelmix.upmix-method = psd # none, simple
#channelmix.lfe-cutoff = 150
#channelmix.fc-cutoff = 12000
#channelmix.rear-delay = 12.0
#channelmix.stereo-widen = 0.0
#channelmix.hilbert-taps = 0
#dither.noise = 0
}
pulse.properties = {
# the addresses this server listens on
server.address = [
"unix:native"
#"unix:/tmp/something" # absolute paths may be used
#"tcp:4713" # IPv4 and IPv6 on all addresses
#"tcp:[::]:9999" # IPv6 on all addresses
#"tcp:127.0.0.1:8888" # IPv4 on a single address
#
#{ address = "tcp:4713" # address
# max-clients = 64 # maximum number of clients
# listen-backlog = 32 # backlog in the server listen queue
# client.access = "restricted" # permissions for clients
#}
]
#server.dbus-name = "org.pulseaudio.Server"
#pulse.allow-module-loading = true
#pulse.min.req = 128/48000 # 2.7ms
#pulse.default.req = 960/48000 # 20 milliseconds
#pulse.min.frag = 128/48000 # 2.7ms
#pulse.default.frag = 96000/48000 # 2 seconds
#pulse.default.tlength = 96000/48000 # 2 seconds
#pulse.min.quantum = 128/48000 # 2.7ms
#pulse.idle.timeout = 0 # don't pause after underruns
#pulse.default.format = F32
#pulse.default.position = [ FL FR ]
}
pulse.properties.rules = [
{ matches = [ { cpu.vm.name = !null } ]
actions = {
update-props = {
# These overrides are only applied when running in a vm.
pulse.min.quantum = 1024/48000 # 22ms
}
}
}
]
# client/stream specific properties
pulse.rules = [
{
matches = [
{
# all keys must match the value. ! negates. ~ starts regex.
#client.name = "Firefox"
#application.process.binary = "teams"
#application.name = "~speech-dispatcher.*"
}
]
actions = {
update-props = {
#node.latency = 512/48000
}
# Possible quirks:"
# force-s16-info forces sink and source info as S16 format
# remove-capture-dont-move removes the capture DONT_MOVE flag
# block-source-volume blocks updates to source volume
# block-sink-volume blocks updates to sink volume
#quirks = [ ]
}
}
{
# skype does not want to use devices that don't have an S16 sample format.
matches = [
{ application.process.binary = "teams" }
{ application.process.binary = "teams-insiders" }
{ application.process.binary = "teams-for-linux" }
{ application.process.binary = "skypeforlinux" }
]
actions = { quirks = [ force-s16-info ] }
}
{
# firefox marks the capture streams as don't move and then they
# can't be moved with pavucontrol or other tools.
matches = [ { application.process.binary = "firefox" } ]
actions = { quirks = [ remove-capture-dont-move ] }
}
{
# speech dispatcher asks for too small latency and then underruns.
matches = [ { application.name = "~speech-dispatcher.*" } ]
actions = {
update-props = {
pulse.min.req = 512/48000 # 10.6ms
pulse.min.quantum = 512/48000 # 10.6ms
pulse.idle.timeout = 5 # pause after 5 seconds of underrun
}
}
}
#{
# matches = [ { application.process.binary = "Discord" } ]
# actions = { quirks = [ block-source-volume ] }
#}
]

371
env/.config/pipewire/pipewire.conf vendored Normal file
View File

@@ -0,0 +1,371 @@
# Daemon config file for PipeWire version "1.4.2" #
#
# Copy and edit this file in /etc/pipewire for system-wide changes
# or in ~/.config/pipewire for local changes.
#
# It is also possible to place a file with an updated section in
# /etc/pipewire/pipewire.conf.d/ for system-wide changes or in
# ~/.config/pipewire/pipewire.conf.d/ for local changes.
#
context.properties = {
## Configure properties in the system.
#library.name.system = support/libspa-support
#context.data-loop.library.name.system = support/libspa-support
#support.dbus = true
#link.max-buffers = 64
link.max-buffers = 16 # version < 3 clients can't handle more
#mem.warn-mlock = false
#mem.allow-mlock = true
#mem.mlock-all = false
#clock.power-of-two-quantum = true
#log.level = 2
#cpu.zero.denormals = false
#loop.rt-prio = -1 # -1 = use module-rt prio, 0 disable rt
#loop.class = data.rt
#thread.affinity = [ 0 1 ] # optional array of CPUs
#context.num-data-loops = 1 # -1 = num-cpus, 0 = no data loops
#
#context.data-loops = [
# { loop.rt-prio = -1
# loop.class = [ data.rt audio.rt ]
# #library.name.system = support/libspa-support
# thread.name = data-loop.0
# #thread.affinity = [ 0 1 ] # optional array of CPUs
# }
#]
core.daemon = true # listening for socket connections
core.name = pipewire-0 # core name and socket name
## Properties for the DSP configuration.
default.clock.rate = 192000
#default.clock.allowed-rates = [ 48000 ]
#default.clock.quantum = 1024
#default.clock.min-quantum = 32
#default.clock.max-quantum = 2048
#default.clock.quantum-limit = 8192
#default.clock.quantum-floor = 4
#default.video.width = 640
#default.video.height = 480
#default.video.rate.num = 25
#default.video.rate.denom = 1
#
#settings.check-quantum = false
#settings.check-rate = false
}
context.properties.rules = [
{ matches = [ { cpu.vm.name = !null } ]
actions = {
update-props = {
# These overrides are only applied when running in a vm.
default.clock.min-quantum = 1024
}
}
}
]
context.spa-libs = {
#<factory-name regex> = <library-name>
#
# Used to find spa factory names. It maps an spa factory name
# regular expression to a library name that should contain
# that factory.
#
audio.convert.* = audioconvert/libspa-audioconvert
avb.* = avb/libspa-avb
api.alsa.* = alsa/libspa-alsa
api.v4l2.* = v4l2/libspa-v4l2
api.libcamera.* = libcamera/libspa-libcamera
api.bluez5.* = bluez5/libspa-bluez5
api.vulkan.* = vulkan/libspa-vulkan
api.jack.* = jack/libspa-jack
support.* = support/libspa-support
video.convert.* = videoconvert/libspa-videoconvert
#filter.graph = filter-graph/libspa-filter-graph
#videotestsrc = videotestsrc/libspa-videotestsrc
#audiotestsrc = audiotestsrc/libspa-audiotestsrc
}
context.modules = [
#{ name = <module-name>
# ( args = { <key> = <value> ... } )
# ( flags = [ ( ifexists ) ( nofail ) ] )
# ( condition = [ { <key> = <value> ... } ... ] )
#}
#
# Loads a module with the given parameters.
# If ifexists is given, the module is ignored when it is not found.
# If nofail is given, module initialization failures are ignored.
# If condition is given, the module is loaded only when the context
# properties all match the match rules.
#
# Uses realtime scheduling to boost the audio thread priorities. This uses
# RTKit if the user doesn't have permission to use regular realtime
# scheduling. You can also clamp utilisation values to improve scheduling
# on embedded and heterogeneous systems, e.g. Arm big.LITTLE devices.
# use module.rt.args = { ... } to override the arguments.
{ name = libpipewire-module-rt
args = {
nice.level = -11
rt.prio = 88
#rt.time.soft = -1
#rt.time.hard = -1
#uclamp.min = 0
#uclamp.max = 1024
}
flags = [ ifexists nofail ]
condition = [ { module.rt = !false } ]
}
# The native communication protocol.
{ name = libpipewire-module-protocol-native
args = {
# List of server Unix sockets, and optionally permissions
#sockets = [ { name = "pipewire-0" }, { name = "pipewire-0-manager" } ]
}
}
# The profile module. Allows application to access profiler
# and performance data. It provides an interface that is used
# by pw-top and pw-profiler.
# use module.profiler.args = { ... } to override the arguments.
{ name = libpipewire-module-profiler
args = {
#profile.interval.ms = 0
}
condition = [ { module.profiler = !false } ]
}
# Allows applications to create metadata objects. It creates
# a factory for Metadata objects.
{ name = libpipewire-module-metadata
condition = [ { module.metadata = !false } ]
}
# Creates a factory for making devices that run in the
# context of the PipeWire server.
{ name = libpipewire-module-spa-device-factory
condition = [ { module.spa-device-factory = !false } ]
}
# Creates a factory for making nodes that run in the
# context of the PipeWire server.
{ name = libpipewire-module-spa-node-factory
condition = [ { module.spa-node-factory = !false } ]
}
# Allows creating nodes that run in the context of the
# client. Is used by all clients that want to provide
# data to PipeWire.
{ name = libpipewire-module-client-node
condition = [ { module.client-node = !false } ]
}
# Allows creating devices that run in the context of the
# client. Is used by the session manager.
{ name = libpipewire-module-client-device
condition = [ { module.client-device = !false } ]
}
# The portal module monitors the PID of the portal process
# and tags connections with the same PID as portal
# connections.
{ name = libpipewire-module-portal
flags = [ ifexists nofail ]
condition = [ { module.portal = !false } ]
}
# The access module can perform access checks and block
# new clients.
{ name = libpipewire-module-access
args = {
# Socket-specific access permissions
#access.socket = { pipewire-0 = "default", pipewire-0-manager = "unrestricted" }
# Deprecated legacy mode (not socket-based),
# for now enabled by default if access.socket is not specified
#access.legacy = true
}
condition = [ { module.access = !false } ]
}
# Makes a factory for wrapping nodes in an adapter with a
# converter and resampler.
{ name = libpipewire-module-adapter
condition = [ { module.adapter = !false } ]
}
# Makes a factory for creating links between ports.
# use module.link-factory.args = { ... } to override the arguments.
{ name = libpipewire-module-link-factory
args = {
#allow.link.passive = false
}
condition = [ { module.link-factory = !false } ]
}
# Provides factories to make session manager objects.
{ name = libpipewire-module-session-manager
condition = [ { module.session-manager = !false } ]
}
# Use libcanberra to play X11 Bell
{ name = libpipewire-module-x11-bell
args = {
#sink.name = "@DEFAULT_SINK@"
#sample.name = "bell-window-system"
#x11.display = null
#x11.xauthority = null
}
flags = [ ifexists nofail ]
condition = [ { module.x11.bell = !false } ]
}
# The JACK DBus detection module. When jackdbus is started, this
# will automatically make PipeWire become a JACK client.
# use module.jackdbus-detect.args = { ... } to override the arguments.
{ name = libpipewire-module-jackdbus-detect
args = {
#jack.library = libjack.so.0
#jack.server = null
#jack.client-name = PipeWire
#jack.connect = true
#tunnel.mode = duplex # source|sink|duplex
source.props = {
#audio.channels = 2
#midi.ports = 1
#audio.position = [ FL FR ]
# extra sink properties
}
sink.props = {
#audio.channels = 2
#midi.ports = 1
#audio.position = [ FL FR ]
# extra sink properties
}
}
flags = [ ifexists nofail ]
condition = [ { module.jackdbus-detect = !false } ]
}
]
context.objects = [
#{ factory = <factory-name>
# ( args = { <key> = <value> ... } )
# ( flags = [ ( nofail ) ] )
# ( condition = [ { <key> = <value> ... } ... ] )
#}
#
# Creates an object from a PipeWire factory with the given parameters.
# If nofail is given, errors are ignored (and no object is created).
# If condition is given, the object is created only when the context properties
# all match the match rules.
#
#{ factory = spa-node-factory args = { factory.name = videotestsrc node.name = videotestsrc node.description = videotestsrc node.param.Props = { patternType = 1 } } }
#{ factory = spa-device-factory args = { factory.name = api.jack.device foo=bar } flags = [ nofail ] }
#{ factory = spa-device-factory args = { factory.name = api.alsa.enum.udev } }
#{ factory = spa-node-factory args = { factory.name = api.alsa.seq.bridge node.name = Internal-MIDI-Bridge } }
#{ factory = adapter args = { factory.name = audiotestsrc node.name = my-test node.description = audiotestsrc node.param.Props = { live = false }} }
#{ factory = spa-node-factory args = { factory.name = api.vulkan.compute.source node.name = my-compute-source } }
# A default dummy driver. This handles nodes marked with the "node.always-process"
# property when no other driver is currently active. JACK clients need this.
{ factory = spa-node-factory
args = {
factory.name = support.node.driver
node.name = Dummy-Driver
node.group = pipewire.dummy
node.sync-group = sync.dummy
priority.driver = 200000
#clock.id = monotonic # realtime | tai | monotonic-raw | boottime
#clock.name = "clock.system.monotonic"
}
condition = [ { factory.dummy-driver = !false } ]
}
{ factory = spa-node-factory
args = {
factory.name = support.node.driver
node.name = Freewheel-Driver
priority.driver = 190000
node.group = pipewire.freewheel
node.sync-group = sync.dummy
node.freewheel = true
#freewheel.wait = 10
}
condition = [ { factory.freewheel-driver = !false } ]
}
# This creates a new Source node. It will have input ports
# that you can link, to provide audio for this source.
#{ factory = adapter
# args = {
# factory.name = support.null-audio-sink
# node.name = "my-mic"
# node.description = "Microphone"
# media.class = "Audio/Source/Virtual"
# audio.position = "FL,FR"
# monitor.passthrough = true
# }
#}
# This creates a single PCM source device for the given
# alsa device path hw:0. You can change source to sink
# to make a sink in the same way.
#{ factory = adapter
# args = {
# factory.name = api.alsa.pcm.source
# node.name = "alsa-source"
# node.description = "PCM Source"
# media.class = "Audio/Source"
# api.alsa.path = "hw:0"
# api.alsa.period-size = 1024
# api.alsa.headroom = 0
# api.alsa.disable-mmap = false
# api.alsa.disable-batch = false
# audio.format = "S16LE"
# audio.rate = 48000
# audio.channels = 2
# audio.position = "FL,FR"
# }
#}
# Use the metadata factory to create metadata and some default values.
#{ factory = metadata
# args = {
# metadata.name = my-metadata
# metadata.values = [
# { key = default.audio.sink value = { name = somesink } }
# { key = default.audio.source value = { name = somesource } }
# ]
# }
#}
]
context.exec = [
#{ path = <program-name>
# ( args = "<arguments>" | [ <arg1> <arg2> ... ] )
# ( condition = [ { <key> = <value> ... } ... ] )
#}
#
# Execute the given program with arguments.
# If condition is given, the program is executed only when the context
# properties all match the match rules.
#
# You can optionally start the session manager here,
# but it is better to start it as a systemd service.
# Run the session manager with -h for options.
#
#{ path = "/usr/bin/pipewire-media-session" args = ""
# condition = [ { exec.session-manager = !false } ] }
#
# You can optionally start the pulseaudio-server here as well
# but it is better to start it as a systemd service.
# It can be interesting to start another daemon here that listens
# on another address with the -a option (eg. -a tcp:4713).
#
#{ path = "/usr/bin/pipewire" args = [ "-c" "pipewire-pulse.conf" ]
# condition = [ { exec.pipewire-pulse = !false } ] }
]

157
env/.config/rmpc/config.ron vendored Normal file
View File

@@ -0,0 +1,157 @@
#![enable(implicit_some)]
#![enable(unwrap_newtypes)]
#![enable(unwrap_variant_newtypes)]
(
address: "127.0.0.1:6600",
password: None,
theme: Some("theme"),
cache_dir: None,
on_song_change: None,
volume_step: 5,
max_fps: 30,
scrolloff: 0,
wrap_navigation: false,
enable_mouse: true,
enable_config_hot_reload: true,
status_update_interval_ms: 1000,
rewind_to_start_sec: None,
reflect_changes_to_playlist: false,
select_current_song_on_change: false,
browser_song_sort: [Disc, Track, Artist, Title],
directories_sort: SortFormat(group_by_type: true, reverse: false),
album_art: (
method: Auto,
max_size_px: (width: 1200, height: 1200),
disabled_protocols: ["http://", "https://"],
vertical_align: Center,
horizontal_align: Center,
),
keybinds: (
global: {
":": CommandMode,
",": VolumeDown,
"s": Stop,
".": VolumeUp,
"<Tab>": NextTab,
"<S-Tab>": PreviousTab,
"1": SwitchToTab("Queue"),
"2": SwitchToTab("Directories"),
"3": SwitchToTab("Artists"),
"4": SwitchToTab("Album Artists"),
"5": SwitchToTab("Albums"),
"6": SwitchToTab("Playlists"),
"7": SwitchToTab("Search"),
"q": Quit,
">": NextTrack,
"p": TogglePause,
"<": PreviousTrack,
"f": SeekForward,
"z": ToggleRepeat,
"x": ToggleRandom,
"c": ToggleConsume,
"v": ToggleSingle,
"b": SeekBack,
"~": ShowHelp,
"u": Update,
"U": Rescan,
"I": ShowCurrentSongInfo,
"O": ShowOutputs,
"P": ShowDecoders,
"R": AddRandom,
},
navigation: {
"k": Up,
"j": Down,
"h": Left,
"l": Right,
"<Up>": Up,
"<Down>": Down,
"<Left>": Left,
"<Right>": Right,
"<C-k>": PaneUp,
"<C-j>": PaneDown,
"<C-h>": PaneLeft,
"<C-l>": PaneRight,
"<C-u>": UpHalf,
"N": PreviousResult,
"a": Add,
"A": AddAll,
"r": Rename,
"n": NextResult,
"g": Top,
"<Space>": Select,
"<C-Space>": InvertSelection,
"G": Bottom,
"<CR>": Confirm,
"i": FocusInput,
"J": MoveDown,
"<C-d>": DownHalf,
"/": EnterSearch,
"<C-c>": Close,
"<Esc>": Close,
"K": MoveUp,
"D": Delete,
"B": ShowInfo,
},
queue: {
"D": DeleteAll,
"<CR>": Play,
"<C-s>": Save,
"a": AddToPlaylist,
"d": Delete,
"C": JumpToCurrent,
"X": Shuffle,
},
),
search: (
case_sensitive: false,
mode: Contains,
tags: [
(value: "any", label: "Any Tag"),
(value: "artist", label: "Artist"),
(value: "album", label: "Album"),
(value: "albumartist", label: "Album Artist"),
(value: "title", label: "Title"),
(value: "filename", label: "Filename"),
(value: "genre", label: "Genre"),
],
),
artists: (
album_display_mode: SplitByDate,
album_sort_by: Date,
),
tabs: [
(
name: "Queue",
pane: Split(
direction: Horizontal,
panes: [(size: "20%", pane: Pane(AlbumArt)), (size: "80%", pane: Pane(Queue))],
),
),
(
name: "Directories",
pane: Pane(Directories),
),
(
name: "Artists",
pane: Pane(Artists),
),
(
name: "Album Artists",
pane: Pane(AlbumArtists),
),
(
name: "Albums",
pane: Pane(Albums),
),
(
name: "Playlists",
pane: Pane(Playlists),
),
(
name: "Search",
pane: Pane(Search),
),
],
)

129
env/.config/rmpc/themes/theme.ron vendored Normal file
View File

@@ -0,0 +1,129 @@
#![enable(implicit_some)]
#![enable(unwrap_newtypes)]
#![enable(unwrap_variant_newtypes)]
(
default_album_art_path: None,
show_song_table_header: true,
draw_borders: true,
format_tag_separator: " | ",
browser_column_widths: [20, 38, 42],
background_color: None,
text_color: None,
header_background_color: None,
modal_background_color: None,
preview_label_style: (fg: "yellow"),
preview_metadata_group_style: (fg: "yellow", modifiers: "Bold"),
tab_bar: (
active_style: (fg: "black", bg: "magenta", modifiers: "Bold"),
inactive_style: (),
),
highlighted_item_style: (fg: "magenta", modifiers: "Bold"),
current_item_style: (fg: "black", bg: "magenta", modifiers: "Bold"),
borders_style: (fg: "magenta"),
highlight_border_style: (fg: "magenta"),
symbols: (song: "S", dir: "D", playlist: "P", marker: "M", ellipsis: "..."),
progress_bar: (
symbols: ["", "", "⭘", " ", " "],
track_style: (fg: "#1e2030"),
elapsed_style: (fg: "magenta"),
thumb_style: (fg: "magenta", bg: "#1e2030"),
),
scrollbar: (
symbols: ["│", "█", "▲", "▼"],
track_style: (),
ends_style: (),
thumb_style: (fg: "magenta"),
),
song_table_format: [
(
prop: (kind: Property(Artist),
default: (kind: Text("Unknown"))
),
width: "20%",
),
(
prop: (kind: Property(Title),
default: (kind: Text("Unknown"))
),
width: "35%",
),
(
prop: (kind: Property(Album), style: (fg: "white"),
default: (kind: Text("Unknown Album"), style: (fg: "white"))
),
width: "30%",
),
(
prop: (kind: Property(Duration),
default: (kind: Text("-"))
),
width: "15%",
alignment: Right,
),
],
header: (
rows: [
(
left: [
(kind: Text("["), style: (fg: "yellow", modifiers: "Bold")),
(kind: Property(Status(State)), style: (fg: "yellow", modifiers: "Bold")),
(kind: Text("]"), style: (fg: "yellow", modifiers: "Bold"))
],
center: [
(kind: Property(Song(Title)), style: (modifiers: "Bold"),
default: (kind: Text("No Song"), style: (modifiers: "Bold"))
)
],
right: [
(kind: Property(Widget(ScanStatus)), style: (fg: "magenta")),
(kind: Property(Widget(Volume)), style: (fg: "magenta"))
]
),
(
left: [
(kind: Property(Status(Elapsed))),
(kind: Text(" / ")),
(kind: Property(Status(Duration))),
(kind: Text(" (")),
(kind: Property(Status(Bitrate))),
(kind: Text(" kbps)"))
],
center: [
(kind: Property(Song(Artist)), style: (fg: "yellow", modifiers: "Bold"),
default: (kind: Text("Unknown"), style: (fg: "yellow", modifiers: "Bold"))
),
(kind: Text(" - ")),
(kind: Property(Song(Album)),
default: (kind: Text("Unknown Album"))
)
],
right: [
(
kind: Property(Widget(States(
active_style: (fg: "white", modifiers: "Bold"),
separator_style: (fg: "white")))
),
style: (fg: "dark_gray")
),
]
),
],
),
browser_song_format: [
(
kind: Group([
(kind: Property(Track)),
(kind: Text(" ")),
])
),
(
kind: Group([
(kind: Property(Artist)),
(kind: Text(" - ")),
(kind: Property(Title)),
]),
default: (kind: Property(Filename))
),
],
)

View File

@@ -13,3 +13,14 @@
window, mainbox{
//border-radius: 20px;
}
configuration {
kb-row-up: "Up,Control+k,Shift+Tab,Shift+ISO_Left_Tab";
kb-row-down: "Down,Control+j";
kb-accept-entry: "Control+m,Return,KP_Enter";
terminal: "wezterm";
kb-remove-to-eol: "Control+Shift+e";
/*kb-mode-next: "Shift+Right,Control+Tab,Control+l";*/
kb-mode-previous: "Shift+Left,Control+Shift+Tab,Control+h";
kb-remove-char-back: "BackSpace";
}

2
env/.config/swapscape.map vendored Normal file
View File

@@ -0,0 +1,2 @@
keycode 1 = Caps_Lock
keycode 58 = Escape

249
env/.config/sway/config vendored Normal file
View File

@@ -0,0 +1,249 @@
# Default config for sway
#
# Copy this to ~/.config/sway/config and edit it to your liking.
#
# Read `man 5 sway` for a complete reference.
exec dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway
exec ~/.local/bin/system/start-scripts/autostart.sh
### Variables
#
# Logo key. Use Mod1 for Alt.
set $mod Mod4
# Home row direction keys, like vim
set $left h
set $down j
set $up k
set $right l
# Your preferred terminal emulator
set $term wezterm
set $term2 urxvt
# Your preferred application launcher
set $menu rofi -show drun
### Output configuration
output "HDMI-A-1" scale 0.7
output "DP-1" scale 0.7
workspace 1 output HDMI-A-1
workspace 2 output HDMI-A-1
workspace 3 output HDMI-A-1
workspace 4 output HDMI-A-1
workspace 5 output HDMI-A-1
workspace 6 output HDMI-A-1
workspace 7 output HDMI-A-1
workspace 8 output HDMI-A-1
workspace 9 output HDMI-A-1
workspace 10 output HDMI-A-1
workspace 11 output DP-1
workspace 12 output DP-1
workspace 13 output DP-1
workspace 14 output DP-1
workspace 15 output DP-1
workspace 16 output DP-1
workspace 17 output DP-1
workspace 18 output DP-1
workspace 19 output DP-1
workspace 20 output DP-1
# or input <identifier>
input "type:keyboard" {
xkb_layout us,de
xkb_variant ,nodeadkeys
xkb_options caps:swapescape
}
#
# Basics:
#
bindsym $mod+Return exec $term
bindsym $mod+Shift+Return exec $term2
bindsym $mod+q kill
bindsym $mod+d exec $menu
bindsym $mod+SHIFT+D exec $HOME/.local/bin/system/rofi-search-web.sh
floating_modifier $mod normal
#toggle border
bindsym $mod+Shift+b border toggle
# Reload the configuration file
bindsym $mod+Shift+r reload
# Exit sway (logs you out of your Wayland session)
bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'
bindsym $mod+Escape exec grim -g "$(slurp -b 00000088 -c cba6f7; sleep 0.5)" - | wl-copy
bindsym $mod+Print exec grim -g "$(slurp -b 00000088 -c cba6f7; sleep 0.5)" - > ~/out.png
bindsym $mod+Shift+Escape exec grim -o HDMI-A-1 - | wl-copy
#
# Moving around:
#
# Move your focus around
bindsym $mod+$left focus left
bindsym $mod+$down focus down
bindsym $mod+$up focus up
bindsym $mod+$right focus right
# Move the focused window with the same, but add Shift
bindsym $mod+Shift+$left move left
bindsym $mod+Shift+$down move down
bindsym $mod+Shift+$up move up
bindsym $mod+Shift+$right move right
#
# Workspaces:
#
# cycle
bindsym $mod+n workspace next
bindsym $mod+b workspace prev
# Switch to workspace
bindsym $mod+1 workspace number 1
bindsym $mod+2 workspace number 2
bindsym $mod+3 workspace number 3
bindsym $mod+4 workspace number 4
bindsym $mod+5 workspace number 5
bindsym $mod+6 workspace number 6
bindsym $mod+7 workspace number 7
bindsym $mod+8 workspace number 8
bindsym $mod+9 workspace number 9
bindsym $mod+0 workspace number 10
# Move focused container to workspace
bindsym $mod+Shift+1 move container to workspace number 1
bindsym $mod+Shift+2 move container to workspace number 2
bindsym $mod+Shift+3 move container to workspace number 3
bindsym $mod+Shift+4 move container to workspace number 4
bindsym $mod+Shift+5 move container to workspace number 5
bindsym $mod+Shift+6 move container to workspace number 6
bindsym $mod+Shift+7 move container to workspace number 7
bindsym $mod+Shift+8 move container to workspace number 8
bindsym $mod+Shift+9 move container to workspace number 9
bindsym $mod+Shift+0 move container to workspace number 10
# Note: workspaces can have any name you want, not just numbers.
# We just use 1-10 as the default.
mode "mon2" {
bindsym $mod+1 workspace number 11
bindsym $mod+2 workspace number 12
bindsym $mod+3 workspace number 13
bindsym $mod+4 workspace number 14
bindsym $mod+5 workspace number 15
bindsym $mod+6 workspace number 16
bindsym $mod+7 workspace number 17
bindsym $mod+8 workspace number 18
bindsym $mod+9 workspace number 19
bindsym $mod+0 workspace number 20
bindsym $mod+Shift+1 move container to workspace number 11
bindsym $mod+Shift+2 move container to workspace number 12
bindsym $mod+Shift+3 move container to workspace number 13
bindsym $mod+Shift+4 move container to workspace number 14
bindsym $mod+Shift+5 move container to workspace number 15
bindsym $mod+Shift+6 move container to workspace number 16
bindsym $mod+Shift+7 move container to workspace number 17
bindsym $mod+Shift+8 move container to workspace number 18
bindsym $mod+Shift+9 move container to workspace number 19
bindsym $mod+Shift+0 move container to workspace number 20
bindsym $mod+o mode "default"
}
bindsym $mod+o mode "mon2"
#
# Layout stuff:
#
bindsym $mod+Control+l splith
bindsym $mod+Control+j splitv
# Switch the current container between different layout styles
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
# Make the current focus fullscreen
bindsym $mod+f fullscreen
# Toggle the current focus between tiling and floating mode
bindsym $mod+space floating toggle
# Swap focus between the tiling area and the floating area
bindsym $mod+Shift+space focus mode_toggle
# Move focus to the parent container
bindsym $mod+a focus parent
#
# Scratchpad:
#
bindsym $mod+Shift+minus move scratchpad
bindsym $mod+minus scratchpad show
#
# Resizing containers:
#
mode "resize" {
bindsym $left resize shrink width 20px
bindsym $down resize grow height 20px
bindsym $up resize shrink height 20px
bindsym $right resize grow width 20px
# Return to default mode
bindsym Return mode "default"
bindsym Escape mode "default"
bindsym $mod+r mode "default"
}
bindsym $mod+r mode "resize"
#
# Utilities:
#
# Special keys to adjust volume via PulseAudio
bindsym --locked XF86AudioMute exec pactl set-sink-mute \@DEFAULT_SINK@ toggle
bindsym --locked XF86AudioLowerVolume exec pactl set-sink-volume \@DEFAULT_SINK@ -5%
bindsym --locked XF86AudioRaiseVolume exec pactl set-sink-volume \@DEFAULT_SINK@ +5%
bindsym --locked XF86AudioMicMute exec pactl set-source-mute \@DEFAULT_SOURCE@ toggle
bindsym --locked XF86AudioPlay exec playerctl play-pause
# Special keys to adjust brightness via brightnessctl
bindsym --locked XF86MonBrightnessDown exec brightnessctl set 5%-
bindsym --locked XF86MonBrightnessUp exec brightnessctl set 5%+
# Special key to take a screenshot with grim
bindsym Print exec grim
client.focused #8568e6 #222222 #8568e6 #e598ff #8568e6
client.unfocused #222222 #222222 #8568e6 #e598ff #222222
default_border pixel 1
default_floating_border pixel 1
gaps inner 0
# Gajim
for_window [title="Gajim"] \
border pixel
# Vesktop
for_window [class="vesktop"] \
border none
# discord
for_window [app_id="discord"] \
border none
# Mumble
for_window [title="Mumble"] \
border pixel
# Steam Friends List
#for_window [title="Friends List"] \
# floating enable, \
# resize set 1000 1000, \
# move position 0 0
for_window [app_id="showmethekey-gtk"] \
floating enable, \
sticky enable, \
border none, \
move position 357 1660, \
resize set 1160 50, \
# im-emoji-picker window
no_focus [title="im-emoji-picker"]

243
env/.config/sway/config.bak vendored Normal file
View File

@@ -0,0 +1,243 @@
# Default config for sway
#
# Copy this to ~/.config/sway/config and edit it to your liking.
#
# Read `man 5 sway` for a complete reference.
exec dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway
exec ~/.local/bin/system/start-scripts/autostart.sh
### Variables
#
# Logo key. Use Mod1 for Alt.
set $mod Mod4
# Home row direction keys, like vim
set $left h
set $down j
set $up k
set $right l
# Your preferred terminal emulator
set $term wezterm
# Your preferred application launcher
set $menu rofi -show drun
### Output configuration
#
# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
output * bg /usr/share/backgrounds/sway/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: swaymsg -t get_outputs
output "HDMI-A-1" scale 0.7
### Idle configuration
#
# Example configuration:
#
# exec swayidle -w \
# timeout 300 'swaylock -f -c 000000' \
# timeout 600 'swaymsg "output * power off"' resume 'swaymsg "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 "2:14:SynPS/2_Synaptics_TouchPad" {
# dwt enabled
# tap enabled
# natural_scroll enabled
# middle_emulation enabled
# }
#
# You can get the names of your inputs by running: swaymsg -t get_inputs
# Read `man 5 sway-input` for more information about this section.
# or input <identifier>
input "type:keyboard" {
xkb_layout us,de
xkb_variant ,nodeadkeys
xkb_options caps:swapescape
}
### Key bindings
#
# Basics:
#
# Start a terminal
bindsym $mod+Return exec $term
# Kill focused window
bindsym $mod+q kill
# Start your launcher
bindsym $mod+d exec $menu
# 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
# Exit sway (logs you out of your Wayland session)
bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'
bindsym $mod+Escape exec grim -g "$(slurp -b 00000088 -c cba6f7; sleep 0.5)" - | wl-copy
bindsym $mod+Shift+Escape exec grim -o HDMI-A-1 - | wl-copy
#
# Moving around:
#
# Move your focus around
bindsym $mod+$left focus left
bindsym $mod+$down focus down
bindsym $mod+$up focus up
bindsym $mod+$right focus right
# Or use $mod+[up|down|left|right]
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# Move the focused window with the same, but add Shift
bindsym $mod+Shift+$left move left
bindsym $mod+Shift+$down move down
bindsym $mod+Shift+$up move up
bindsym $mod+Shift+$right move right
# Ditto, with arrow keys
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
#
# Workspaces:
#
# Switch to workspace
bindsym $mod+1 workspace number 1
bindsym $mod+2 workspace number 2
bindsym $mod+3 workspace number 3
bindsym $mod+4 workspace number 4
bindsym $mod+5 workspace number 5
bindsym $mod+6 workspace number 6
bindsym $mod+7 workspace number 7
bindsym $mod+8 workspace number 8
bindsym $mod+9 workspace number 9
bindsym $mod+0 workspace number 10
# Move focused container to workspace
bindsym $mod+Shift+1 move container to workspace number 1
bindsym $mod+Shift+2 move container to workspace number 2
bindsym $mod+Shift+3 move container to workspace number 3
bindsym $mod+Shift+4 move container to workspace number 4
bindsym $mod+Shift+5 move container to workspace number 5
bindsym $mod+Shift+6 move container to workspace number 6
bindsym $mod+Shift+7 move container to workspace number 7
bindsym $mod+Shift+8 move container to workspace number 8
bindsym $mod+Shift+9 move container to workspace number 9
bindsym $mod+Shift+0 move container to workspace number 10
# Note: workspaces can have any name you want, not just numbers.
# We just use 1-10 as the default.
#
# Layout stuff:
#
# You can "split" the current object of your focus with
# $mod+b or $mod+v, for horizontal and vertical splits
# respectively.
bindsym $mod+b splith
bindsym $mod+v splitv
# Switch the current container between different layout styles
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
# Make the current focus fullscreen
bindsym $mod+f fullscreen
# Toggle the current focus between tiling and floating mode
bindsym $mod+space floating toggle
# Swap focus between the tiling area and the floating area
bindsym $mod+Shift+space focus mode_toggle
# Move focus to the parent container
bindsym $mod+a focus parent
#
# Scratchpad:
#
# Sway 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+minus 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+minus scratchpad show
#
# Resizing containers:
#
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 10px
bindsym $down resize grow height 10px
bindsym $up resize shrink height 10px
bindsym $right resize grow width 10px
# Ditto, with arrow keys
bindsym Left resize shrink width 10px
bindsym Down resize grow height 10px
bindsym Up resize shrink height 10px
bindsym Right resize grow width 10px
# Return to default mode
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+r mode "resize"
#
# Utilities:
#
# Special keys to adjust volume via PulseAudio
bindsym --locked XF86AudioMute exec pactl set-sink-mute \@DEFAULT_SINK@ toggle
bindsym --locked XF86AudioLowerVolume exec pactl set-sink-volume \@DEFAULT_SINK@ -5%
bindsym --locked XF86AudioRaiseVolume exec pactl set-sink-volume \@DEFAULT_SINK@ +5%
bindsym --locked XF86AudioMicMute exec pactl set-source-mute \@DEFAULT_SOURCE@ toggle
# Special keys to adjust brightness via brightnessctl
bindsym --locked XF86MonBrightnessDown exec brightnessctl set 5%-
bindsym --locked XF86MonBrightnessUp exec brightnessctl set 5%+
# Special key to take a screenshot with grim
bindsym Print exec grim
#
# Status Bar:
#
# Read `man 5 sway-bar` for more information about this section.
bar {
position bottom
# When the status_command prints a new line to stdout, swaybar 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
}
}
include /etc/sway/config.d/*

View File

@@ -2,16 +2,13 @@
set -g default-terminal "screen-256color"
set -g terminal-overrides 'screen*:colors=256'
set -g default-shell /bin/zsh
set -g default-command /bin/zsh
set -gq allow-passthrough on
set -g visual-activity off
#set -g status-interval 3
unbind C-b
set-option -g prefix C-Space
set-option -g prefix C-space
# set vim mode
set-window-option -g mode-keys vi
@@ -27,11 +24,12 @@ unbind -T copy-mode-vi MouseDragEnd1Pane
# bind r to reload config
unbind r
bind r source-file ~/.tmux.conf
bind r source-file ~/.config/tmux/tmux.conf
# start panes and windows 1
set -g base-index 1
set -g pane-base-index 1
setw -g pane-base-index 1
set -g renumber-windows on # renumber windows when one is closed
# nav rebinds
@@ -48,9 +46,9 @@ bind -r m resize-pane -Z # maximize
# pane joining
bind J switch-client -T pane-management
bind-key -T pane-management \" command-prompt -p "join pane from:" "join-pane -s '%%' -h"
bind-key -T pane-management % command-prompt -p "join pane from:" "join-pane -s '%%' -h"
bind-key -T pane-management H command-prompt -p "join pane from:" "join-pane -s '%%' -f -h"
bind-key -T pane-management % command-prompt -p "join pane from:" "join-pane -s '%%' -v"
bind-key -T pane-management \" command-prompt -p "join pane from:" "join-pane -s '%%' -v"
bind-key -T pane-management V command-prompt -p "join pane from:" "join-pane -s '%%' -f -v"
bind-key -T pane-management B break-pane
bind-key -T pane-management S command-prompt -p "send pane to:" "join-pane -t '%%'"
@@ -59,14 +57,15 @@ bind-key -r H split-window -h -f
# colors/theme
set -g status-bg "#333333"
# using vars in this cause the  chars to not use the color
set -g status-bg "#222222"
set -g status-fg "#f1f1f1"
set -wg mode-style bg="#333334"
set -g pane-border-style fg='#333333'
set -wg mode-style bg="#222222"
set -g pane-border-style fg='#222222'
set -g pane-active-border-style fg='#a030f0'
active_window_fg='#e080f0'
set -g status-left "#[fg=${session_fg},bold,bg=${bg}][ #S] "
set -g status-left "#[fg=#f1f1f1,bold,bg=#4020af]  #S #[fg=#4020af,bg=#222222] "
set -g status-left-length 40
set -g window-status-current-format "#[fg=${active_window_fg},bg=default] #I:#W"
set -g window-status-format "#[fg=${default_fg},bg=default]#I:#W"
# set -g window-status-last-style "fg=${default_fg},bg=default"
set -g window-status-current-format "#[fg=${active_window_fg},bg=#222222]#I:#W #[fg=#f1f1f1,bg=#222222]"
set -g window-status-format "#[fg=#f1f1f1,bg=#222222]#I:#W #[fg=#f1f1f1,bg=#222222]"
set -g status-right '#[fg=#4020af,bg=#222222]#[fg=#f1f1f1,bg=#4020af] @#H %H:%M %d-%b-%y'

View File

@@ -1,15 +1,15 @@
{
"layer": "top",
"position": "bottom",
"modules-left": ["hyprland/workspaces"],
//"modules-center": ["clock", ], //"custom/weather"],
"modules-left": [ "hyprland/workspaces", "sway/workspaces", "custom/ws_end_arrow", "sway/mode" ],
"modules-right": [
"custom/mod_end_arrow",
"custom/mic",
"pulseaudio",
//"backlight",
"battery",
"custom/wifi",
"network",
"cpu",
"memory",
@@ -22,53 +22,119 @@
"custom/power"
],
"custom/ws_end_arrow":{
"format": "",
"tooltip": false
},
"custom/mod_end_arrow":{
"format": "",
"tooltip": false
},
"hyprland/workspaces": {
//"format": "{name}: {icon}",
//"all-outputs":true,
"format": "{icon}",
"format": "{icon}",
"format-icons": {
/*
"1": "",
"2": "",
"3": "",
"4": "",
"5": ""
"5":"  ",
*/
"1":"  ",
"2":"  ",
"3":"  ",
"4":"  ",
"5":"  ",
"6":"  ",
"7":"  ",
"8":"  ",
"9":"  ",
"1":"  ",
"2":"  ",
"3":"  ",
"4":"  ",
"5": " ",
"6":"  ",
"7":"  ",
"8":"  ",
"9":"  ",
"10":"  ",
"11":"  ",
"12":"  ",
"13":"  ",
"14":"  ",
"15":"  ",
"16":"  ",
"17":"  ",
"18":"  ",
"19":"  ",
"11":"  ",
"12":"  ",
"13":"  ",
"14":"  ",
"15":"  ",
"16":"  ",
"17":"  ",
"18":"  ",
"19":"  ",
"20":"  "
},
/*
"persistent-workspaces": {
"1": [], // Always show a workspace with name '3', on all outputs if it does not exists
"2": [],
"3": [],
"4": [],
"5": [],
"6": [],
"7": [],
"8": [],
"9": [],
"10": []
"1": ["HDMI-A-1"],
"2": ["HDMI-A-1"],
"3": ["HDMI-A-1"],
"4": ["HDMI-A-1"],
"5": ["HDMI-A-1"],
"6": ["HDMI-A-1"],
"7": ["HDMI-A-1"],
"8": ["HDMI-A-1"],
"9": ["HDMI-A-1"],
"10": ["HDMI-A-1"],
"11": ["DP-1"],
"12": ["DP-1"],
"13": ["DP-1"],
"14": ["DP-1"],
"15": ["DP-1"],
"16": ["DP-1"],
"17": ["DP-1"],
"18": ["DP-1"],
"19": ["DP-1"],
"20": ["DP-1"]
},
"sort-by-name": true
},
"sway/workspaces": {
"format": "{icon}",
"format-icons": {
"1":"  ",
"2":"  ",
"3":"  ",
"4":"  ",
"5":"  ",
"6":"  ",
"7":"  ",
"8":"  ",
"9":"  ",
"10":"  ",
"11":"  ",
"12":"  ",
"13":"  ",
"14":"  ",
"15":"  ",
"16":"  ",
"17":"  ",
"18":"  ",
"19":"  ",
"20":"  "
},
"persistent-workspaces": {
"1": ["HDMI-A-1"],
"2": ["HDMI-A-1"],
"3": ["HDMI-A-1"],
"4": ["HDMI-A-1"],
"5": ["HDMI-A-1"],
"6": ["HDMI-A-1"],
"7": ["HDMI-A-1"],
"8": ["HDMI-A-1"],
"9": ["HDMI-A-1"],
"10": ["HDMI-A-1"],
"11": ["DP-1"],
"12": ["DP-1"],
"13": ["DP-1"],
"14": ["DP-1"],
"15": ["DP-1"],
"16": ["DP-1"],
"17": ["DP-1"],
"18": ["DP-1"],
"19": ["DP-1"],
"20": ["DP-1"]
},
*/
"sort-by-name": true
},
@@ -90,15 +156,15 @@
"clock": {
"timezone": "America/Chicago",
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"format": "{:%m/%d/%Y - %I:%M:%S}",
"format": "  {:%a %m/%d/%Y %I:%M:%S}",
"interval": 1
},
"network": {
"interface": "wlan0",
"format-wifi": "󰤢 {bandwidthDownBits}",
"format-ethernet": "󰈀 {bandwidthDownBits}",
"format-disconnected": "󰤠 No Network",
"format-wifi": " 󰤢 {bandwidthDownBits}",
"format-ethernet": " 󰈀 {bandwidthDownBits}",
"format-disconnected": " 󰤠 No Network",
"interval": 5,
"tooltip": true,
"tooltip-format-wifi": "{essid} ({signalStrength}%) ",
@@ -108,36 +174,35 @@
"cpu": {
"interval": 1,
"format": " {icon0}{icon1}{icon2}{icon3} {usage:>2}%",
"format": " {icon0}{icon1}{icon2}{icon3} {usage:>2}%",
"format-icons": ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"]
},
"memory": {
"interval": 30,
"format": " {used:0.1f}G/{total:0.1f}G"
},
"custom/uptime": {
"format": "{}",
"interval": 1600,
"exec": "sh -c '(uptime -p)'"
"format": " {used:0.1f}G/{total:0.1f}G"
},
"pulseaudio": {
"format": "{icon} {volume}%",
"format-muted": "",
"format-muted": "",
"format-icons": {
"default": ["", "", " "]
"default": ["", "", " "]
},
"on-click": "pavucontrol"
},
"custom/power": {
"tooltip": false,
"on-click": "wlogout &",
"on-click": "~/.config/wlogout/wlogout.sh",
"format": "⏻"
},
"custom/lock": {
"format": "  ",
"on-click": "hyprlock"
},
"custom/docker": {
"format": "{}",
"return-type": "json",
@@ -147,7 +212,7 @@
},
"custom/weather": {
"format": "{}",
"format": "{}",
"tooltip": true,
"interval": 1800,
"exec": "$(pwd)/scripts/weather-stats/weather-stats",
@@ -155,13 +220,13 @@
},
"custom/rss": {
"format": " {}",
"format": " {}",
"interval": 3,
"exec": "/usr/bin/newsboat -x print-unread|sed 's/\\s.*//; s/Error:/IA/'"
"exec": "/usr/bin/newsboat -x print-unread|sed 's/\\s.*//; s/Error:/E/'"
},
"custom/disc": {
"format": " {}",
"format": " {}",
"interval": 20,
"exec": "df -h -x=used /dev/mapper/artix-root | sed '1d' | awk '{print $4}'| sed 's/[^0-9]*//g'"
},
@@ -173,8 +238,8 @@
},
"custom/wifi": {
"format": "{}",
"format": "{}",
"interval": 1000,
"exec": "sed \"s/down/\\:\\(/;s/up/\\:\\)/\" /sys/class/net/$wifi_device/operstate"
"exec": "sed 's/down/\\:\\(/;s/up/\\:\\)/' /sys/class/net/wlan0/operstate"
}
}

View File

@@ -31,6 +31,11 @@
border-radius: 5px;
}
#workspaces button.focused {
color: #00c5ba;
border-radius: 5px;
}
button {
background: transparent;
}
@@ -160,4 +165,4 @@ button {
#custom-weather.error {
color: #263640; /* Red */
}
}

View File

@@ -2,13 +2,14 @@ local wezterm = require 'wezterm'
local colors= require 'colors'
local config = {}
config.default_prog = { 'zsh', '-l' } --config.font = wezterm.font 'Classic Console' config.font_size = 15 config.font = wezterm.font 'Source Code Pro'
--config.font = wezterm.font 'Classic Console' config.font_size = 15 config.font = wezterm.font 'Source Code Pro'
config.set_environment_variables = {
wezterm = 'yes',
}
config.enable_tab_bar = false
config.font = wezterm.font_with_fallback {
'B612 Mono',
--'Inconsolata',
-- 'CozetteVector', --has weird offset with japanese. きki becomes せse and vice versa
'JetBrainsMono',
'JetBrainsMono Nerd Font',
'JetBrainsMono Nerd Font Mono',
@@ -28,4 +29,6 @@ config.unix_domains = {
},
}
config.front_end = "OpenGL"
return config

View File

@@ -0,0 +1,39 @@
monitor.alsa.rules = [
{
matches = [
{
# Matches all sources
node.name = "~alsa_input.*"
},
{
# Matches all sinks
node.name = "~alsa_output.*"
}
]
actions = {
update-props = {
session.suspend-timeout-seconds = 0
}
}
}
]
# bluetooth devices
monitor.bluez.rules = [
{
matches = [
{
# Matches all sources
node.name = "~bluez_input.*"
},
{
# Matches all sinks
node.name = "~bluez_output.*"
}
]
actions = {
update-props = {
session.suspend-timeout-seconds = 0
}
}
}
]

24
env/.config/wlogout/layout vendored Normal file
View File

@@ -0,0 +1,24 @@
{
"label" : "shutdown",
"action" : "loginctl poweroff",
"text" : "Shutdown",
"keybind" : "s"
}
{
"label" : "reboot",
"action" : "loginctl reboot",
"text" : "Reboot",
"keybind" : "r"
}
{
"label" : "logout",
"action" : "loginctl kill-session $XDG_SESSION_ID",
"text" : "Logout",
"keybind" : "e"
}
{
"label" : "lock",
"action" : "hyprlock",
"text" : "Lock",
"keybind" : "l"
}

52
env/.config/wlogout/style.css vendored Normal file
View File

@@ -0,0 +1,52 @@
/* ----------- 💫 https://github.com/JaKooLit 💫 -------- */
@define-color foreground #be9eda;
@define-color color6 #834ABD;
window {
font-family: b612;
font-size: 16pt;
color: @foreground; /* text */
background-color: rgba(24, 27, 32, 0.2);
}
button {
background-repeat: no-repeat;
background-position: center;
background-size: 20%;
background-color: transparent;
animation: gradient_f 20s ease-in infinite;
transition: all 0.3s ease-in;
box-shadow: 0 0 10px 2px transparent;
border-radius: 36px;
margin: 10px;
}
button:focus {
box-shadow: none;
background-size : 20%;
}
button:hover {
background-size: 50%;
box-shadow: 0 0 10px 3px rgba(0,0,0,.4);
background-color: @color6;
color: transparent;
transition: all 0.3s cubic-bezier(.55, 0.0, .28, 1.682), box-shadow 0.5s ease-in;
}
#lock {
background-image: image(url("/usr/share/wlogout/icons/lock.png"), url("/usr/local/share/wlogout/icons/lock.png"));
}
#logout {
background-image: image(url("/usr/share/wlogout/icons/logout.png"), url("/usr/local/share/wlogout/icons/logout.png"));
}
#shutdown {
background-image: image(url("/usr/share/wlogout/icons/shutdown.png"), url("/usr/local/share/wlogout/icons/shutdown.png"));
}
#reboot {
background-image: image(url("/usr/share/wlogout/icons/reboot.png"), url("/usr/local/share/wlogout/icons/reboot.png"));
}

15
env/.config/wlogout/wlogout.sh vendored Executable file
View File

@@ -0,0 +1,15 @@
#!/usr/bin/env bash
# https://github.com/zDyanTB/HyprNova/blob/master/.config/hypr/scripts/wlogout.sh
A_1080=1000
B_1080=1000
# Check if wlogout is already running
if pgrep -x "wlogout" > /dev/null; then
pkill -x "wlogout"
exit 0
fi
# Detect monitor resolution and scaling factor
resolution=$(hyprctl -j monitors | jq -r '.[] | select(.focused==true) | .height / .scale' | awk -F'.' '{print $1}')
hypr_scale=$(hyprctl -j monitors | jq -r '.[] | select(.focused==true) | .scale')
wlogout --protocol layer-shell -b 4 -T $(awk "BEGIN {printf \"%.0f\", $A_1080 * 1080 * $hypr_scale / $resolution}") -B $(awk "BEGIN {printf \"%.0f\", $B_1080 * 1080 * $hypr_scale / $resolution}") &

13
env/.local/bin/scripts/autoport_mc.sh vendored Executable file
View File

@@ -0,0 +1,13 @@
#!/bin/bash
# this finds the log file from a picked instance using rofi. then fords traffic thorugh 25565
if [ -z "$LOG_FILE" ]; then
choice="$HOME/stuff/minecraft/polymc/instances/$(ls ~/stuff/minecraft/polymc/instances | rofi -dmenu -p "Instance")"
LOG_FILE="$(find "$choice" -mindepth 1 -maxdepth 1 -type d | grep "minecraft$")/logs/latest.log"
fi
setport="$(cat "$LOG_FILE" | grep "Started on" | sed 's/.*Started on //' | tail -n 1)"
echo $setport
if [ "$setport" ]; then
doas socat TCP6-LISTEN:25565,fork TCP4:127.0.0.1:$setport
fi

21
env/.local/bin/scripts/backup/backup-flash vendored Executable file
View File

@@ -0,0 +1,21 @@
cd ~
fsync () {
# t?
rsync -RUuavn --delete-after $exclude $syncfile "$target"
printf "===commit these changes?\n"
read - "y/n: " uinput
if [ "$uinput" != "n" ] && [ "$uinput" != "N" ]; then
printf "\n\n\n"
rsync -RUuav --progress --delete-after $exclude $syncfile "$target"
printf "\n===end sync\n---------\n\n"
fi
}
syncfile="stuff/notes"
#sync game stuff
target="/home/iceyrazor/u"
exclude=""
fsync

View File

@@ -0,0 +1,21 @@
cd ~/stuff/scripts
fsync () {
# t?
rsync -RUuavn --delete-after $exclude $syncfile "$target"
printf "===commit these changes?\n"
read - "y/n: " uinput
if [ "$uinput" != "n" ] && [ "$uinput" != "N" ]; then
printf "\n\n\n"
rsync -RUuav --progress --delete-after $exclude $syncfile "$target"
printf "\n===end sync\n---------\n\n"
fi
}
syncfile="LINUX-SERVER1 sites"
#sync game stuff
target="/home/iceyrazor/u"
exclude=""
fsync

View File

@@ -0,0 +1,2 @@
cd /home/iceyrazor/stuff/scripts/LINUX-SERVER1/home/iceyfoxservers/
rsync -RUurv servers/ serv:~

27
env/.local/bin/scripts/backup/backup-tol vendored Executable file
View File

@@ -0,0 +1,27 @@
cd ~/
fsynca () {
# t?
rsync -RUuavn --delete-after $exclude $syncfile "$target"
}
fsyncb () {
printf "===confirm changes?\n"
read -p "y/n: " uinput
if [ "$uinput" != "n" ] && [ "$uinput" != "N" ]; then
printf "\n\n\n"
rsync -RUuav --progress --delete-after $exclude $syncfile "$target"
printf "\n===end sync\n---------\n\n"
fi
}
syncfile=".surf/styles .urlview .gnupg .local/bin/lf-gadgets .local/share/applications/custom .config/FreeTube .config/newsboat .config/zsh .config/vesktop/themes .keepass .config/Pinta .config/gajim/theme stuff/notes stuff/openvpn-cons stuff/scripts stuff/media/ICE stuff/media/music stuff/manual-programs/mediamtx"
#sync game stuff
target="laptop:~"
exclude="--exclude stream.sh --exclude node_modules --exclude **/target"
fsynca
fsyncb

31
env/.local/bin/scripts/backup/backup-tol2 vendored Executable file
View File

@@ -0,0 +1,31 @@
cd ~/
fsynca () {
# t?
rsync -RUuavn --delete-after $exclude $syncfile "$target"
}
fsyncb () {
printf "===confirm changes?\n"
read -p "y/n: " uinput
if [ "$uinput" != "n" ] && [ "$uinput" != "N" ]; then
printf "\n\n\n"
rsync -RUuav --progress --delete-after $exclude $syncfile "$target"
printf "\n===end sync\n---------\n\n"
fi
}
syncfile=".surf/styles .urlview .local/bin/lf-gadgets .local/share/applications/custom .config/newsboat .config/zsh .keepass .config/Pinta stuff/notes stuff/openvpn-cons stuff/media/ICE stuff/scripts/iceys-linux-stuffs .config/swapscape.map"
# stuff/scripts .gnupg
#sync game stuff
target="laptop2:~"
exclude="--exclude mediamtx.yml --exclude stream.sh --exclude node_modules --exclude **/target"
fsynca
printf "==CC-survival unsynced\n\n"
fsyncb

25
env/.local/bin/scripts/backup/bbackup vendored Executable file
View File

@@ -0,0 +1,25 @@
cd ~/
fsynca () {
# t?
rsync -RUuavn --delete-after $exclude $syncfile "$target"
}
fsyncb () {
printf "===confirm changes?\n"
read -p "y/n: " uinput
if [ "$uinput" != "n" ] && [ "$uinput" != "N" ]; then
printf "\n\n\n"
rsync -RUuav --progress --delete-after $exclude $syncfile "$target"
printf "\n===end sync\n---------\n\n"
fi
}
syncfile="stuff .surf/styles .config/eDEX-UI/ .gnupg .ssh .local/bin/lf-gadgets .config/FreeTube .config/wlxoverlay .config/newsboat .config/zsh .config/vesktop/themes .keepass .config/Pinta .config/cava .config/gajim/theme .local/share/applications/custom .local/share/osu"
target="/home/iceyrazor/mnt-backups/LINUX FILES/home/iceyrazor"
exclude="--exclude node_modules --exclude node_modules_23 --exclude **/target --exclude LinVAM/pyenv --exclude stuff/custom-linux/LFN --exclude stuff/custom-linux/LFN-borked-lol --exclude stuff/.private-parent/.private/minecraft --exclude /home/iceyrazor/stuff/projects/blender-projects/anim-pose/image-sequence"
fsynca
fsyncb

25
env/.local/bin/scripts/backup/bbackup-browser vendored Executable file
View File

@@ -0,0 +1,25 @@
cd ~/
fsynca () {
# t?
rsync -RUuavn --delete-after $exclude $syncfile "$target"
}
fsyncb () {
printf "===confirm changes?\n"
read -p "y/n: " uinput
if [ "$uinput" != "n" ] && [ "$uinput" != "N" ]; then
printf "\n\n\n"
rsync -RUuav --progress --delete-after $exclude $syncfile "$target"
printf "\n===end sync\n---------\n\n"
fi
}
syncfile=".librewolf"
target="/home/iceyrazor/mnt-backups/LINUX FILES/home/iceyrazor"
exclude=""
fsynca
fsyncb

25
env/.local/bin/scripts/backup/copy-media vendored Executable file
View File

@@ -0,0 +1,25 @@
cd ~/stuff/media/music/
fsynca () {
# t?
rsync -RUuavn --delete-after $exclude $syncfile "$target"
}
fsyncb () {
printf "===confirm changes?\n"
read -p "y/n: " uinput
if [ "$uinput" != "n" ] && [ "$uinput" != "N" ]; then
printf "\n\n\n"
rsync -RUuav --progress --delete-after $exclude $syncfile "$target"
printf "\n===end sync\n---------\n\n"
fi
}
syncfile="./*"
target="serv:servers/local_html/ice"
exclude=""
fsynca
fsyncb

30
env/.local/bin/scripts/backup/pull-froml vendored Executable file
View File

@@ -0,0 +1,30 @@
cd ~/
fsynca () {
# t?
rsync -RUuavn $exclude $syncfile "$target"
}
fsyncb () {
printf "===confirm changes?\n"
read -p "y/n: " uinput
if [ "$uinput" != "n" ] && [ "$uinput" != "N" ]; then
printf "\n\n\n"
rsync -RUuav --progress $exclude $syncfile "$target"
printf "\n===end sync\n---------\n\n"
fi
}
# !! no in use. backup script does not perserve timestamps or something so it wants to overwrite most files
# will fix bidirectional sync at some point
# syncfile="laptop:.surf/styles laptop:.urlview laptop:.gnupg laptop:.local/bin/lf-gadgets laptop:.local/share/applications/custom laptop:.config/FreeTube laptop:.config/newsboat laptop:.config/zsh laptop:.config/vesktop/themes laptop:.keepass laptop:.config/Pinta laptop:.config/cmus laptop:.config/gajim/theme laptop:stuff"
syncfile="laptop:stuff/scripts/node/Nwjs/nms-data/"
#sync game stuff
target="/home/iceyrazor/"
exclude="--exclude stuff/.private --exclude stream.sh --exclude node_modules --exclude **/target"
fsynca
fsyncb

35
env/.local/bin/scripts/dmount vendored Executable file
View File

@@ -0,0 +1,35 @@
#!/bin/bash
sudo="sudo"
[ doas ] && sudo="doas"
umo=0
while getopts "u" opt; do
case "$opt" in
u) umo=1
;;
esac
done
shift $((OPTIND-1))
[ "${1:-}" = "--" ] && shift
if [ $umo == 1 ]; then
nf=4
else
nf=3
fi
parts="$(lsblk -rno path,size,type,mountpoint | grep -e part -e lvm | awk "NF==$nf {print \$1, \$2, \$3, \$4}")"
# choice="$(printf "$parts" | rofi -dmenu "beans" | sed 's/ .*//')"
choice="$(printf "$parts" | fzf | sed 's/ .*//')"
[ "$choice" == "" ] && exit 0
if [ $umo == 1 ]; then
$sudo umount $choice
else
$sudo mount $choice ~/u
fi

25
env/.local/bin/scripts/fzf-thumb vendored Executable file
View File

@@ -0,0 +1,25 @@
#!/bin/bash
FZF_PREVIEW_LINES=50
FZF_PREVIEW_COLUMN=50
script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
Preview_file="$script_dir/preview-image-typed.sh"
[ "$1" ] && view_dir="$1"
if [ ! "$view_dir" ]; then
echo NO DIR
exit 1
fi
cd "$view_dir"
while :; do
open_file=$(fzf --preview "$Preview_file {} $FZF_PREVIEW_LINES $FZF_PREVIEW_COLUMN")
if [ "$open_file" ]; then
mpv "$open_file" & disown
else
break
fi
done

71
env/.local/bin/scripts/gen-thumb-md vendored Executable file
View File

@@ -0,0 +1,71 @@
#!/bin/bash
script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
disable_thumb_gen=0
disable_auto_editor=0
while getopts "de" opt; do
case "$opt" in
d) disable_thumb_gen=1
;;
e) disable_auto_editor=1
;;
esac
done
shift $((OPTIND-1))
[ "${1:-}" = "--" ] && shift
[ "$1" ] && view_dir="$1"
if [ ! "$view_dir" ]; then
echo NO DIR
exit 1
fi
view_dir="$( cd "$view_dir" &> /dev/null && pwd )"
to_file() {
printf -- "- [%s](<%s>)" "$2" "$1" >> genthumb.md
if [ $3 == 1 ]; then
printf -- "\n - ![%s](</tmp/gen-thumb-md/%s.png>)\n" "$2" "$2" >> genthumb.md
else
printf -- "\n - ![%s](<%s>)\n" "$2" "$1" >> genthumb.md
fi
}
gen_thumb() {
file="$1"
file_name="$(basename "$file")"
case "$file" in
*.avi|*.gif|*.mp4|*.mkv|*.webm|*.mov)
if [ $disable_thumb_gen == 0 ]; then
ffmpegthumbnailer -i "$file" -s 0 -q 5 -o "/tmp/gen-thumb-md/$file_name.png"
fi
to_file "$file" "$file_name" 1
;;
*)
to_file "$file" "$file_name" 0
;;
esac
}
if [ ! -d /tmp/gen-thumb-md ]; then
mkdir /tmp/gen-thumb-md
fi
printf "# gen thumb $view_dir\n\n" > genthumb.md
files="$(find "$view_dir" -type f)"
printf "$files" | while read file; do
gen_thumb "$file"
done
if [ $disable_auto_editor == 0 ]; then
$EDITOR ./genthumb.md
fi

View File

@@ -0,0 +1,3 @@
#!/bin/bash
pactl set-default-sink "$(pactl list short sinks | awk '{print $2}' | rofi -dmenu -p "Output:")" && notify-send "Audio switched!" || exit 0

17
env/.local/bin/scripts/preview-image-typed.sh vendored Executable file
View File

@@ -0,0 +1,17 @@
preview() {
# chafa "$@" -f sixel -s "$(($2-2))x$3" | sed 's/#/\n#/g'
chafa "$1" --clear -f iterm -s $2x$3
}
thumbnail="/tmp/thumbnail.png"
file="$1"; shift
case "$file" in
*.avi|*.gif|*.mp4|*.mkv|*.webm|*.mov)
ffmpegthumbnailer -i "$file" -s 0 -q 5 -o "/tmp/thumbnail.png"
preview "$thumbnail" "$@"
;;
*)
preview "$file" "$@"
esac

1
env/.local/bin/scripts/set-pri-java.sh vendored Executable file
View File

@@ -0,0 +1 @@
doas renice -20 -p $(doas pidof java)

3
env/.local/bin/scripts/setkey-x11-i3.sh vendored Executable file
View File

@@ -0,0 +1,3 @@
xmodmap -e "clear lock"
xmodmap -e "keycode 9 = Caps_Lock NoSymbol Caps_Lock"
xmodmap -e "keycode 66 = Escape NoSymbol Escape"

View File

@@ -1,31 +0,0 @@
cd ~/
fsynca () {
# t?
rsync -RUurvn --size-only --delete-after $exclude $syncfile "$target"
}
fsyncb () {
printf "===confirm changes?\n"
read -p "y/n: " uinput
if [ "$uinput" != "n" ] && [ "$uinput" != "N" ]; then
printf "\n\n\n"
rsync -RUurv --progress --size-only --delete-after $exclude $syncfile "$target"
printf "\n===end sync\n---------\n\n"
fi
}
syncfile="stuff .bash_profile .bashrc .surf/styles .gtkrc-2.0 .urlview .vimrc .xinitrc .Xresources .zshrc .p10k.zsh .gnupg .ssh .local/bin/lf-gadgets .config/dwm .config/wezterm .config/.profile .config/tmux .config/wireplumber .config/FreeTube .config/awesome .config/wlxoverlay .config/newsboat .var/app/dev.vencord.Vesktop/config/vesktop/themes .config/fastfetch .config/gtk-3.0 .config/rofi .config/lf .config/mutt .config/zsh .config/picom.conf .config/nvim .config/atuin .config/screenkey.json .config/vesktop/themes .keepass .config/Pinta .config/cmus .config/cava .config/hypr .config/waybar .local/share/applications/custom .local/share/osu"
# se shit
syncfile="$syncfile /home/iceyrazor/.local/share/Steam/steamapps/compatdata/244850/pfx/drive_c/users/steamuser/AppData/Roaming/SpaceEngineers/Blueprints /home/iceyrazor/.local/share/Steam/steamapps/compatdata/244850/pfx/drive_c/users/steamuser/AppData/Roaming/SpaceEngineers/IngameScripts /home/iceyrazor/.local/share/Steam/steamapps/compatdata/244850/pfx/drive_c/users/steamuser/AppData/Roaming/SpaceEngineers/Saves"
target="/home/iceyrazor/mnt-backups/LINUX FILES/home/iceyrazor"
exclude="--exclude node_modules --exclude node_modules_23 --exclude dontsync --exclude **/iceys-linux-stuffs --exclude **/target --exclude LinVAM/pyenv"
fsynca
printf "==CC-survival unsynced?\n\n"
printf "==osu unsynced\n\n"
fsyncb

View File

@@ -1,21 +0,0 @@
cd ~/
fsync () {
rsync -RUurvn --delete-after $exclude $syncfile "$target"
printf "===commit these changes?\n"
read -p "y/n: " uinput
if [ "$uinput" != "n" ] && [ "$uinput" != "N" ]; then
printf "\n\n\n"
rsync -RUurv --progress --delete-after $exclude $syncfile "$target"
printf "\n===end sync\n---------\n\n"
fi
}
syncfile=".urlview .vimrc .Xresources .bashrc .zshrc .p10k.zsh .config/.profile .config/wezterm .config/dwm .config/tmux .config/awesome .config/rofi .config/lf .config/cava .config/hypr .config/waybar .config/picom.conf .config/nvim .config/atuin .config/screenkey.json .config/fastfetch stuff/manual-programs/suckless"
syncfile="$syncfile stuff/scripts/system/stbar stuff/scripts/system/url-handler.sh stuff/scripts/system/backup/copy-to-git.sh stuff/scripts/system/backup/backup.sh"
syncfile="$syncfile stuff/scripts/system/neoboot.sh stuff/scripts/system/math.sh stuff/scripts/system/bri.sh stuff/scripts/system/restart-pipe.sh stuff/scripts/system/set-pri-java.sh"
target=~/stuff/iceys-linux-stuffs
exclude="--exclude check_weth.sh --exclude awesome/default --exclude lua-ls-cc-tweaked --exclude .config/nvim/plugin"
fsync

19
env/.local/bin/system/kaomoji-picker.sh vendored Executable file
View File

@@ -0,0 +1,19 @@
#!/bin/bash
# set up to work with https://github.com/Aptivi-Analytics/KaomojiList.git
KAO_FILE="$HOME/stuff/manual-programs/KaomojiList/kaomojis.json"
choices=$(jq '.[]|.categories|.[]|.name' "$KAO_FILE" | sed 's/"//g')
choice=$(echo "$choices" | sed /^$/d | rofi -dmenu "$prompt_message")
emojlist=$(jq -r --arg sel "$choice" '..| select(.name==$sel)? | .emoticons | .[]' "$KAO_FILE")
emoj=$(echo "$emojlist" | sed /^$/d | rofi -dmenu "$prompt_message")
if [ "$WAYLAND_DISPLAY" ]; then
printf -- "$emoj" | wl-copy
else
printf -- "$emoj" | xclip -sel clip
fi

View File

@@ -1 +0,0 @@
systemctl --user restart wireplumber pipewire pipewire-pulse

View File

@@ -1 +0,0 @@
sudo renice -20 -p $(sudo pidof java)

View File

@@ -1,63 +1,76 @@
#!/bin/bash
extra=0
if [ "$(cat /etc/hostname)" == "Kasino" ]; then
extra=0
fi
if [ "$(cat /etc/hostname)" == "Witchen" ]; then
extra=1
fi
cd "$(dirname "$0")"
sleep 0.1
xset s 0
nitrogen --restore &
if [ $extra == 1 ]; then
xrandr --dpi 90 &
xrandr --output Virtual-1 --mode 1920x1080
if [ "$XDG_CURRENT_DESKTOP" == "sway:wlroots" ]; then
PID=$(pidof swaybg)
swaybg -o HDMI-A-1 -i "/home/iceyrazor/stuff/media/wallpapers/purple/IMG_0276.jpg" -m fill -o DP-1 -i "/home/iceyrazor/stuff/media/wallpapers/purple/IMG_0276.jpg" -m fill & disown
sleep 0.4s
kill $PID
fi
if [ -z "$WAYLAND_DISPLAY "]; then
xrdb -merge /home/iceyrazor/.Xresources &
if [ -z "$WAYLAND_DISPLAY" ]; then
xcompmgr &
setxkbmap -option caps:swapescape
fi
if [ $extra == 1 ]; then
if [ -z $(pgrep -f stbar.sh) ]; then
# ~/stuff/scripts/system/stbar/stbar.sh &
echo hall
fi
fi
# if [ -z $(pgrep -f stbar.sh) ]; then
# # ~/stuff/scripts/system/stbar/stbar.sh &
# fi
pipewire & disown
if [ -z $(pgrep wireplumber) ]; then
wireplumber & disown
fi
pipewire-pulse & disown
# added openrc services... may go back to this later
# pipewire & disown
# if [ -z "$(pgrep wireplumber)" ]; then
# wireplumber & disown
# fi
# pipewire-pulse & disown
sleep 0.5s
if [ -z $(pgrep -f newsboat-fetch.sh) ]; then
~/.config/dwm/newsboat-fetch.sh &
fi
if [ -z $(pgrep -f lessons-loop.sh) ]; then
~/.config/dwm/lessons-loop.sh &
if [ "$WAYLAND_DISPLAY" ] && [ -z "$(pgrep -f waybar)" ]; then
waybar & disown
fi
if [ -z $(pgrep wezterm) ]; then
sleep 2
wezterm -e ~/stuff/scripts/system/task.sh &
if [ -z "$(pgrep -f newsboat-fetch.sh)" ]; then
./newsboat-fetch.sh &
fi
if [ -z "$(pgrep -f lessons-loop.sh)" ]; then
./lessons-loop.sh &
fi
pactl load-module module-null-sink sink_name=audio-share
if [ -z "$(pgrep wezterm)" ]; then
sleep 2
wezterm -e ~/.local/bin/system/task.sh &
fi
if [ "$(cat /etc/hostname)" == "Kasino" ]; then
if [ -z "$(pgrep vesktop)" ]; then
sleep 2s
flatpak run dev.vencord.Vesktop & disown
dbus-run-session vesktop & disown
fi
if [ -z "$(pgrep gajim)" ]; then
sleep 2s
gajim & disown
fi
if [ -z "$(pgrep steam)" ]; then
sleep 3s
steam & disown
fi
if [ -z "$(pgrep mumble)" ]; then
QT_QPA_PLATFORMTHEME="" mumble & disown
fi
if [ -z "$(pgrep mpd)" ]; then
mpd & disown
sleep 0.5s
nohup mpd-mpris -host localhost > /dev/null 2> /dev/null < /dev/null & disown
fi
fi
[ -f "./autostart-priv.sh" ] && ./autostart-priv.sh

View File

@@ -1,7 +1,7 @@
#!/bin/bash
newsboat_loop(){
notify-send -t 6000 -i '/home/iceyrazor/stuff/media/saved gifs/duolingo-crop-s.jpg' "Anki" "did you do your japanese lessons today?"
sleep 2h
sleep 1h
newsboat_loop
}
newsboat_loop

View File

@@ -1,6 +1,6 @@
#!/bin/bash
newsboat_loop(){
newsboat -x reload
NO_PROXY=\".com,.org,.xyz,.chat,.social,.net,.co\" newsboat -x reload
#newsboat -x print-unread | xargs -0 notify-send "newsboat feed"
unreads=$(newsboat -x print-unread)

View File

@@ -6,5 +6,4 @@ pids=$(ps -AO pid | awk '/stbar.sh|newsboat-fetch.sh/ {print $1}')
echo $pids
$(sleep 3 && xsetroot -name "") & disown
sudo kill -KILL $pids
doas kill -KILL $pids

2
env/.urlview vendored
View File

@@ -26,4 +26,4 @@ REGEXP (((http|https|ftp|gopher)|mailto)[.:][^ >"\t]*|www\.[-a-z0-9.]+)[^ .,;\t>
#COMMAND lynx %s
#COMMAND netscape -remote 'openURL(%s)'
#COMMAND url_handler.sh
COMMAND ~/stuff/scripts/system/url-handler.sh
COMMAND ~/.local/bin/system/url-handler.sh

24
env/.zshrc vendored
View File

@@ -2,10 +2,13 @@
# Initialization code that may require console input (password prompts, [y/n]
# confirmations, etc.) must go above this block; everything else may go below.
~/stuff/scripts/system/neoboot.sh
~/.local/bin/system/neoboot.sh
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
if [[ "$wezterm" == "yes" ]]; then
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi
source ~/.config/zsh/powerlevel10k/powerlevel10k.zsh-theme
fi
# Lines configured by zsh-newuser-install
@@ -14,26 +17,29 @@ HISTSIZE=1000
SAVEHIST=1000
# End of lines configured by zsh-newuser-install
PS1='%B%F{white}[%B%F{magenta}%n%B%F{yellow}@%B%F{magenta}%M %B%F{cyan}%1~%B%F{white}]%B%F{default}$ '
PS1='%B%F{white}[%B%F{magenta}%n%B%F{yellow}@%B%F{magenta}%M %B%F{cyan}%1~%B%F{white}]%B%F{default} '
#PS1='%B%F{white}[%B%F{red}Z%B%F{magenta}ARCH %B%F{cyan}%1~%B%F{white}]%B%F{default}$ '
bindkey -v
# Yank to the system clipboard
function vi-yank-xclip {
function vi-yank-clipboard {
zle vi-yank
echo "$CUTBUFFER" | xclip -selection clipboard
if [ "$WAYLAND_DISPLAY" ]; then
printf "$CUTBUFFER" | wl-copy
else
printf "$CUTBUFFER" | xclip -selection clipboard
fi
}
zle -N vi-yank-xclip
bindkey -M vicmd ' y' vi-yank-xclip
zle -N vi-yank-clipboard
bindkey -M vicmd ' y' vi-yank-clipboard
#fzf search
source <(fzf --zsh)
source ~/.config/.profile
#bash --login -i -c 'source ~/.profile'
source ~/.config/zsh/powerlevel10k/powerlevel10k.zsh-theme
# bindkey -a h backward-char
# bindkey -a i forward-char

Submodule env_private deleted from cfc8c7d0b7

42
run.sh
View File

@@ -1,22 +1,50 @@
#!/bin/bash
[ "$DEV_ENV" == "" ] && export DEV_ENV=$HOME
[ ! -d "$DEV_ENV" ] && echo DEV_ENV DOES NOT EXIST && exit 1
echo DEV_ENV "$DEV_ENV"
[ ! -d "$DEV_ENV" ] && echo DEV_ENV DIRECTORY IS NOT FOUND && exit 1
run_runs_all=0
list_runs=0
while getopts "al" opt; do
case "$opt" in
a) run_runs_all=1
;;
l) list_runs=1
;;
esac
done
shift $((OPTIND-1))
[ "${1:-}" = "--" ] && shift
script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
runs_dir="$(find $script_dir/runs -mindepth 1 -maxdepth 1 -type f -executable)"
runs_dir_all="$(find $script_dir/runs-all -mindepth 1 -maxdepth 1 -type f -executable)"
if [ $list_runs == 1 ]; then
printf " runs --------------\n"
ls "$script_dir/runs"
printf "\n runs-all ----------\n"
ls "$script_dir/runs-all"
exit 0
fi
if [ "$1" != "" ]; then
if [ "$1" == "ls" ]; then
ls "$script_dir/runs"
else
. "$script_dir/runs/$1.sh"
. "$script_dir/runs/$1.sh"
if [ $run_runs_all == 1 ]; then
. "$script_dir/runs-all/$1.sh"
fi
else
for s in $runs_dir; do
echo running $s
. "$s"
done
if [ $run_runs_all == 1 ]; then
for s in $runs_dir_all; do
echo running $s
. "$s"
done
fi
fi

Some files were not shown because too many files have changed in this diff Show More