Compare commits
62 Commits
80202f93ba
...
rotom
| Author | SHA1 | Date | |
|---|---|---|---|
| 43116893a6 | |||
| c0ec86d8ce | |||
| d212cc93fa | |||
| 599d022964 | |||
| 6093e52cf9 | |||
| 7759496e3a | |||
| 51a2fc785b | |||
| 001dd87663 | |||
| 7c76092500 | |||
| 552acd7e87 | |||
| e1e03df0f4 | |||
| ae495a9cad | |||
| 14c2260a03 | |||
| d0384e46bd | |||
| 7766acd5af | |||
| 57b6aefc41 | |||
| c0a79a9c48 | |||
| d1fb5cae37 | |||
| d9316e7760 | |||
| c9b8ec3cc6 | |||
| 0b914e87b3 | |||
| 43343965e7 | |||
| ab54ef5954 | |||
| 436ae1e976 | |||
| fbc5b123b1 | |||
| 927e7e1d41 | |||
| 4f778522db | |||
| f27822e5ae | |||
| 780a01152a | |||
| b026139811 | |||
| c185b987f3 | |||
| 3c7157df4e | |||
| e815be2505 | |||
| 22237fac62 | |||
| 008b8d0499 | |||
| b6b7c27d80 | |||
| 42e62e9297 | |||
| 5d20fc669f | |||
| c5c6d93689 | |||
| ca14315991 | |||
| 22adb473a0 | |||
| 6cfc1665eb | |||
| 00f7dbe0ab | |||
| 332a9749cb | |||
| 94c55da63e | |||
| 99238dc343 | |||
| a77fc67f6c | |||
| f7075319a5 | |||
| 0713f92ab5 | |||
| c0565da4c8 | |||
| 7ad9d894bd | |||
| 0d4ae817db | |||
| 8d8b207483 | |||
| 8c2414dd7e | |||
| 45b402c320 | |||
| 856bd58e6e | |||
| 92898f85e6 | |||
| 41182b2155 | |||
| 9500844be6 | |||
| c4c68a85c1 | |||
| aa551049ef | |||
| 19bfd1d6b2 |
69
install.sh
69
install.sh
@@ -60,6 +60,7 @@ mapfile -t tools < <(
|
||||
|
||||
mapfile -t extratools < <(
|
||||
gum choose --header="Choose extra tools to install:" --no-limit \
|
||||
"General fonts" \
|
||||
"Godot" \
|
||||
"Btop" \
|
||||
"Fuzzel" \
|
||||
@@ -77,6 +78,8 @@ mapfile -t extratools < <(
|
||||
## Applying configs ##
|
||||
######################
|
||||
|
||||
env_to_set=()
|
||||
|
||||
for choice in "${desktop[@]}"; do
|
||||
case "$choice" in
|
||||
"Niri")
|
||||
@@ -84,6 +87,8 @@ for choice in "${desktop[@]}"; do
|
||||
yay -S --needed --noconfirm \
|
||||
niri \
|
||||
nautilus \
|
||||
tumbler \
|
||||
ffmpegthumbnailer \
|
||||
gnome-keyring \
|
||||
brightnessctl \
|
||||
cava \
|
||||
@@ -101,16 +106,18 @@ for choice in "${desktop[@]}"; do
|
||||
qt6-multimedia \
|
||||
dms-shell-bin \
|
||||
xwayland-satellite \
|
||||
ly \
|
||||
noto-fonts-emoji
|
||||
ly
|
||||
# greetd-dms-greeter-git
|
||||
|
||||
stow niri qt6ct --adopt
|
||||
|
||||
xdg-mime default org.gnome.nautilus.desktop inode/directory
|
||||
# xdg-mime default org.kde.dolphin.desktop inode/directory
|
||||
# xdg-mime default thunar.desktop inode/directory
|
||||
|
||||
mkdir -p "$HOME"/.config/environment.d
|
||||
echo "QT_QPA_PLATFORMTHEME=qt6ct" >>"$HOME"/.config/environment.d/90-qt.conf
|
||||
# echo "QT_QPA_PLATFORMTHEME=qt6ct" >>"$HOME"/.config/environment.d/90-qt.conf
|
||||
env_to_set+=("QT_QPA_PLATFORMTHEME=qt6ct")
|
||||
systemctl --user daemon-reload
|
||||
|
||||
systemctl --user enable dms
|
||||
@@ -121,7 +128,53 @@ for choice in "${desktop[@]}"; do
|
||||
# dms greeter sync
|
||||
sudo systemctl enable ly@tty1
|
||||
;;
|
||||
"Hyprland")
|
||||
sudo -v || exit 1
|
||||
yay -S --needed --noconfirm \
|
||||
hyprland \
|
||||
uwsm \
|
||||
nautilus \
|
||||
tumbler \
|
||||
ffmpegthumbnailer \
|
||||
gnome-keyring \
|
||||
brightnessctl \
|
||||
cava \
|
||||
candy-icons-git \
|
||||
power-profiles-daemon \
|
||||
qt6ct-kde \
|
||||
xdg-desktop-portal-gnome \
|
||||
xdg-desktop-portal-gtk \
|
||||
xdg-desktop-portal-wlr \
|
||||
quickshell-git \
|
||||
cliphist \
|
||||
wl-clipboard \
|
||||
dgop \
|
||||
matugen-bin \
|
||||
qt6-multimedia \
|
||||
dms-shell-bin \
|
||||
xwayland-satellite \
|
||||
ly
|
||||
|
||||
stow hyprland qt6ct --adopt
|
||||
|
||||
xdg-mime default org.gnome.nautilus.desktop inode/directory
|
||||
# xdg-mime default org.kde.dolphin.desktop inode/directory
|
||||
# xdg-mime default thunar.desktop inode/directory
|
||||
|
||||
mkdir -p "$HOME"/.config/environment.d
|
||||
# echo "QT_QPA_PLATFORMTHEME=qt6ct" >>"$HOME"/.config/environment.d/90-qt.conf
|
||||
env_to_set+=("QT_QPA_PLATFORMTHEME=qt6ct")
|
||||
systemctl --user daemon-reload
|
||||
|
||||
systemctl --user enable dms
|
||||
systemctl --user add-wants hyprland-session.target dms
|
||||
systemctl --user add-wants hyprland-session.target gnome-keyring-daemon.service
|
||||
|
||||
# dms greeter enable
|
||||
# dms greeter sync
|
||||
sudo systemctl enable ly@tty1
|
||||
|
||||
;;
|
||||
"KDE Plasma")
|
||||
sudo -v || exit 1
|
||||
pacman -S --needed --noconfirm plasma kde-applications
|
||||
@@ -178,6 +231,7 @@ for choice in "${tools[@]}"; do
|
||||
wine \
|
||||
protontricks \
|
||||
protonup-qt \
|
||||
protonplus \
|
||||
goverlay \
|
||||
vkbasalt \
|
||||
vulkan-tools
|
||||
@@ -238,6 +292,9 @@ extrapkgs=()
|
||||
|
||||
for choice in "${extratools[@]}"; do
|
||||
case "$choice" in
|
||||
"General Fonts")
|
||||
extrapkgs+=("noto-fonts" "noto-fonts-cjk" "noto-fonts-emoji")
|
||||
;;
|
||||
"Godot")
|
||||
extrapkgs+=("godots-bin")
|
||||
stow godot --adopt
|
||||
@@ -284,6 +341,12 @@ for choice in "${extratools[@]}"; do
|
||||
esac
|
||||
done
|
||||
|
||||
mkdir -p "$HOME"/.config/environment.d
|
||||
echo "$(
|
||||
IFS=$'\n'
|
||||
printf "%s\n" "${env_to_set[@]}" | sort -u
|
||||
)" >"$HOME"/.config/environment.d/90-dots.conf
|
||||
|
||||
extpkgstr=$(
|
||||
IFS=" "
|
||||
echo "${extrapkgs[*]}"
|
||||
|
||||
@@ -5,38 +5,6 @@
|
||||
config-notification {
|
||||
disable-failed
|
||||
}
|
||||
// Outputs from existing configuration
|
||||
output "eDP-1" {
|
||||
// Uncomment this line to disable this output.
|
||||
// off
|
||||
|
||||
// Resolution and, optionally, refresh rate of the output.
|
||||
// The format is "<width>x<height>" or "<width>x<height>@<refresh rate>".
|
||||
// If the refresh rate is omitted, niri will pick the highest refresh rate
|
||||
// for the resolution.
|
||||
// If the mode is omitted altogether or is invalid, niri will pick one automatically.
|
||||
// Run `niri msg outputs` while inside a niri instance to list all outputs and their modes.
|
||||
mode "1920x1080@144"
|
||||
|
||||
// You can use integer or fractional scale, for example use 1.5 for 150% scale.
|
||||
scale 1
|
||||
|
||||
// Transform allows to rotate the output counter-clockwise, valid values are:
|
||||
// normal, 90, 180, 270, flipped, flipped-90, flipped-180 and flipped-270.
|
||||
transform "normal"
|
||||
|
||||
// Position of the output in the global coordinate space.
|
||||
// This affects directional monitor actions like "focus-monitor-left", and cursor movement.
|
||||
// The cursor can only move between directly adjacent outputs.
|
||||
// Output scale and rotation has to be taken into account for positioning:
|
||||
// outputs are sized in logical, or scaled, pixels.
|
||||
// For example, a 3840×2160 output with scale 2.0 will have a logical size of 1920×1080,
|
||||
// so to put another output directly adjacent to it on the right, set its x to 1920.
|
||||
// If the position is unset or results in an overlap, the output is instead placed
|
||||
// automatically.
|
||||
position x=0 y=0
|
||||
}
|
||||
|
||||
|
||||
gestures {
|
||||
hot-corners {
|
||||
|
||||
250
niri/.config/niri/config.kdl.backup1771488007
Normal file
250
niri/.config/niri/config.kdl.backup1771488007
Normal file
@@ -0,0 +1,250 @@
|
||||
// This config is in the KDL format: https://kdl.dev
|
||||
// "/-" comments out the following node.
|
||||
// Check the wiki for a full description of the configuration:
|
||||
// https://github.com/YaLTeR/niri/wiki/Configuration:-Introduction
|
||||
config-notification {
|
||||
disable-failed
|
||||
}
|
||||
|
||||
gestures {
|
||||
hot-corners {
|
||||
off
|
||||
}
|
||||
}
|
||||
|
||||
// Input device configuration.
|
||||
// Find the full list of options on the wiki:
|
||||
// https://github.com/YaLTeR/niri/wiki/Configuration:-Input
|
||||
input {
|
||||
keyboard {
|
||||
xkb {
|
||||
}
|
||||
numlock
|
||||
}
|
||||
touchpad {
|
||||
natural-scroll
|
||||
// accel-profile "flat"
|
||||
}
|
||||
mouse {
|
||||
accel-profile "flat"
|
||||
accel-speed 0.5
|
||||
}
|
||||
trackpoint {
|
||||
}
|
||||
}
|
||||
// You can configure outputs by their name, which you can find
|
||||
// by running `niri msg outputs` while inside a niri instance.
|
||||
// The built-in laptop monitor is usually called "eDP-1".
|
||||
// Find more information on the wiki:
|
||||
// https://github.com/YaLTeR/niri/wiki/Configuration:-Outputs
|
||||
// Remember to uncomment the node by removing "/-"!
|
||||
|
||||
// Settings that influence how windows are positioned and sized.
|
||||
// Find more information on the wiki:
|
||||
// https://github.com/YaLTeR/niri/wiki/Configuration:-Layout
|
||||
layout {
|
||||
// Set gaps around windows in logical pixels.
|
||||
background-color "transparent"
|
||||
// When to center a column when changing focus, options are:
|
||||
// - "never", default behavior, focusing an off-screen column will keep at the left
|
||||
// or right edge of the screen.
|
||||
// - "always", the focused column will always be centered.
|
||||
// - "on-overflow", focusing a column will center it if it doesn't fit
|
||||
// together with the previously focused column.
|
||||
center-focused-column "never"
|
||||
// You can customize the widths that "switch-preset-column-width" (Mod+R) toggles between.
|
||||
preset-column-widths {
|
||||
// Proportion sets the width as a fraction of the output width, taking gaps into account.
|
||||
// For example, you can perfectly fit four windows sized "proportion 0.25" on an output.
|
||||
// The default preset widths are 1/3, 1/2 and 2/3 of the output.
|
||||
proportion 0.33333
|
||||
proportion 0.5
|
||||
proportion 0.66667
|
||||
// Fixed sets the width in logical pixels exactly.
|
||||
// fixed 1920
|
||||
}
|
||||
// You can also customize the heights that "switch-preset-window-height" (Mod+Shift+R) toggles between.
|
||||
// preset-window-heights { }
|
||||
// You can change the default width of the new windows.
|
||||
default-column-width { proportion 0.66667; }
|
||||
// If you leave the brackets empty, the windows themselves will decide their initial width.
|
||||
// default-column-width {}
|
||||
// By default focus ring and border are rendered as a solid background rectangle
|
||||
// behind windows. That is, they will show up through semitransparent windows.
|
||||
// This is because windows using client-side decorations can have an arbitrary shape.
|
||||
//
|
||||
// If you don't like that, you should uncomment `prefer-no-csd` below.
|
||||
// Niri will draw focus ring and border *around* windows that agree to omit their
|
||||
// client-side decorations.
|
||||
//
|
||||
// Alternatively, you can override it with a window rule called
|
||||
// `draw-border-with-background`.
|
||||
border {
|
||||
off
|
||||
width 4
|
||||
active-color "#707070" // Neutral gray
|
||||
inactive-color "#d0d0d0" // Light gray
|
||||
urgent-color "#cc4444" // Softer red
|
||||
}
|
||||
shadow {
|
||||
softness 30
|
||||
spread 5
|
||||
offset x=0 y=5
|
||||
color "#0007"
|
||||
}
|
||||
struts {
|
||||
}
|
||||
}
|
||||
layer-rule {
|
||||
match namespace="^quickshell$"
|
||||
place-within-backdrop true
|
||||
}
|
||||
overview {
|
||||
workspace-shadow {
|
||||
off
|
||||
}
|
||||
}
|
||||
// Add lines like this to spawn processes at startup.
|
||||
// Note that running niri as a session supports xdg-desktop-autostart,
|
||||
// which may be more convenient to use.
|
||||
// See the binds section below for more spawn examples.
|
||||
// This line starts waybar, a commonly used bar for Wayland compositors.
|
||||
spawn-at-startup "bash" "-c" "wl-paste --watch cliphist store &"
|
||||
environment {
|
||||
XDG_CURRENT_DESKTOP "niri"
|
||||
QT_QPA_PLATFORMTHEME "qt6ct"
|
||||
}
|
||||
hotkey-overlay {
|
||||
skip-at-startup
|
||||
}
|
||||
prefer-no-csd
|
||||
screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"
|
||||
animations {
|
||||
workspace-switch {
|
||||
spring damping-ratio=0.80 stiffness=523 epsilon=0.0001
|
||||
}
|
||||
window-open {
|
||||
duration-ms 150
|
||||
curve "ease-out-expo"
|
||||
}
|
||||
window-close {
|
||||
duration-ms 150
|
||||
curve "ease-out-quad"
|
||||
}
|
||||
horizontal-view-movement {
|
||||
spring damping-ratio=0.85 stiffness=423 epsilon=0.0001
|
||||
}
|
||||
window-movement {
|
||||
spring damping-ratio=0.75 stiffness=323 epsilon=0.0001
|
||||
}
|
||||
window-resize {
|
||||
spring damping-ratio=0.85 stiffness=423 epsilon=0.0001
|
||||
}
|
||||
config-notification-open-close {
|
||||
spring damping-ratio=0.65 stiffness=923 epsilon=0.001
|
||||
}
|
||||
screenshot-ui-open {
|
||||
duration-ms 200
|
||||
curve "ease-out-quad"
|
||||
}
|
||||
overview-open-close {
|
||||
spring damping-ratio=0.85 stiffness=800 epsilon=0.0001
|
||||
}
|
||||
}
|
||||
// Window rules let you adjust behavior for individual windows.
|
||||
// Find more information on the wiki:
|
||||
// https://github.com/YaLTeR/niri/wiki/Configuration:-Window-Rules
|
||||
// Work around WezTerm's initial configure bug
|
||||
// by setting an empty default-column-width.
|
||||
window-rule {
|
||||
// This regular expression is intentionally made as specific as possible,
|
||||
// since this is the default config, and we want no false positives.
|
||||
// You can get away with just app-id="wezterm" if you want.
|
||||
match app-id=r#"^org\.wezfurlong\.wezterm$"#
|
||||
default-column-width {}
|
||||
}
|
||||
window-rule {
|
||||
match app-id=r#"^org\.gnome\."#
|
||||
draw-border-with-background false
|
||||
geometry-corner-radius 12
|
||||
clip-to-geometry true
|
||||
}
|
||||
window-rule {
|
||||
match app-id=r#"^gnome-control-center$"#
|
||||
match app-id=r#"^pavucontrol$"#
|
||||
match app-id=r#"^nm-connection-editor$"#
|
||||
default-column-width { proportion 0.5; }
|
||||
open-floating false
|
||||
}
|
||||
window-rule {
|
||||
// match app-id=r#"^gnome-calculator$"#
|
||||
// match app-id=r#"^galculator$"#
|
||||
// match app-id=r#"^blueman-manager$"#
|
||||
// match app-id=r#"^org\.gnome\.Nautilus$"#
|
||||
// match app-id=r#"^steam$"#
|
||||
match app-id=r#"^xdg-desktop-portal$"#
|
||||
open-floating true
|
||||
}
|
||||
window-rule {
|
||||
match app-id=r#"^org\.wezfurlong\.wezterm$"#
|
||||
match app-id="Alacritty"
|
||||
match app-id="zen"
|
||||
match app-id="com.mitchellh.ghostty"
|
||||
match app-id="kitty"
|
||||
draw-border-with-background false
|
||||
}
|
||||
// window-rule {
|
||||
// match is-active=false
|
||||
// opacity 0.9
|
||||
// }
|
||||
window-rule {
|
||||
match app-id="zen" title="^Picture-in-Picture$"
|
||||
match app-id=r#"firefox$"# title="^Picture-in-Picture$"
|
||||
match app-id="zoom"
|
||||
open-floating true
|
||||
opacity 1.0
|
||||
}
|
||||
// Open dms windows as floating by default
|
||||
window-rule {
|
||||
match app-id=r#"org.quickshell$"#
|
||||
open-floating false
|
||||
}
|
||||
|
||||
// Custom window rules
|
||||
window-rule {
|
||||
match app-id="vesktop"
|
||||
match app-id="Ferdium"
|
||||
|
||||
open-on-output "DP-1"
|
||||
default-column-width { proportion 1.0; }
|
||||
}
|
||||
|
||||
// Steam notification
|
||||
window-rule {
|
||||
match app-id="steam" title=r#"^notificationtoasts_\d+_desktop$"#
|
||||
default-floating-position x=10 y=10 relative-to="bottom-right"
|
||||
}
|
||||
|
||||
debug {
|
||||
honor-xdg-activation-with-invalid-serial
|
||||
}
|
||||
|
||||
// Override to disable super+tab
|
||||
recent-windows {
|
||||
binds {
|
||||
Alt+Tab { next-window scope="output"; }
|
||||
Alt+Shift+Tab { previous-window scope="output"; }
|
||||
Alt+grave { next-window filter="app-id"; }
|
||||
Alt+Shift+grave { previous-window filter="app-id"; }
|
||||
}
|
||||
}
|
||||
|
||||
// Include dms files
|
||||
include "dms/colors.kdl"
|
||||
include "dms/layout.kdl"
|
||||
include "dms/alttab.kdl"
|
||||
include "dms/binds.kdl"
|
||||
|
||||
include "dms/outputs.kdl"
|
||||
|
||||
include "dms/cursor.kdl"
|
||||
0
niri/.config/niri/dms/windowrules.kdl
Normal file
0
niri/.config/niri/dms/windowrules.kdl
Normal file
1
nvim/.config/nvim/.gitignore
vendored
1
nvim/.config/nvim/.gitignore
vendored
@@ -1 +1,2 @@
|
||||
lazy-lock.json
|
||||
dankcolors.lua
|
||||
|
||||
Reference in New Issue
Block a user