Closed #7, Closed #5, Closed #4, Closed #3

This commit is contained in:
nils 2024-12-27 23:03:21 +01:00
parent 837ba50533
commit 20747da93e
30 changed files with 284 additions and 138 deletions

View file

@ -0,0 +1,5 @@
type = internal
depends-on = pipewire
depends-on = pipewire-pulse
depends-on = wireplumber
restart = yes

View file

@ -0,0 +1,3 @@
type = process
command = blueman-applet
waits-for = waybar

3
.config/dinit.d/env-sv Normal file
View file

@ -0,0 +1,3 @@
type = scripted
command = env
log-type = buffer

View file

@ -0,0 +1,2 @@
type = process
command = foot --server

View file

@ -0,0 +1 @@
audio.target

View file

@ -0,0 +1 @@
blueman-applet

View file

@ -0,0 +1 @@
foot-server

View file

@ -0,0 +1 @@
nm-applet

View file

@ -0,0 +1 @@
swaybg

View file

@ -0,0 +1 @@
/home/n/.config/dinit.d/swaync

View file

@ -0,0 +1 @@
/home/n/.config/dinit.d/waybar

View file

@ -0,0 +1,2 @@
type = internal
waits-for.d = graphical.d

View file

@ -0,0 +1,3 @@
type = process
command = nm-applet
waits-for = waybar

2
.config/dinit.d/pipewire Normal file
View file

@ -0,0 +1,2 @@
type = process
command = pipewire

View file

@ -0,0 +1,3 @@
type = process
command = pipewire-pulse
depends-on = pipewire

2
.config/dinit.d/swaybg Normal file
View file

@ -0,0 +1,2 @@
type = process
command = swaybg -m fill -i /home/n/Pictures/wallpaper.png

2
.config/dinit.d/swaync Normal file
View file

@ -0,0 +1,2 @@
type = process
command = swaync

3
.config/dinit.d/waybar Normal file
View file

@ -0,0 +1,3 @@
type = process
command = waybar
waits-for = swaync

View file

@ -0,0 +1,3 @@
type = process
command = wireplumber
depends-on = pipewire

View file

@ -0,0 +1,31 @@
local cmp = require'cmp'
require("luasnip").config.setup({})
local capabilities = require('cmp_nvim_lsp').default_capabilities()
cmp.setup({
snippet = {
-- REQUIRED - you must specify a snippet engine
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-Space>'] = cmp.mapping.complete(),
['<C-e>'] = cmp.mapping.abort(),
['<CR>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
}),
sources = {
{ name = 'luasnip' },
{ name = 'nvim_lsp' },
{ name = 'buffer' },
}
})
require('lspconfig').clangd.setup({capabilities=capabilities})
require('lspconfig').pylsp.setup({capabilities=capabilities})

View file

@ -0,0 +1,2 @@
local pywal16 = require('pywal16')
pywal16.setup()

13
.config/nvim/init.lua Normal file
View file

@ -0,0 +1,13 @@
require("config.lazy")
-- Vim configuration
vim.cmd([[
set tabstop=2
set expandtab
set shiftwidth=0
set number
set signcolumn=yes
highlight Normal ctermbg=NONE guibg=NONE
]])
vim.opt.termguicolors = true

View file

@ -0,0 +1,8 @@
{
"LuaSnip": { "branch": "master", "commit": "03c8e67eb7293c404845b3982db895d59c0d1538" },
"cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" },
"lazy.nvim": { "branch": "main", "commit": "7e6c863bc7563efbdd757a310d17ebc95166cef3" },
"nvim-cmp": { "branch": "main", "commit": "b555203ce4bd7ff6192e759af3362f9d217e8c89" },
"nvim-lspconfig": { "branch": "master", "commit": "ff2b85abaa810f6611233dbe6d31c07510ebf43d" },
"pywal16.nvim": { "branch": "main", "commit": "446ae689c8e4569b9537cddadb28d6e939658ea5" }
}

View file

@ -0,0 +1,35 @@
-- Bootstrap lazy.nvim
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or vim.loop).fs_stat(lazypath) then
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
if vim.v.shell_error ~= 0 then
vim.api.nvim_echo({
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
{ out, "WarningMsg" },
{ "\nPress any key to exit..." },
}, true, {})
vim.fn.getchar()
os.exit(1)
end
end
vim.opt.rtp:prepend(lazypath)
-- Make sure to setup `mapleader` and `maplocalleader` before
-- loading lazy.nvim so that mappings are correct.
-- This is also a good place to setup other settings (vim.opt)
vim.g.mapleader = " "
vim.g.maplocalleader = "\\"
-- Setup lazy.nvim
require("lazy").setup({
spec = {
-- import your plugins
{ import = "plugins" },
},
-- Configure any other settings here. See the documentation for more details.
-- colorscheme that will be used when installing plugins.
install = { colorscheme = { "habamax" } },
-- automatically check for plugin updates
checker = { enabled = false },
})

View file

@ -0,0 +1,12 @@
return {
"neovim/nvim-lspconfig",
"hrsh7th/nvim-cmp",
"hrsh7th/cmp-nvim-lsp",
{
"L3MON4D3/LuaSnip",
-- follow latest release.
version = "v2.3.0", -- Replace <CurrentMajor> by the latest released major (first number of latest release)
-- install jsregexp (optional!).
build = "make install_jsregexp"
}
}

View file

@ -0,0 +1,3 @@
return {
"uZer/pywal16.nvim"
}

120
.config/river/binds Executable file
View file

@ -0,0 +1,120 @@
#!/bin/sh
# Things to spawn
riverctl map normal Super Return spawn footclient
riverctl map normal Super Space spawn fuzzel
riverctl map normal Super Tab spawn "swaync-client -t -sw"
riverctl map normal Super+Control S spawn 'pkill -9 slurp ; grim -g "$(slurp -d)" - | wl-copy -t image/png'
riverctl map normal Super V spawn pavucontrol
# Super+Q to close the focused view
riverctl map normal Super Slash close
# Super+Shift+E to exit river
riverctl map normal Super+Shift E spawn "dinitctl shutdown ; riverctl exit"
# Focus shortcuts
riverctl map normal Super Up focus-view up
riverctl map normal Super Right focus-view right
riverctl map normal Super Down focus-view down
riverctl map normal Super Left focus-view left
# Change positions
riverctl map normal Super+Shift Up swap up
riverctl map normal Super+Shift Right swap right
riverctl map normal Super+Shift Down swap down
riverctl map normal Super+Shift Left swap left
# Super+Period and Super+Comma to focus the next/previous output
riverctl map normal Super Period focus-output next
riverctl map normal Super Comma focus-output previous
# Super+Shift+{Period,Comma} to send the focused view to the next/previous output
riverctl map normal Super+Shift Period send-to-output next
riverctl map normal Super+Shift Comma send-to-output previous
# Super+Alt+{H,J,K,L} to move views
riverctl map normal Super+Alt H move left 100
riverctl map normal Super+Alt J move down 100
riverctl map normal Super+Alt K move up 100
riverctl map normal Super+Alt L move right 100
# Super+Alt+Control+{H,J,K,L} to snap views to screen edges
riverctl map normal Super+Alt+Control H snap left
riverctl map normal Super+Alt+Control J snap down
riverctl map normal Super+Alt+Control K snap up
riverctl map normal Super+Alt+Control L snap right
# Super+Alt+Shift+{H,J,K,L} to resize views
riverctl map normal Super+Alt+Shift H resize horizontal -100
riverctl map normal Super+Alt+Shift J resize vertical 100
riverctl map normal Super+Alt+Shift K resize vertical -100
riverctl map normal Super+Alt+Shift L resize horizontal 100
# Super + Left Mouse Button to move views
riverctl map-pointer normal Super BTN_LEFT move-view
# Super + Right Mouse Button to resize views
riverctl map-pointer normal Super BTN_RIGHT resize-view
# Super + Middle Mouse Button to toggle float
riverctl map-pointer normal Super BTN_MIDDLE toggle-float
for i in $(seq 1 9)
do
tags=$((1 << ($i - 1)))
# Super+[1-9] to focus tag [0-8]
riverctl map normal Super $i set-focused-tags $tags
# Super+Shift+[1-9] to tag focused view with tag [0-8]
riverctl map normal Super+Shift $i set-view-tags $tags
# Super+Control+[1-9] to toggle focus of tag [0-8]
riverctl map normal Super+Control $i toggle-focused-tags $tags
# Super+Shift+Control+[1-9] to toggle tag [0-8] of focused view
riverctl map normal Super+Shift+Control $i toggle-view-tags $tags
done
# Super+0 to focus all tags
# Super+Shift+0 to tag focused view with all tags
all_tags=$(((1 << 32) - 1))
riverctl map normal Super 0 set-focused-tags $all_tags
riverctl map normal Super+Shift 0 set-view-tags $all_tags
# Super+Space to toggle float
riverctl map normal Super+Shift Space toggle-float
# Super+F to toggle fullscreen
riverctl map normal Super F toggle-fullscreen
# Super+F11 to enter passthrough mode
riverctl map normal Super F11 enter-mode passthrough
# Super+F11 to return to normal mode
riverctl map passthrough Super F11 enter-mode normal
# Various media key mapping examples for both normal and locked mode which do
# not have a modifier
for mode in normal locked
do
# Eject the optical drive (well if you still have one that is)
riverctl map $mode None XF86Eject spawn 'eject -T'
# Control pulse audio volume with pamixer (https://github.com/cdemoulins/pamixer)
riverctl map $mode None XF86AudioRaiseVolume spawn 'wpctl set-volume @DEFAULT_SINK@ 5%+ ; wpctl set-mute @DEFAULT_SINK@ 0'
riverctl map $mode None XF86AudioLowerVolume spawn 'wpctl set-volume @DEFAULT_SINK@ 5%- ; wpctl set-mute @DEFAULT_SINK@ 0'
riverctl map $mode None XF86AudioMute spawn 'wpctl set-mute @DEFAULT_SINK@ toggle'
riverctl map $mode None XF86AudioMicMute spawn 'wpctl set-mute @DEFAULT_SOURCE@ toggle'
# Control MPRIS aware media players with playerctl (https://github.com/altdesktop/playerctl)
riverctl map $mode None XF86AudioMedia spawn 'playerctl play-pause'
riverctl map $mode None XF86AudioPlay spawn 'playerctl play-pause'
riverctl map $mode None XF86AudioPrev spawn 'playerctl previous'
riverctl map $mode None XF86AudioNext spawn 'playerctl next'
# Control screen backlight brightness with brightnessctl (https://github.com/Hummer12007/brightnessctl)
riverctl map $mode None XF86MonBrightnessUp spawn 'brightnessctl set +5%'
riverctl map $mode None XF86MonBrightnessDown spawn 'brightnessctl set 5%-'
done

View file

@ -3,154 +3,35 @@
# Source colors generated by wal # Source colors generated by wal
source ~/.cache/wal/colors-river source ~/.cache/wal/colors-river
# Source all the keybinds
source ~/.config/river/binds
# Set border-width # Set border-width
riverctl border-width 2 riverctl border-width 2
# Super+Shift+Return to start an instance of foot (https://codeberg.org/dnkl/foot) # Spawn the user services
riverctl map normal Super Return spawn footclient
riverctl map normal Super Space spawn fuzzel
riverctl map normal Super Tab spawn "swaync-client -t -sw"
riverctl map normal Super+Control S spawn 'pkill -9 slurp ; grim -g "$(slurp -d)" - | wl-copy -t image/png'
riverctl spawn 'dinit graphical.target -d .config/dinit.d -q -u' riverctl spawn 'dinit graphical.target -d .config/dinit.d -q -u'
# Super+Q to close the focused view # Use server side decoration everywhere
riverctl map normal Super Slash close riverctl rule-add -app-id "*" ssd
# Super+Shift+E to exit river
riverctl map normal Super+Shift E exit
# Focus shortcuts
riverctl map normal Super Up focus-view up
riverctl map normal Super Right focus-view right
riverctl map normal Super Down focus-view down
riverctl map normal Super Left focus-view left
# Change positions
riverctl map normal Super+Shift Up swap up
riverctl map normal Super+Shift Right swap right
riverctl map normal Super+Shift Down swap down
riverctl map normal Super+Shift Left swap left
# Super+Period and Super+Comma to focus the next/previous output
riverctl map normal Super Period focus-output next
riverctl map normal Super Comma focus-output previous
# Super+Shift+{Period,Comma} to send the focused view to the next/previous output
riverctl map normal Super+Shift Period send-to-output next
riverctl map normal Super+Shift Comma send-to-output previous
# Super+H and Super+L to decrease/increase the main ratio of rivertile(1)
riverctl map normal Super H send-layout-cmd rivertile "main-ratio -0.05"
riverctl map normal Super L send-layout-cmd rivertile "main-ratio +0.05"
# Super+Shift+H and Super+Shift+L to increment/decrement the main count of rivertile(1)
riverctl map normal Super+Shift H send-layout-cmd rivertile "main-count +1"
riverctl map normal Super+Shift L send-layout-cmd rivertile "main-count -1"
# Super+Alt+{H,J,K,L} to move views
riverctl map normal Super+Alt H move left 100
riverctl map normal Super+Alt J move down 100
riverctl map normal Super+Alt K move up 100
riverctl map normal Super+Alt L move right 100
# Super+Alt+Control+{H,J,K,L} to snap views to screen edges
riverctl map normal Super+Alt+Control H snap left
riverctl map normal Super+Alt+Control J snap down
riverctl map normal Super+Alt+Control K snap up
riverctl map normal Super+Alt+Control L snap right
# Super+Alt+Shift+{H,J,K,L} to resize views
riverctl map normal Super+Alt+Shift H resize horizontal -100
riverctl map normal Super+Alt+Shift J resize vertical 100
riverctl map normal Super+Alt+Shift K resize vertical -100
riverctl map normal Super+Alt+Shift L resize horizontal 100
# Super + Left Mouse Button to move views
riverctl map-pointer normal Super BTN_LEFT move-view
# Super + Right Mouse Button to resize views
riverctl map-pointer normal Super BTN_RIGHT resize-view
# Super + Middle Mouse Button to toggle float
riverctl map-pointer normal Super BTN_MIDDLE toggle-float
for i in $(seq 1 9)
do
tags=$((1 << ($i - 1)))
# Super+[1-9] to focus tag [0-8]
riverctl map normal Super $i set-focused-tags $tags
# Super+Shift+[1-9] to tag focused view with tag [0-8]
riverctl map normal Super+Shift $i set-view-tags $tags
# Super+Control+[1-9] to toggle focus of tag [0-8]
riverctl map normal Super+Control $i toggle-focused-tags $tags
# Super+Shift+Control+[1-9] to toggle tag [0-8] of focused view
riverctl map normal Super+Shift+Control $i toggle-view-tags $tags
done
# Super+0 to focus all tags
# Super+Shift+0 to tag focused view with all tags
all_tags=$(((1 << 32) - 1))
riverctl map normal Super 0 set-focused-tags $all_tags
riverctl map normal Super+Shift 0 set-view-tags $all_tags
# Super+Space to toggle float
riverctl map normal Super+Shift Space toggle-float
# Super+F to toggle fullscreen
riverctl map normal Super F toggle-fullscreen
# Declare a passthrough mode. This mode has only a single mapping to return to # Declare a passthrough mode. This mode has only a single mapping to return to
# normal mode. This makes it useful for testing a nested wayland compositor # normal mode. This makes it useful for testing a nested wayland compositor
riverctl declare-mode passthrough riverctl declare-mode passthrough
# Super+F11 to enter passthrough mode
riverctl map normal Super F11 enter-mode passthrough
# Super+F11 to return to normal mode
riverctl map passthrough Super F11 enter-mode normal
# Various media key mapping examples for both normal and locked mode which do
# not have a modifier
for mode in normal locked
do
# Eject the optical drive (well if you still have one that is)
riverctl map $mode None XF86Eject spawn 'eject -T'
# Control pulse audio volume with pamixer (https://github.com/cdemoulins/pamixer)
riverctl map $mode None XF86AudioRaiseVolume spawn 'wpctl set-volume @DEFAULT_SINK@ 5%+ ; wpctl set-mute @DEFAULT_SINK@ 0'
riverctl map $mode None XF86AudioLowerVolume spawn 'wpctl set-volume @DEFAULT_SINK@ 5%- ; wpctl set-mute @DEFAULT_SINK@ 0'
riverctl map $mode None XF86AudioMute spawn 'wpctl set-mute @DEFAULT_SINK@ toggle'
riverctl map $mode None XF86AudioMicMute spawn 'wpctl set-mute @DEFAULT_SOURCE@ toggle'
# Control MPRIS aware media players with playerctl (https://github.com/altdesktop/playerctl)
riverctl map $mode None XF86AudioMedia spawn 'playerctl play-pause'
riverctl map $mode None XF86AudioPlay spawn 'playerctl play-pause'
riverctl map $mode None XF86AudioPrev spawn 'playerctl previous'
riverctl map $mode None XF86AudioNext spawn 'playerctl next'
# Control screen backlight brightness with brightnessctl (https://github.com/Hummer12007/brightnessctl)
riverctl map $mode None XF86MonBrightnessUp spawn 'brightnessctl set +5%'
riverctl map $mode None XF86MonBrightnessDown spawn 'brightnessctl set 5%-'
done
# Use server side decoration everywhere
riverctl rule-add -app-id "*" ssd
# Set keyboard repeat rate
riverctl set-repeat 50 300
# Set layouter to bsp # Set layouter to bsp
riverctl default-layout bsp-layout riverctl default-layout bsp-layout
river-bsp-layout --inner-gap 2 --outer-gap 5 --split-perc 0.5 --og-top 0 & river-bsp-layout --inner-gap 2 --outer-gap 4 --split-perc 0.5 --og-top 0 &
# --- Device input settings --------------
# Keyboard layout # Keyboard layout
riverctl keyboard-layout dehel riverctl keyboard-layout dehel
# Set keyboard repeat rate
riverctl set-repeat 50 300
# Natural scroll # Natural scroll
riverctl input pointer-1160-4639-DELL08B8:00_0488:121F_Touchpad natural-scroll enabled riverctl input pointer-1160-4639-DELL08B8:00_0488:121F_Touchpad natural-scroll enabled

View file

@ -11,6 +11,11 @@
"battery", "battery",
"custom/notification" "custom/notification"
], ],
"layer": "bottom",
"mode": "dock",
"position": "top",
"start_hidden": false,
"fixed-center": true,
"battery": { "battery": {
"format": "{icon} {capacity}%", "format": "{icon} {capacity}%",
"format-charging": "󱟦 {capacity}%", "format-charging": "󱟦 {capacity}%",
@ -39,17 +44,12 @@
"custom/notification": { "custom/notification": {
"escape": "true", "escape": "true",
"exec": "swaync-client -swb", "exec": "swaync-client -swb",
"format": "", "format": "󰣨",
"on-click": "swaync-client -t -sw", "on-click": "swaync-client -t -sw",
"on-click-right": "swaync-client -C -sw", "on-click-right": "swaync-client -C -sw",
"return-type": "json", "return-type": "json",
"tooltip": "false" "tooltip": "false"
}, },
"layer": "bottom",
"mode": "dock",
"position": "top",
"start_hidden": false,
"fixed-center": true,
"tray": { "tray": {
"icon-size": 16, "icon-size": 16,
"reverse-direction": "true", "reverse-direction": "true",

View file

@ -94,6 +94,7 @@ tooltip {
border-radius: 0; border-radius: 0;
padding: 0 4px; padding: 0 4px;
background: transparent; background: transparent;
min-width: 16px;
} }
#tags button*:Hover { #tags button*:Hover {