20 Commits
Author SHA1 Message Date
janishutz 03bbcd2434 fix: yazi opener config 2026-08-24 09:39:13 +02:00
janishutz f484f5a2c8 chore: add basic battery config 2026-08-23 14:05:25 +02:00
janishutz a43d446f2c fix: qt6ct settings incorrect 2026-08-23 13:19:18 +02:00
janishutz 2d1e44d45b fix: dev-containers script help 2026-08-23 12:06:41 +02:00
janishutz 1fc8748f91 feat: dev container for rust 2026-08-23 12:04:56 +02:00
janishutz 95825dc8d1 fix(yazi): file openers 2026-08-23 11:27:25 +02:00
janishutz 4cfee8e16b feat: use grim, slurp and satty for screenshots 2026-08-23 08:35:34 +02:00
janishutz 9387be3be8 feat: swaync styling and config 2026-08-23 08:12:41 +02:00
janishutz 49d3f7550e feat: generate themes 2026-08-21 18:11:18 +02:00
janishutz 2fdc8e735a fix: yazi opener config 2026-08-21 18:07:52 +02:00
janishutz 8f0f861b5f feat: fix the bind 2026-08-21 18:07:22 +02:00
janishutz 33b27d9410 feat: yazi bind to go to wallpapers 2026-08-21 18:07:01 +02:00
janishutz 3517e7be3f feat: yazi bind to install theme from image 2026-08-21 18:05:03 +02:00
janishutz ffdf09d173 feat: improved setup script 2026-08-21 17:57:34 +02:00
janishutz 3ca3f2eece feat: discord theme 2026-08-21 17:31:31 +02:00
janishutz 17e404b67c feat: more standard kitty colours 2026-08-21 17:06:16 +02:00
janishutz 66f85fe590 feat: add some ZSH config 2026-08-21 17:03:57 +02:00
janishutz 1a97f301c2 feat!: migration to waybar 2026-08-21 15:36:27 +02:00
janishutz dce6a6cafb feat: prepare for DMS removal 2026-08-21 11:20:15 +02:00
janishutz 2ab86906c7 feat: add back old waybar config 2026-08-19 16:13:23 +02:00
64 changed files with 1291 additions and 1573 deletions
-5
View File
@@ -11,11 +11,6 @@ For my neovim config, see [here](https://git.janishutz.com/janishutz/nvim)
The whole desktop will likely eventually move back to Waybar (because it has evolved massively since I last used it and now supports custom menus) The whole desktop will likely eventually move back to Waybar (because it has evolved massively since I last used it and now supports custom menus)
DankMaterialShell is a stop-gap solution, which, albeit it looking nice,
doesn't go well with my ethos of using non-slop programs.
Luckily, I can keep most of my configs when moving to something else, because I will be using Matugen.
The plan is to use some of the config templates from DMS (or some other source) for matugen for my own desktop with some changes
Furthermore, my system may migrate to NixOS by early September 2026, to finally have my laptop and desktop configs synced properly Furthermore, my system may migrate to NixOS by early September 2026, to finally have my laptop and desktop configs synced properly
-16
View File
@@ -1,16 +0,0 @@
# TODOs
- [X] Notifications management via dms
- [X] Launcher via dms
- [X] DMS screenshots
- [X] Hyprland theming using mutagen with dms integration
- [ ] DMS config sync to here using script
- [ ] Remove `decman` because it's a pain and use smaller scope `archmgr` (only copy all files to locations always and package diff)
- [ ] Generate matugen stuff from colour in new script
- [X] Binds for other DMS features (with subcommand)
- [X] Finish decman config
- [X] Remove wlogout and replace with dms setup
- [ ] Yazi theming
- [X] Kitty theming
- [ ] Fish theming
- [ ] Fastfetch theming
- [X] DMS instead of Hyprlock for locker?
-10
View File
@@ -1,10 +0,0 @@
grub_theme = {
"desktop": "/usr/share/grub/themes/monterey-grub-theme/theme.txt",
"laptop": "/usr/share/grub/themes/monterey-grub-theme/theme.txt",
}
grub_os_prober = {"desktop": True, "laptop": False}
kernel_args_all = {"desktop": "", "laptop": ""}
kernel_args_debug_only = {"desktop": "", "laptop": ""}
kernel_args_normal_only = {"desktop": "", "laptop": ""}
user = "janis"
+1 -1
View File
@@ -1,6 +1,6 @@
[general] [general]
import = [ import = [
"~/.config/alacritty/dank-theme.toml" "~/.config/alacritty/theme.toml"
] ]
[font] [font]
-31
View File
@@ -1,31 +0,0 @@
[colors.primary]
background = '#0e1513'
foreground = '#dde4e1'
[colors.selection]
text = '#dde4e1'
background = '#005049'
[colors.cursor]
text = '#0e1513'
cursor = '#82d5c9'
[colors.normal]
black = '#0e1513'
red = '#f49c6e'
green = '#6ad571'
yellow = '#fff372'
blue = '#6bcabc'
magenta = '#1c6258'
cyan = '#82d5c9'
white = '#d2dfdd'
[colors.bright]
black = '#808a88'
red = '#ffc09f'
green = '#a5ffab'
yellow = '#fff7a5'
blue = '#9ceadf'
magenta = '#b9fff4'
cyan = '#d2fff8'
white = '#f8fffe'
-3
View File
@@ -109,9 +109,6 @@ if status is-interactive
echo -n $white'─'$__fish_prompt_char $normal echo -n $white'─'$__fish_prompt_char $normal
end end
# NOTE: disable `VIRTUAL_ENV_DISABLE_PROMPT` in `config.fish`
# see: https://virtualenv.pypa.io/en/latest/reference/#envvar-VIRTUAL_ENV_DISABLE_PROMPT
# support for virtual env name
if set -q VIRTUAL_ENV if set -q VIRTUAL_ENV
echo -n "($turquoise"(basename "$VIRTUAL_ENV")"$white)" echo -n "($turquoise"(basename "$VIRTUAL_ENV")"$white)"
end end
+1
View File
@@ -0,0 +1 @@
@import 'colors.css';
+2 -1
View File
@@ -51,8 +51,9 @@ require("hyprland.windowrules.idle")
require("hyprland.windowrules.tags") require("hyprland.windowrules.tags")
require("hyprland.windowrules.workspaces") require("hyprland.windowrules.workspaces")
-- Workspace rules -- Workspace & Layer rules
require("hyprland.workspacerules.main")(laptop_config, is_docked) require("hyprland.workspacerules.main")(laptop_config, is_docked)
require("hyprland.layerrules")
-- Monitors -- Monitors
require("hyprland.monitors")(laptop_config, is_docked) require("hyprland.monitors")(laptop_config, is_docked)
+6 -26
View File
@@ -3,13 +3,12 @@ local function exit_submap()
end end
-- TODO: Update this for laptop -- TODO: Update this for laptop
hl.bind("code:232", hl.dsp.exec_cmd("brightnessctl -S"), { description = "Doesn't do anything yet" }) hl.bind("code:232", hl.dsp.exec_cmd("brightnessctl set 5%-"), { description = "Decrease screen brightness" })
-- bind = ,code:232, exec, light -U 5 && notify-send 'Display brightness decreased by 5%' hl.bind("code:233", hl.dsp.exec_cmd("brightnessctl set +5%"), { description = "Increase screen brightness" })
-- bind = ,code:233, exec, light -A 5 && notify-send 'Display brightness increased by 5%'
hl.bind("code:123", hl.dsp.exec_cmd("pamixer -i 5"), { description = "Increase volume by 5%" }) hl.bind("code:123", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"), { description = "Increase volume by 5%" })
hl.bind("code:122", hl.dsp.exec_cmd("pamixer -d 5"), { description = "Decrease volume by 5%" }) hl.bind("code:122", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"), { description = "Decrease volume by 5%" })
hl.bind("code:121", hl.dsp.exec_cmd("pamixer t"), { description = "Open mixer" }) hl.bind("code:121", hl.dsp.exec_cmd("hyprpwcenter"), { description = "Open mixer" })
hl.define_submap("device", function() hl.define_submap("device", function()
hl.bind("m", function() hl.bind("m", function()
@@ -33,31 +32,12 @@ hl.define_submap("device", function()
hl.dispatch(hl.dsp.exec_cmd("notify-send 'Enabled Trackpad' --app-name='Hyprctl'")) hl.dispatch(hl.dsp.exec_cmd("notify-send 'Enabled Trackpad' --app-name='Hyprctl'"))
end, { description = "Enable trackpad" }) end, { description = "Enable trackpad" })
-- ── DMS controls ─────────────────────────────────────────────────
-- clipboard history -- clipboard history
hl.bind("h", function() hl.bind("h", function()
hl.dispatch(hl.dsp.exec_cmd("dms ipc call clipboard toggle")) hl.dispatch(hl.dsp.exec_cmd("cliphist list | rofi -dmenu -display-columns 2 | cliphist decode | wl-copy"))
exit_submap() exit_submap()
end, { description = "Toggle clipboard history panel" }) end, { description = "Toggle clipboard history panel" })
-- Dash
hl.bind("d", function()
hl.dispatch(hl.dsp.exec_cmd("dms ipc call dash toggle"))
exit_submap()
end, { description = "Toggle DMS dash (top left)" })
-- Wallpaper
hl.bind("w", function()
hl.dispatch(hl.dsp.exec_cmd("dms ipc call dankdash wallpaper"))
exit_submap()
end, { description = "Open DMS wallpaper picker" })
-- Settings
hl.bind("s", function()
hl.dispatch(hl.dsp.exec_cmd("dms ipc call settings toggle"))
exit_submap()
end, { description = "Toggle DMS settings" })
hl.bind("Escape", function() hl.bind("Escape", function()
exit_submap() exit_submap()
end) end)
-2
View File
@@ -5,8 +5,6 @@ end
hl.bind("SUPER + SHIFT + H", hl.dsp.group.prev(), { description = "Go to previous group member" }) hl.bind("SUPER + SHIFT + H", hl.dsp.group.prev(), { description = "Go to previous group member" })
hl.bind("SUPER + SHIFT + L", hl.dsp.group.next(), { description = "Go to next group member" }) hl.bind("SUPER + SHIFT + L", hl.dsp.group.next(), { description = "Go to next group member" })
-- TODO: Improve mapping (also global mapping, for moving between els if to use regularly)
-- Improve colours
hl.define_submap("groups", function() hl.define_submap("groups", function()
hl.bind("c", function() hl.bind("c", function()
hl.dispatch(hl.dsp.group.toggle()) hl.dispatch(hl.dsp.group.toggle())
+5 -4
View File
@@ -8,8 +8,9 @@ hl.bind("SUPER + A", hl.dsp.submap("workspace"), { description = "Workspace cont
hl.bind("SUPER + P", hl.dsp.submap("groupedlaunch"), { description = "Launch groups of programs" }) hl.bind("SUPER + P", hl.dsp.submap("groupedlaunch"), { description = "Launch groups of programs" })
hl.bind("SUPER + Q", hl.dsp.window.close(), { description = "Close active window" }) hl.bind("SUPER + Q", hl.dsp.window.close(), { description = "Close active window" })
hl.bind("SUPER + Space", hl.dsp.exec_cmd("dms ipc call spotlight toggle"), { description = "Toggle app launcher" }) hl.bind(
hl.bind("SUPER + SHIFT + Space", hl.dsp.exec_cmd("dms ipc call spotlight-bar toggle"), { description = "Toggle app launcher as small bar" }) "SUPER + Space",
hl.dsp.exec_cmd('killall rofi || rofi -show combi -modes combi -combi-modes "window,drun,run"'),
{ description = "Toggle app launcher" }
)
hl.bind("SUPER + Escape", hl.dsp.exec_cmd("wlogout"), { description = "Toggle logout screen" }) hl.bind("SUPER + Escape", hl.dsp.exec_cmd("wlogout"), { description = "Toggle logout screen" })
hl.bind("SUPER + I", hl.dsp.exec_cmd("dms ipc call control-center open"), { description = "Toggle control centre" })
hl.bind("SUPER + CTRL + H", hl.dsp.exec_cmd("dms ipc call keybinds toggle hyprland"), { description = "Toggle keybinds panel" })
+6 -6
View File
@@ -4,32 +4,32 @@ end
hl.define_submap("notifications", function() hl.define_submap("notifications", function()
hl.bind("c", function() hl.bind("c", function()
hl.dispatch(hl.dsp.exec_cmd("dms ipc call notifications dismissAllPopups")) hl.dispatch(hl.dsp.exec_cmd("swaync-client --hide-all"))
exit_submap() exit_submap()
end, { description = "Hide notifications" }) end, { description = "Hide notifications" })
hl.bind("d", function() hl.bind("d", function()
hl.dispatch(hl.dsp.exec_cmd("dms ipc call notifications clearAll")) hl.dispatch(hl.dsp.exec_cmd("swaync-client --close-all"))
exit_submap() exit_submap()
end, { description = "Delete all notifications" }) end, { description = "Delete all notifications" })
hl.bind("m", function() hl.bind("m", function()
hl.dispatch(hl.dsp.exec_cmd("dms ipc call notifications toggleDoNotDisturb")) hl.dispatch(hl.dsp.exec_cmd("swaync-client -d"))
exit_submap() exit_submap()
end, { description = "Toggle Do Not Disturb" }) end, { description = "Toggle Do Not Disturb" })
hl.bind("h", function() hl.bind("h", function()
hl.dispatch(hl.dsp.exec_cmd("dms ipc call notifications close")) hl.dispatch(hl.dsp.exec_cmd("swaync-client -cp"))
exit_submap() exit_submap()
end, { description = "Close notification panel" }) end, { description = "Close notification panel" })
hl.bind("s", function() hl.bind("s", function()
hl.dispatch(hl.dsp.exec_cmd("dms ipc call notifications open")) hl.dispatch(hl.dsp.exec_cmd("swaync-client -op"))
exit_submap() exit_submap()
end, { description = "Open notification panel" }) end, { description = "Open notification panel" })
hl.bind("t", function() hl.bind("t", function()
hl.dispatch(hl.dsp.exec_cmd("dms ipc call notifications toggle")) hl.dispatch(hl.dsp.exec_cmd("swaync-client -t"))
exit_submap() exit_submap()
end, { description = "Toggle notification panel" }) end, { description = "Toggle notification panel" })
+15 -7
View File
@@ -4,32 +4,40 @@ end
hl.define_submap("screenshot", function() hl.define_submap("screenshot", function()
hl.bind("y", function() hl.bind("y", function()
hl.dispatch(hl.dsp.exec_cmd("dms screenshot --no-file")) hl.dispatch(hl.dsp.exec_cmd('grim -g "$(slurp -d)" - | wl-copy'))
exit_submap() exit_submap()
end, { description = "Take sceenshot of are and Yank" }) end, { description = "Take sceenshot of area and Yank" })
hl.bind("c", function() hl.bind("c", function()
hl.dispatch(hl.dsp.exec_cmd("dms screenshot")) hl.dispatch(
hl.dsp.exec_cmd(
'grim -g "$(slurp -d)" - | satty -f - --copy-command wl-copy -o "~/Pictures/Screenshots/%Y-%m-%dT%H:%M:%SZ%z.png"'
)
)
exit_submap() exit_submap()
end, { description = "Take screenshot of area, yank and save" }) end, { description = "Take screenshot of area, yank and save" })
hl.bind("s", function() hl.bind("s", function()
hl.dispatch(hl.dsp.exec_cmd("dms screenshot --no-clipboard")) hl.dispatch(hl.dsp.exec_cmd("grim -g '$(slurp -d)' $(xdg-user-dir PICTURES)/Screenshots/$(date +'%Y-%m-%dT%H:%M:%SZ%z.png')"))
exit_submap() exit_submap()
end, { description = "Take screenshot of area and Save" }) end, { description = "Take screenshot of area and Save" })
hl.bind("SHIFT + y", function() hl.bind("SHIFT + y", function()
hl.dispatch(hl.dsp.exec_cmd("dms screenshot full --no-file")) hl.dispatch(hl.dsp.exec_cmd("grim - | wl-copy"))
exit_submap() exit_submap()
end, { description = "Take screenshot and Yank" }) end, { description = "Take screenshot and Yank" })
hl.bind("SHIFT + c", function() hl.bind("SHIFT + c", function()
hl.dispatch(hl.dsp.exec_cmd("dms screenshot full")) hl.dispatch(
hl.dsp.exec_cmd(
'grim - | satty -f - --copy-command wl-copy -o "~/Pictures/Screenshots/%Y-%m-%dT%H:%M:%SZ%z.png"'
)
)
exit_submap() exit_submap()
end, { description = "Take sceenshot, yank and save" }) end, { description = "Take sceenshot, yank and save" })
hl.bind("SHIFT + s", function() hl.bind("SHIFT + s", function()
hl.dispatch(hl.dsp.exec_cmd("dms screenshot full --no-clipboard")) hl.dispatch(hl.dsp.exec_cmd("grim $(xdg-user-dir PICTURES)/Screenshots/$(date +'%Y-%m-%dT%H:%M:%SZ%z.png')"))
exit_submap() exit_submap()
end, { description = "Take screenshot and Save" }) end, { description = "Take screenshot and Save" })
-1
View File
@@ -18,7 +18,6 @@ hl.config({
dim_inactive = true, dim_inactive = true,
dim_strength = 0.1, dim_strength = 0.1,
-- TODO: Consider adding glow?
}, },
animations = { animations = {
enabled = true, enabled = true,
+3 -1
View File
@@ -15,8 +15,10 @@ return function(is_laptop)
-- Start bar and utilities -- Start bar and utilities
hl.exec_cmd("hypridle") hl.exec_cmd("hypridle")
hl.exec_cmd("waybar")
hl.exec_cmd("hyprpaper")
hl.exec_cmd("swaync")
hl.exec_cmd("nextcloud --background") hl.exec_cmd("nextcloud --background")
hl.exec_cmd("dms run")
hl.exec_cmd("wl-paste --watch cliphist store") hl.exec_cmd("wl-paste --watch cliphist store")
if is_laptop then if is_laptop then
+4
View File
@@ -0,0 +1,4 @@
hl.layer_rule({
dim_around = true,
match = { namespace = "rofi" },
})
+3
View File
@@ -0,0 +1,3 @@
ui {
window_size = 400 800
}
+1 -2
View File
@@ -3,8 +3,7 @@
# │ Kitty Config │ # │ Kitty Config │
# ╰────────────────────────────────────────────────╯ # ╰────────────────────────────────────────────────╯
# ──────────────────────────────────────────────────────────────────── # ────────────────────────────────────────────────────────────────────
include dank-tabs.conf include colors.conf
include dank-theme.conf
# ┌ ┐ # ┌ ┐
+14 -7
View File
@@ -1,9 +1,16 @@
# Matugen configs # Matugen configs
Shamelessly copied from [End-4's dotfiles](https://github.com/end-4/dots-hyprland/tree/main/dots/.config/matugen) Sources:
- [End-4's dotfiles](https://github.com/end-4/dots-hyprland/tree/main/dots/.config/matugen)
- [InioX matugen themes](https://github.com/InioX/matugen-themes)
## Config files
# TODOs - Hyprland (my own)
- [ ] Custom yazi theme - Hyprlock (my own)
- [ ] Qt theme - Hyprtoolkit (my own)
- [X] Remove unneeded elements - Yazi (my own)
- [ ] Quickshell stuff - Wlogout (Colour template files from InioX)
- Waybar (Colour template files from InioX)
- Discord theme (fully from InioX)
- GTK (From InioX)
- Swaync (from InioX)
- Qt TODO!
+54
View File
@@ -1,18 +1,72 @@
[config] [config]
version_check = false version_check = false
# From https://github.com/InioX/matugen-themes
[templates.gtk3]
input_path = '~/.config/matugen/templates/gtk/colors.css'
output_path = '~/.config/gtk-3.0/colors.css'
post_hook = 'gsettings set org.gnome.desktop.interface gtk-theme ""; gsettings set org.gnome.desktop.interface gtk-theme adw-gtk3-{{mode}}'
[templates.gtk4]
input_path = '~/.config/matugen/templates/gtk/colors.css'
output_path = '~/.config/gtk-4.0/colors.css'
post_hook = '~/.config/matugen/post-hook-scripts/gtk-themes-reload.sh'
[templates.waybar-colors]
input_path = '~/.config/matugen/templates/colors.css'
output_path = "~/.config/waybar/colors.css"
post_hook = "swaync-client -rs"
[templates.color-scheme]
input_path = '~/.config/matugen/templates/qt/colors.colors'
output_path = '~/.local/share/color-schemes/Matugen.colors'
[templates.kitty]
input_path = '~/.config/matugen/templates/kitty/colors.conf'
output_path = '~/.config/kitty/colors.conf'
[templates.alacritty]
input_path = '~/.config/matugen/templates/alacritty/theme.toml'
output_path = '~/.config/alacritty/colors.toml'
[templates.vesktop]
input_path = '~/.config/matugen/templates/vesktop/midnight.css'
output_path = '~/.config/vesktop/themes/midnight-discord.css'
# From https://github.com/ErikReider/Linux/blob/master/dotfiles/.config/swaync/style.css
[templates.swaync]
input_path = '~/.config/matugen/templates/swaync/style.css'
output_path = "~/.config/swaync/style.css"
post_hook = "swaync-client -rs"
# My own
[templates.hyprland] [templates.hyprland]
input_path = '~/.config/matugen/templates/hyprland/colors.lua' input_path = '~/.config/matugen/templates/hyprland/colors.lua'
output_path = '~/.config/hypr/hyprland/colors.lua' output_path = '~/.config/hypr/hyprland/colors.lua'
[templates.waybar]
input_path = '~/.config/matugen/templates/waybar/style.css'
output_path = '~/.config/waybar/style.css'
post_hook = 'pkill -SIGUSR2 waybar'
[templates.hyprlock] [templates.hyprlock]
input_path = '~/.config/matugen/templates/hyprland/hyprlock-colors.conf' input_path = '~/.config/matugen/templates/hyprland/hyprlock-colors.conf'
output_path = '~/.config/hypr/hyprlock-colors.conf' output_path = '~/.config/hypr/hyprlock-colors.conf'
[templates.hyprpaper]
input_path = '~/.config/matugen/templates/hyprland/hyprpaper.conf'
output_path = '~/.config/hypr/hyprpaper.conf'
post_hook = 'pkill -SIGUSR2 hyprpaper'
[templates.wlogout] [templates.wlogout]
input_path = '~/.config/matugen/templates/wlogout/style.css' input_path = '~/.config/matugen/templates/wlogout/style.css'
output_path = '~/.config/wlogout/style.css' output_path = '~/.config/wlogout/style.css'
[templates.rofi]
input_path = '~/.config/matugen/templates/rofi/style.rasi'
output_path = '~/.config/rofi/style.rasi'
[templates.yazi] [templates.yazi]
input_path = '~/.config/matugen/templates/yazi/theme.toml' input_path = '~/.config/matugen/templates/yazi/theme.toml'
output_path = '~/.config/yazi/theme.toml' output_path = '~/.config/yazi/theme.toml'
@@ -0,0 +1,13 @@
#!/usr/bin/env bash
# Thanks to https://github.com/InioX/matugen-themes/blob/main/post-hook-scripts/gtk-themes-reload.sh
current=$(gsettings get org.gnome.desktop.interface color-scheme)
if [[ "$current" == "'prefer-dark'" ]]; then
gsettings set org.gnome.desktop.interface color-scheme prefer-light
gsettings set org.gnome.desktop.interface color-scheme prefer-dark
else
gsettings set org.gnome.desktop.interface color-scheme prefer-dark
gsettings set org.gnome.desktop.interface color-scheme prefer-light
fi
@@ -0,0 +1,68 @@
[colors.primary]
background = '{{colors.background.default.hex}}'
foreground = '{{colors.on_surface.default.hex}}'
[colors.cursor]
text = '{{colors.on_surface.default.hex}}'
cursor = '{{colors.on_surface_variant.default.hex}}'
[colors.vi_mode_cursor]
text = '{{colors.background.default.hex}}'
cursor = '{{colors.primary.default.hex}}'
[colors.search.matches]
foreground = '{{colors.surface_variant.default.hex}}'
background = '{{colors.tertiary.default.hex}}'
[colors.search.focused_match]
foreground = '{{colors.surface_variant.default.hex}}'
background = '{{colors.primary.default.hex}}'
[colors.footer_bar]
foreground = '{{colors.surface_variant.default.hex}}'
background = '{{colors.inverse_surface.default.hex}}'
[colors.hints.start]
foreground = '{{colors.surface_variant.default.hex}}'
background = '{{colors.secondary.default.hex}}'
[colors.hints.end]
foreground = '{{colors.surface_variant.default.hex}}'
background = '{{colors.secondary.default.hex}}'
[colors.selection]
text = '{{colors.background.default.hex}}'
background = '{{colors.primary.default.hex}}'
[colors.normal]
black = '#181818'
red = '{{colors.error.default.hex}}'
green = '{{colors.primary.default.hex}}'
yellow = '{{colors.inverse_primary.default.hex}}'
blue = '{{colors.primary.default.hex}}'
magenta = '{{colors.tertiary.default.hex}}'
cyan = '{{colors.secondary.default.hex}}'
white = '#BAC2DE'
[colors.bright]
black = '#585B70'
red = '#F38BA8'
green = '#A6E3A1'
yellow = '#F9E2AF'
blue = '#89B4FA'
magenta = '#F5C2E7'
cyan = '#94E2D5'
white = '#A6ADC8'
[colors.dim]
black = '#45475A'
red = '#F38BA8'
green = '#A6E3A1'
yellow = '#F9E2AF'
blue = '#89B4FA'
magenta = '#F5C2E7'
cyan = '#94E2D5'
white = '#BAC2DE'
+7
View File
@@ -0,0 +1,7 @@
/*
* Css Colors
* Generated with Matugen
*/
<* for name, value in colors *>
@define-color {{name}} {{value.default.hex}};
<* endfor *>
+22
View File
@@ -0,0 +1,22 @@
/*
* GTK Colors
* Generated with Matugen
*/
@define-color accent_color {{colors.primary_fixed_dim.default.hex}};
@define-color accent_fg_color {{colors.on_primary_fixed.default.hex}};
@define-color accent_bg_color {{colors.primary_fixed_dim.default.hex}};
@define-color window_bg_color {{colors.surface_dim.default.hex}};
@define-color window_fg_color {{colors.on_surface.default.hex}};
@define-color headerbar_bg_color {{colors.surface_dim.default.hex}};
@define-color headerbar_fg_color {{colors.on_surface.default.hex}};
@define-color popover_bg_color {{colors.surface_dim.default.hex}};
@define-color popover_fg_color {{colors.on_surface.default.hex}};
@define-color view_bg_color {{colors.surface.default.hex}};
@define-color view_fg_color {{colors.on_surface.default.hex}};
@define-color card_bg_color {{colors.surface.default.hex}};
@define-color card_fg_color {{colors.on_surface.default.hex}};
@define-color sidebar_bg_color @window_bg_color;
@define-color sidebar_fg_color @window_fg_color;
@define-color sidebar_border_color @window_bg_color;
@define-color sidebar_backdrop_color @window_bg_color;
@@ -0,0 +1,5 @@
wallpaper {
monitor =
path = {{image}}
fit_mode = cover
}
@@ -3,8 +3,13 @@
background = rgba({{colors.background.default.hex_stripped}}FF) background = rgba({{colors.background.default.hex_stripped}}FF)
base = rgba({{colors.surface.default.hex_stripped}}FF) base = rgba({{colors.surface.default.hex_stripped}}FF)
alternate_base = rgba({{colors.surface.default.hex_stripped | lighten: -5.0}}FF)
text = rgba({{colors.on_background.default.hex_stripped}}FF) text = rgba({{colors.on_background.default.hex_stripped}}FF)
accent = rgba({{colors.primary.default.hex_stripped}}FF) accent = rgba({{colors.primary.default.hex_stripped}}FF)
accent_secondary = rgba({{colors.secondary.default.hex_stripped}}FF) accent_secondary = rgba({{colors.secondary.default.hex_stripped}}FF)
font_family = Comfortaa font_family = Comfortaa
font_family_monospace = Source Code Pro font_family_monospace = Source Code Pro
font_size = 13
h1_size = 22
h2_size = 18
h3_size = 15
@@ -0,0 +1,27 @@
# --- Main Colors ---
background {{ colors.surface.default.hex | lighten: -2.5 }}
foreground {{ colors.on_surface.default.hex }}
cursor {{ colors.on_surface.default.hex }}
cursor_text_color {{ colors.surface.default.hex }}
selection_background {{ colors.secondary_container.default.hex }}
selection_foreground {{ colors.on_secondary_container.default.hex }}
url_color {{ colors.tertiary.default.hex }}
# --- UI Elements ---
active_tab_foreground {{ colors.on_primary.default.hex }}
active_tab_background {{ colors.primary.default.hex }}
inactive_tab_foreground {{ colors.on_primary_container.default.hex }}
inactive_tab_background {{ colors.primary_container.default.hex }}
active_border_color {{ colors.primary.default.hex }}
inactive_border_color {{ colors.outline.default.hex }}
# --- Marks ---
mark1_foreground {{ colors.on_primary_fixed.default.hex }}
mark1_background {{ colors.primary_fixed.default.hex }}
mark2_foreground {{ colors.on_secondary_fixed.default.hex }}
mark2_background {{ colors.secondary_fixed.default.hex }}
mark3_foreground {{ colors.on_tertiary_fixed.default.hex }}
mark3_background {{ colors.tertiary_fixed.default.hex }}
+149
View File
@@ -0,0 +1,149 @@
[ColorEffects:Disabled]
Color={{colors.surface_dim.default.hex}}
ColorAmount=0
ColorEffect=0
ContrastAmount=0.65
ContrastEffect=1
IntensityAmount=0.1
IntensityEffect=2
[ColorEffects:Inactive]
ChangeSelectionColor=true
Color={{colors.surface_variant.default.hex}}
ColorAmount=0.025
ColorEffect=2
ContrastAmount=0.1
ContrastEffect=2
Enable=false
IntensityAmount=0
IntensityEffect=0
[Colors:Button]
BackgroundAlternate={{colors.surface_container_low.default.hex}}
BackgroundNormal={{colors.surface_container_high.default.hex}}
DecorationFocus={{colors.primary.default.hex}}
DecorationHover={{colors.primary.default.hex}}
ForegroundActive={{colors.primary.default.hex}}
ForegroundInactive={{colors.on_surface_variant.default.hex}}
ForegroundLink={{colors.secondary.default.hex}}
ForegroundNegative={{colors.error.default.hex}}
ForegroundNeutral={{colors.tertiary.default.hex}}
ForegroundNormal={{colors.on_surface.default.hex}}
ForegroundPositive={{colors.tertiary_fixed.default.hex}}
ForegroundVisited={{colors.on_secondary_container.default.hex}}
[Colors:Complementary]
BackgroundAlternate={{colors.surface_container_low.default.hex}}
BackgroundNormal={{colors.surface.default.hex}}
DecorationFocus={{colors.primary.default.hex}}
DecorationHover={{colors.primary.default.hex}}
ForegroundActive={{colors.primary.default.hex}}
ForegroundInactive={{colors.on_surface_variant.default.hex}}
ForegroundLink={{colors.secondary.default.hex}}
ForegroundNegative={{colors.error.default.hex}}
ForegroundNeutral={{colors.tertiary.default.hex}}
ForegroundNormal={{colors.on_primary_container.default.hex}}
ForegroundPositive={{colors.tertiary_fixed.default.hex}}
ForegroundVisited={{colors.on_secondary_container.default.hex}}
[Colors:Header]
BackgroundAlternate={{colors.surface.default.hex}}
BackgroundNormal={{colors.surface_container.default.hex}}
DecorationFocus={{colors.primary.default.hex}}
DecorationHover={{colors.primary.default.hex}}
ForegroundActive={{colors.primary.default.hex}}
ForegroundInactive={{colors.on_surface_variant.default.hex}}
ForegroundLink={{colors.secondary.default.hex}}
ForegroundNegative={{colors.error.default.hex}}
ForegroundNeutral={{colors.tertiary.default.hex}}
ForegroundNormal={{colors.on_surface.default.hex}}
ForegroundPositive={{colors.tertiary_fixed.default.hex}}
ForegroundVisited={{colors.on_secondary_container.default.hex}}
[Colors:Header][Inactive]
BackgroundAlternate={{colors.surface_container.default.hex}}
BackgroundNormal={{colors.surface_container.default.hex}}
DecorationFocus={{colors.primary.default.hex}}
DecorationHover={{colors.primary.default.hex}}
ForegroundActive={{colors.primary.default.hex}}
ForegroundInactive={{colors.on_surface_variant.default.hex}}
ForegroundLink={{colors.secondary.default.hex}}
ForegroundNegative={{colors.error.default.hex}}
ForegroundNeutral={{colors.tertiary.default.hex}}
ForegroundNormal={{colors.on_surface.default.hex}}
ForegroundPositive={{colors.tertiary_fixed.default.hex}}
ForegroundVisited={{colors.on_secondary_container.default.hex}}
[Colors:Selection]
BackgroundAlternate={{colors.surface_container_low.default.hex}}
BackgroundNormal={{colors.primary.default.hex}}
DecorationFocus={{colors.primary.default.hex}}
DecorationHover={{colors.primary.default.hex}}
ForegroundActive={{colors.on_primary.default.hex}}
ForegroundInactive={{colors.on_surface_variant.default.hex}}
ForegroundLink={{colors.secondary_fixed.default.hex}}
ForegroundNegative={{colors.error_container.default.hex}}
ForegroundNeutral={{colors.tertiary_fixed_dim.default.hex}}
ForegroundNormal={{colors.secondary_fixed.default.hex}}
ForegroundPositive={{colors.tertiary_container.default.hex}}
ForegroundVisited={{colors.on_secondary_container.default.hex}}
[Colors:Tooltip]
BackgroundAlternate={{colors.surface.default.hex}}
BackgroundNormal={{colors.surface_container.default.hex}}
DecorationFocus={{colors.primary.default.hex}}
DecorationHover={{colors.primary.default.hex}}
ForegroundActive={{colors.primary.default.hex}}
ForegroundInactive={{colors.on_surface_variant.default.hex}}
ForegroundLink={{colors.secondary.default.hex}}
ForegroundNegative={{colors.error.default.hex}}
ForegroundNeutral={{colors.tertiary.default.hex}}
ForegroundNormal={{colors.on_background.default.hex}}
ForegroundPositive={{colors.tertiary_fixed.default.hex}}
ForegroundVisited={{colors.on_secondary_container.default.hex}}
[Colors:View]
BackgroundAlternate={{colors.surface_container.default.hex}}
BackgroundNormal={{colors.background.default.hex}}
DecorationFocus={{colors.primary_container.default.hex}}
DecorationHover={{colors.on_primary.default.hex}}
ForegroundActive={{colors.primary.default.hex}}
ForegroundInactive={{colors.on_surface_variant.default.hex}}
ForegroundLink={{colors.secondary.default.hex}}
ForegroundNegative={{colors.error.default.hex}}
ForegroundNeutral={{colors.tertiary.default.hex}}
ForegroundNormal={{colors.on_background.default.hex}}
ForegroundPositive={{colors.tertiary_fixed.default.hex}}
ForegroundVisited={{colors.on_secondary_container.default.hex}}
[Colors:Window]
BackgroundAlternate={{colors.primary_container.default.hex}}
BackgroundNormal={{colors.surface_container.default.hex}}
DecorationFocus={{colors.primary.default.hex}}
DecorationHover={{colors.primary.default.hex}}
ForegroundActive={{colors.primary.default.hex}}
ForegroundInactive={{colors.on_surface_variant.default.hex}}
ForegroundLink={{colors.secondary.default.hex}}
ForegroundNegative={{colors.error.default.hex}}
ForegroundNeutral={{colors.tertiary.default.hex}}
ForegroundNormal={{colors.on_background.default.hex}}
ForegroundPositive={{colors.tertiary_fixed.default.hex}}
ForegroundVisited={{colors.on_secondary_container.default.hex}}
[General]
ColorScheme=Matugen
Name=Matugen
[Appearance]
color_scheme=Matugen
[KDE]
contrast=4
[WM]
activeBackground={{colors.primary_container.default.hex}}
activeBlend={{colors.on_primary_container.default.hex}}
activeForeground={{colors.on_primary_container.default.hex}}
inactiveBackground={{colors.surface.default.hex}}
inactiveBlend={{colors.on_surface_variant.default.hex}}
inactiveForeground={{colors.on_surface_variant.default.hex}}
+82
View File
@@ -0,0 +1,82 @@
* {
background: {{colors.background.default.hex}};
background-selected: {{colors.primary.default.hex}};
foreground: {{colors.on_background.default.hex}};
foreground-selected: {{colors.on_primary.default.hex}};
accent: {{colors.secondary.default.hex}};
inactive: {{colors.outline.default.hex}};
spacing: 2;
width: 30em;
margin: 0;
padding: 0;
}
#window {
background-color: @background;
border-color: @accent;
border: 1px;
border-radius: 10px;
padding: 0;
location: center;
anchor: center;
margin: 0;
}
#mainbox {
background-color: @background;
spacing: 10px;
margin: 10px 0 0 0;
width: 200px;
}
#inputbar {
children: [prompt,entry];
background-color: @background;
}
#listview {
background-color: @background;
fixed-height: true;
margin: 5px 0 0 10px;
}
#element {
padding: 5px;
background-color: @background;
text-color: @foreground;
}
element selected {
background-color: @background-selected;
text-color: @foreground-selected;
border: 1px;
border-radius: 5px;
}
element-text {
background-color: inherit;
text-color: inherit;
}
element-icon {
background-color: inherit;
margin: 0 4px 0 0;
size: 35px;
}
#entry {
background-color: @background;
text-color: @accent;
placeholder: "Search";
placeholder-color: @inactive;
font: "Comfortaa Regular 20";
}
#prompt {
background-color: @background;
padding: 0 4px;
margin: 0 5px 0 0;
text-color: @foreground;
font: "Adwaita Sans Regular 20";
}
+61
View File
@@ -0,0 +1,61 @@
:root {
--border-radius: 22px;
--cc-bg: transparent;
--widget-background: {{ colors.surface.default.rgba | set_alpha: 0.7 }};
--noti-bg-alpha: 0.6;
--padding: calc(var(--border-radius) / 2);
}
.control-center {
border-radius: 0;
}
.widgets>.widget,
.widget-mpris>carouselindicatordots,
.widget-mpris>box>button {
background: var(--widget-background);
border-radius: var(--border-radius);
padding: calc(var(--border-radius) / 2);
border: var(--border);
}
.control-center-list-placeholder {
padding: var(--border-radius);
}
.notification-group {
border-radius: var(--border-radius);
padding: 8px;
}
.widget.widget-mpris {
background: transparent;
border-radius: 0;
padding: 0;
border: none;
}
.widget.widget-mpris>carouselindicatordots {
--dots-padding: 4px;
padding: var(--dots-padding);
padding-left: var(--dots-padding);
padding-right: calc(6px + var(--dots-padding));
margin: 0;
margin-top: var(--padding);
}
.widget-mpris>box>button:hover {
background: rgba(46, 46, 46, 1);
}
.widget-mpris-player {
box-shadow: none;
border: var(--border);
margin: 0 var(--padding);
}
.widget-mpris-player:only-child {
margin: 0;
}
@@ -0,0 +1,100 @@
/**
* @name midnight
* @description A dark, rounded discord theme.
* @author refact0r
* @version 1.6.2
* @invite nz87hXyvcy
* @website https://github.com/refact0r/midnight-discord
* @source https://github.com/refact0r/midnight-discord/blob/master/midnight.theme.css
* @authorId 508863359777505290
* @authorLink https://www.refact0r.dev
*/
/* IMPORTANT: make sure to enable dark mode in discord settings for the theme to apply properly!!! */
@import url('https://refact0r.github.io/midnight-discord/build/midnight.css');
/* customize things here */
:root {
/* font, change to 'gg sans' for default discord font*/
--font: 'figtree';
/* top left corner text */
--corner-text: 'Midnight';
/* color of status indicators and window controls */
--online-indicator: #23a55a;
--dnd-indicator: #f13f43;
--idle-indicator: #f0b232;
--streaming-indicator: #593695;
/* accent colors */
--accent-1: {{colors.tertiary.default.hex}}; /* links */
--accent-2: {{colors.primary.default.hex}}; /* general unread/mention elements, some icons when active */
--accent-3: {{colors.primary.default.hex}}; /* accent buttons */
--accent-4: {{colors.surface_bright.default.hex}}; /* accent buttons when hovered */
--accent-5: {{colors.primary_fixed_dim.default.hex}}; /* accent buttons when clicked */
--accent-new: {{colors.inverse_primary.default.hex}}; /* user panel mute & deafen buttons */
--mention: {{colors.surface.default.hex}}; /* mentions & mention messages */
--mention-hover: {{colors.surface_bright.default.hex}}; /* mentions & mention messages when hovered */
/* text colors */
--text-0: {{colors.surface.default.hex}}; /* text on colored elements */
--text-1: {{colors.on_surface.default.hex}}; /* other normally white text */
--text-2: {{colors.on_surface.default.hex}}; /* headings and important text */
--text-3: {{colors.on_surface_variant.default.hex}}; /* normal text */
--text-4: {{colors.on_surface_variant.default.hex}}; /* icon buttons and channels */
--text-5: {{colors.outline.default.hex}}; /* muted channels/chats and timestamps */
/* background and dark colors */
--bg-1: {{colors.surface_variant.default.hex}}; /* dark buttons when clicked */
--bg-2: {{colors.surface_container_high.default.hex}}; /* dark buttons */
--bg-3: {{colors.surface_container_low.default.hex}}; /* spacing, secondary elements */
--bg-4: {{colors.surface.default.hex | lighten: -1.0}}; /* main background color */
--hover: {{colors.surface_bright.default.hex}}; /* channels and buttons when hovered */
--active: {{colors.surface_bright.default.hex}}; /* channels and buttons when clicked or selected */
--message-hover: {{colors.surface_bright.default.hex}}; /* messages when hovered */
/* amount of spacing and padding */
--spacing: 12px;
/* animations */
/* ALL ANIMATIONS CAN BE DISABLED WITH REDUCED MOTION IN DISCORD SETTINGS */
--list-item-transition: 0.2s ease; /* channels/members/settings hover transition */
--unread-bar-transition: 0.2s ease; /* unread bar moving into view transition */
--moon-spin-transition: 0.4s ease; /* moon icon spin */
--icon-spin-transition: 1s ease; /* round icon button spin (settings, emoji, etc.) */
/* corner roundness (border-radius) */
--roundness-xl: 22px; /* roundness of big panel outer corners */
--roundness-l: 20px; /* popout panels */
--roundness-m: 16px; /* smaller panels, images, embeds */
--roundness-s: 12px; /* members, settings inputs */
--roundness-xs: 10px; /* channels, buttons */
--roundness-xxs: 8px; /* searchbar, small elements */
/* direct messages moon icon */
/* change to block to show, none to hide */
--discord-icon: none; /* discord icon */
--moon-icon: block; /* moon icon */
--moon-icon-url: url('https://upload.wikimedia.org/wikipedia/commons/c/c4/Font_Awesome_5_solid_moon.svg'); /* custom icon url */
--moon-icon-size: auto;
/* filter uncolorable elements to fit theme */
/* (just set to none, they're too much work to configure) */
--login-bg-filter: saturate(0.3) hue-rotate(-15deg) brightness(0.4); /* login background artwork */
--green-to-accent-3-filter: hue-rotate(56deg) saturate(1.43); /* add friend page explore icon */
--blurple-to-accent-3-filter: hue-rotate(304deg) saturate(0.84) brightness(1.2); /* add friend page school icon */
}
/* Selected chat/friend text */
.selected_f5eb4b,
.selected_f6f816 .link_d8bfb3 {
color: var(--text-0) !important;
background: var(--accent-3) !important;
}
.selected_f6f816 .link_d8bfb3 * {
color: var(--text-0) !important;
fill: var(--text-0) !important;
}
+111
View File
@@ -0,0 +1,111 @@
@import "colors.css";
* {
border: none;
border-radius: 0;
font-family: 'Comfortaa, FiraMono Nerd Font';
font-weight: bold;
font-size: 15px;
min-height: 0;
margin-left: 3px;
margin-right: 3px;
}
window#waybar {
background-color: {{ colors.shadow.default.rgba | set_alpha: 0.5 }};
color: @primary;
}
tooltip {
background-color: @background;
border-radius: 10px;
border-width: 2px;
border-style: solid;
border-color: @outline;
}
#workspaces button {
padding: 3px;
background-color: @primary_container;
color: @on_primary_container;
margin-right: 1px;
border-radius: 10px;
}
#workspaces button.active {
color: @on_primary;
background-color: @primary;
}
#workspaces button.focused {
color: @on_secondary;
background-color: @secondary;
}
#workspaces button.urgent {
color: @on_error;
background-color: @error;
border-radius: 10px;
}
#workspaces button:hover {
color: @on_secondary;
background-color: @secondary;
}
#workspaces {
background-color: black;
border-radius: 10px;
margin-left: 10px;
padding-right: 0px;
padding-left: 5px;
}
#clock,
#tray,
#submap,
#workspaces {
background-color: @surface;
color: @primary;
padding: 3px 9px;
margin: 3px 2px;
margin-top: 9px;
border-radius: 10px;
}
#window {
border-radius: 10px;
margin-left: 60px;
margin-right: 60px;
background-color: @surface;
}
#clock {
min-width: 125px;
}
#pulseaudio,
#memory,
#network,
#bluetooth,
#brightness,
#backlight,
#battery,
#cpu {
padding: 3px 5px;
margin: 3px 0px;
margin-top: 9px;
border-radius: 0;
background-color: @surface;
color: @primary;
}
#cpu {
border-radius: 10px 0px 0px 10px;
padding-left: 9px;
}
#pulseaudio.microphone {
border-radius: 0px 10px 10px 0px;
padding-right: 9px;
}
+9
View File
@@ -0,0 +1,9 @@
[Appearance]
color_scheme_path=~/.local/share/color-schemes/Matugen.colors
custom_palette=true
standard_dialogs=default
style=Fusion
[Fonts]
fixed="Source Code Pro,9,-1,2,400,0,0,0,0,0,0,0,0,0,0,1,,0,0"
general="Comfortaa,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1,,0,0"
+28
View File
@@ -0,0 +1,28 @@
[Appearance]
color_scheme_path=~/.local/share/color-schemes/Matugen.colors
custom_palette=true
standard_dialogs=default
style=Fusion
[Fonts]
fixed="Source Code Pro,9,-1,2,400,0,0,0,0,0,0,0,0,0,0,1,,0,0"
general="Comfortaa,9,-1,5,400,0,0,0,0,0,0,0,0,0,0,1,,0,0"
[Interface]
activate_item_on_single_click=1
buttonbox_layout=0
cursor_flash_time=1000
dialog_buttons_have_icons=1
double_click_interval=400
gui_effects=@Invalid()
keyboard_scheme=2
menus_have_icons=true
show_shortcuts_in_context_menus=true
stylesheets=@Invalid()
toolbutton_style=4
underline_shortcut=1
wheel_scroll_lines=3
[Troubleshooting]
force_raster_widgets=1
ignored_applications=@Invalid()
+12
View File
@@ -0,0 +1,12 @@
/** Basic config file **/
configuration {
show-icons: true;
icon-theme: "Candy";
display-drun: "";
display-run: "🏃🏽‍♂️ ";
display-window: "🗔 ";
display-combi: "🔎 ";
}
@theme "style.rasi"
+101
View File
@@ -0,0 +1,101 @@
{
"$schema": "/etc/xdg/swaync/configSchema.json",
"ignore-gtk-theme": true,
"positionX": "right",
"positionY": "top",
"layer": "overlay",
"control-center-layer": "top",
"layer-shell": true,
"layer-shell-cover-screen": true,
"cssPriority": "user",
"control-center-margin-top": 3,
"control-center-margin-bottom": 3,
"control-center-margin-right": 3,
"control-center-margin-left": 3,
"notification-2fa-action": true,
"notification-inline-replies": false,
"notification-body-image-height": 100,
"notification-body-image-width": 200,
"timeout": 10,
"timeout-low": 5,
"timeout-critical": 0,
"fit-to-screen": true,
"relative-timestamps": true,
"control-center-width": 500,
"control-center-height": 600,
"notification-window-width": 500,
"keyboard-shortcuts": true,
"notification-grouping": true,
"image-visibility": "when-available",
"transition-time": 200,
"hide-on-clear": false,
"hide-on-action": true,
"text-empty": "No Notifications",
"script-fail-notify": true,
// "scripts": {
// "example-script": {
// "app-name": "example.app.id",
// "exec": "echo 'Do something...'",
// "urgency": "Normal"
// },
// "example-action-script": {
// "app-name": "example.app.id",
// "exec": "echo 'Do something actionable!'",
// "urgency": "Normal",
// "run-on": "action"
// }
// },
// "notification-visibility": {
// "example-name": {
// "state": "muted",
// "urgency": "Normal",
// "app-name": "example.app.id"
// }
// },
"widgets": [
"inhibitors",
"title",
"dnd",
"notifications"
],
"widget-config": {
"notifications": {
"vexpand": true
},
"inhibitors": {
"text": "Inhibitors",
"button-text": "Clear All",
"clear-all-button": true
},
"title": {
"text": "Notifications",
"clear-all-button": true,
"button-text": "Clear All"
},
"dnd": {
"text": "Do Not Disturb"
},
"label": {
"max-lines": 5,
"text": "Label Text"
},
"mpris": {
"blacklist": [],
"autohide": false,
"show-album-art": "always",
"loop-carousel": false
},
"buttons-grid": {
"buttons-per-row": 7,
"actions": [
{
"label": "直",
"type": "toggle",
"active": true,
"command": "sh -c '[[ $SWAYNC_TOGGLE_STATE == true ]] && nmcli radio wifi on || nmcli radio wifi off'",
"update-command": "sh -c '[[ $(nmcli radio wifi) == \"enabled\" ]] && echo true || echo false'"
}
]
}
}
}
+194
View File
@@ -0,0 +1,194 @@
{
"layer": "top",
"position": "top",
"mod": "dock",
"exclusive": true,
"passthrough": false,
"gtk-layer-shell": true,
"height": 0,
"modules-left": [
"hyprland/submap",
"clock",
"hyprland/workspaces"
],
"modules-center": [
"hyprland/window"
],
"modules-right": [
"tray",
"cpu",
"memory",
"network",
"bluetooth",
"backlight",
"battery",
"pulseaudio",
"pulseaudio#microphone"
],
"bluetooth": {
"format": "{icon}",
"format-disabled": "\udb80\udcb2",
"format-off": "\udb80\udcb2",
"format-on": "\udb80\udcaf",
"format-connected": "\udb80\udcb1",
"format-icons": [
"\udb82\udd47",
"\udb82\udd3e",
"\udb82\udd3f",
"\udb82\udd40",
"\udb82\udd41",
"\udb82\udd42",
"\udb82\udd43",
"\udb82\udd44",
"\udb82\udd45",
"\udb82\udd46"
],
"tooltip-format": "{controller_alias}\t{controller_address}\n\n{num_connections} connected",
"tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}",
"tooltip-format-enumerate-connected": "{device_alias}\t{device_address}",
"tooltip-format-enumerate-connected-battery": "{device_alias}\t{device_address}\t{device_battery_percentage}%",
"on-click": "alacritty -e bluetui -T bluetui"
},
"hyprland/submap": {
// "format": "{icon}",
"max-length": 4,
"tooltip": false
// "icons": {
// "device": "\uf4a9",
// "groups": "\udb80\udec3",
// "launch": "\udb85\udcde",
// "notifications": "\uf400",
// "screenshot": "\udb83\ude51",
// "window": "\ueb7f",
// "workspace": "\ueb23",
// "groupedlaunch": "\uf0c0"
// }
},
"hyprland/window": {
"format": "{}",
"tooltip-format": "Class: {class}",
"rewrite": {
"(.*) — Librewolf": "🌎 $1",
"nvim - (.*)": "\ue6ae $1",
"Yazi: (.*)": "\udb81\ude45 $1"
}
},
"tray": {
"icon-size": 14,
"spacing": 8
},
"network": {
"format-disconnected": "\udb80\udf19",
"format-wifi": "{icon} {essid}",
"format-ethernet": "\udb80\ude00",
"tooltip-format-ethernet": "<big>Ethernet</big>\nInterface: {ifname}\nIP: {ipaddr}\nUp/Down (bps): {bandwidthUpBits}/{bandwidthDownBits}",
"tooltip-format-wifi": "<big>Wi-Fi</big>\nSSID: {essid}\nIP: {ipaddr}\nSignal strength: {signalStrength}%\nUp/Down (bps): {bandwidthUpBits}/{bandwidthDownBits}\nFrequency: {frequency}GHz",
"tooltip-format-disconnected": "<big>Networking</big>\n{ifname} disconnected",
"on-click": "alacritty -e nmtui -T nmtui",
"format-icons": [
"\udb82\udd2f",
"\udb82\udd1f",
"\udb82\udd22",
"\udb82\udd25",
"\udb82\udd28"
]
},
"clock": {
"format": "{:%a, %d.%m %H:%M:%S}",
"tooltip-format": "<big>Calendar</big>\n<tt><small>{calendar}</small></tt>",
"interval": 1
},
"hyprland/workspaces": {
"disable-scroll": true,
"all-outputs": true,
"tooltips": {
"default": "{name}: {windows}",
"empty": "" // Will result in no tooltip
}
},
"cpu": {
"tooltip-format": "<big>CPU</big>\n<tt>Total: {usage}</tt>",
"format": "\uf4bc {usage}",
"interval": 5,
"on-click": "alacritty -e dgop -T dgop"
},
"memory": {
"format": "\uefc5 {percentage}",
"interval": 5,
"on-click": "alacritty -e dgop -T dgop"
},
"pulseaudio": {
"format": "{icon} {volume}",
"tooltip": true,
"format-muted": "\udb81\udcc4 Off",
"on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle",
"on-scroll-up": "wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+",
"on-scroll-down": "wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-",
"scroll-step": 5,
"format-icons": {
"headphone": "\uf025",
"hands-free": "",
"headset": "\uee59",
"phone": "\udb82\udd70",
"portable": "\udb82\udda2",
"car": "🏎",
"default": [
"\udb81\udcc3",
"\udb81\udf1f"
]
}
},
"battery":{
"states": {
"95": 100,
"85": 90,
"75": 80,
"65": 70,
"55": 60,
"45": 50,
"35": 40,
"25": 30,
"15": 20,
"5": 10,
"critical": 0,
},
"format":" {capacity}",
"format-95": " {capacity}",
"format-85": " {capacity}",
"format-75": " {capacity}",
"format-65": " {capacity}",
"format-55": " {capacity}",
"format-45": " {capacity}",
"format-35": " {capacity}",
"format-25": " {capacity}",
"format-15": " {capacity}",
"format-15": " {capacity}",
"format-critical": " {capacity}",
"format-charging":" {capacity}",
"format-plugged": " ",
"format-full": " 100",
"format-empty": " ({capacity}%)",
"tooltip-format":"<big>Battery</big>\nCurrently {timeTo}\nCurrently drawing: {power}W\nBattery status: {capacity}%"
},
"backlight": {
"stages": {
"high": 50,
"low": 0,
},
"format": "🌣 {percent}",
"format-high": " {percent}",
"format-low": " {percent}",
"tooltip-format": "<big>Brightness</big>\n🌣 {percent}",
"on-scroll-up": "light -A 1",
"on-scroll-down": "light -U 1"
},
"pulseaudio#microphone": {
"format": "{format_source}",
"format-source": "\uf130 {volume}",
"format-source-muted": "\uf131 Off",
"on-click": "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle",
"on-scroll-up": "wpctl set-volume @DEFAULT_AUDIO_SOURCE@ 5%+",
"on-scroll-down": "wpctl set-volume @DEFAULT_AUDIO_SOURCE@ 5%-",
"scroll-step": 5
}
}
+4 -3
View File
@@ -21,14 +21,15 @@ prepend_keymap = [
{ on = [ "g", "c", "s" ], run = "cd ~/projects/dotfiles/scripts", desc = "Go to script" }, { on = [ "g", "c", "s" ], run = "cd ~/projects/dotfiles/scripts", desc = "Go to script" },
{ on = [ "g", "c", "d" ], run = "cd ~/projects/dotfiles", desc = "Go to Dotfiles folder" }, { on = [ "g", "c", "d" ], run = "cd ~/projects/dotfiles", desc = "Go to Dotfiles folder" },
{ on = [ "g", "c", "n" ], run = "cd ~/projects/nvim", desc = "Go to NeoVim config" }, { on = [ "g", "c", "n" ], run = "cd ~/projects/nvim", desc = "Go to NeoVim config" },
{ on = [ "g", "w" ], run = "cd ~/NextCloud/Wallpapers/00_rotation/", desc = "Go to ~/.config" },
{ on = [ "g", "n" ], run = "cd ~/NextCloud/Documents/", desc = "Go to NextCloud Documents" }, { on = [ "g", "n" ], run = "cd ~/NextCloud/Documents/", desc = "Go to NextCloud Documents" },
{ on = [ "g", "w" ], run = "cd ~/NextCloud/Wallpapers", desc = "Go to Wallpapers" }, { on = [ "g", "w" ], run = "cd ~/NextCloud/Wallpapers", desc = "Go to Wallpapers" },
{ on = [ "g", "e", "n" ], run = "cd ~/NextCloud/Documents/ETH/Semester4/", desc = "Go to ETH Nextcloud" }, { on = [ "g", "e", "n" ], run = "cd ~/NextCloud/Documents/ETH/Semester5/", desc = "Go to ETH Nextcloud" },
{ on = [ "g", "e", "p" ], run = "cd ~/projects/eth/projects/", desc = "Go to ETH projects folder" }, { on = [ "g", "e", "p" ], run = "cd ~/projects/eth/projects/", desc = "Go to ETH projects folder" },
{ on = [ "g", "e", "a" ], run = "cd ~/projects/eth/semesters/semester4/", desc = "Go to ETH assignments folder" }, { on = [ "g", "e", "a" ], run = "cd ~/projects/eth/semesters/semester5/", desc = "Go to ETH assignments folder" },
{ on = [ "g", "e", "t" ], run = "cd ~/NextCloud/Documents/ETH/Others/projects/eyetap/", desc = "Go to eyetap data folder" }, { on = [ "g", "e", "t" ], run = "cd ~/NextCloud/Documents/ETH/Others/projects/eyetap/", desc = "Go to eyetap data folder" },
{ on = [ "g", "e", "g" ], run = "cd ~/projects/eth/gitlab/", desc = "Go to ETH Gitlab folder" }, { on = [ "g", "e", "g" ], run = "cd ~/projects/eth/gitlab/", desc = "Go to ETH Gitlab folder" },
{ on = [ "g", "e", "s" ], run = "cd ~/projects/eth/eth-summaries/semester4/", desc = "Go to ETH Summaries folder" }, { on = [ "g", "e", "s" ], run = "cd ~/projects/eth/eth-summaries/core/", desc = "Go to ETH Summaries folder" },
{ on = [ "g", "s", "h" ], run = "cd ~/.steam/steam/steamapps/common", desc = "Go to ~/.steam/steam/steamapps/common" }, { on = [ "g", "s", "h" ], run = "cd ~/.steam/steam/steamapps/common", desc = "Go to ~/.steam/steam/steamapps/common" },
{ on = [ "g", "s", "g" ], run = "cd /mnt/games/SteamLibrary", desc = "Go to SteamLibrary on NTFS partition" }, { on = [ "g", "s", "g" ], run = "cd /mnt/games/SteamLibrary", desc = "Go to SteamLibrary on NTFS partition" },
{ on = [ "g", "s", "s" ], run = "cd /mnt/secondary/SteamLibrary", desc = "Go to SteamLibrary on main games drive" }, { on = [ "g", "s", "s" ], run = "cd /mnt/secondary/SteamLibrary", desc = "Go to SteamLibrary on main games drive" },
+13 -1
View File
@@ -10,8 +10,20 @@ prepend_previewers = [
] ]
[opener] [opener]
open = [ pdf = [
{ run = 'xdg-open "$@"', desc = "Open" }, { run = 'xdg-open "$@"', desc = "Open" },
{ run = 'okular "$@"', desc = "Open in Okular" }, { run = 'okular "$@"', desc = "Open in Okular" },
{ run = 'evince "$@"', desc = "Open in Evince" }, { run = 'evince "$@"', desc = "Open in Evince" },
] ]
image = [
{ run = 'xdg-open "$@"', desc = "Open" },
{ run = 'set-theme "$@"', desc = "Set desktop theme from this image" },
]
[open]
prepend_rules = [
{ mime = "application/pdf", use = "pdf" },
{ mime = "image/png", use = "image" },
{ mime = "image/jpg", use = "image" },
{ mime = "image/jpeg", use = "image" },
]
+80
View File
@@ -0,0 +1,80 @@
# Lines configured by zsh-newuser-install
HISTFILE=~/.histfile
HISTSIZE=1000
SAVEHIST=1000
bindkey -e
# End of lines configured by zsh-newuser-install
# The following lines were added by compinstall
zstyle :compinstall filename '/home/janis/.zshrc'
autoload -Uz compinit
compinit
autoload -U promptinit
promptinit
# End of lines added by compinstall
ENABLE_CORRECTION=true
# Handy aliases
alias ls='ls -l --color'
alias ll='ls -la --color'
alias v='nvim'
alias c='clear'
alias cv='clear && nvim'
alias fm='thunar .'
alias gl='git ls-files --others --exclude-standard'
alias gm='git ls-files -m'
alias gp='git pull'
alias cfh='nvim ~/projects/system/dotfiles/config/hypr/'
alias cfn='nvim ~/projects/system/nvim/'
alias cff='nvim ~/projects/system/dotfiles/config/fish/'
alias cfa='nvim ~/projects/system/dotfiles/config/astal/'
alias cf='nvim ~/projects/system/dotfiles/'
alias g='lazygit'
alias ff='fastfetch'
alias p='nvimpager -p'
alias latexdocs='zathura ~/projects/latex/docs/docs.pdf &>> /dev/null & disown'
alias gccerr='gcc -Wall -Wextra -Wpedantic -Werror -Wmissing-prototypes -std=c99'
alias linecount='cloc --vcs git .'
# Aliases from ohmyzsh
alias cp='nocorrect cp'
alias man='nocorrect man'
alias mkdir='nocorrect mkdir'
alias mv='nocorrect mv'
alias sudo='nocorrect sudo'
alias su='nocorrect su'
alias rm='nocorrect rm'
alias -g ...='../..'
alias -g ....='../../..'
alias -g .....='../../../..'
alias -g ......='../../../../..'
alias -- -='cd -'
alias 1='cd -1'
alias 2='cd -2'
alias 3='cd -3'
alias 4='cd -4'
alias 5='cd -5'
alias 6='cd -6'
alias 7='cd -7'
alias 8='cd -8'
alias 9='cd -9'
export PATH=$PATH:~/projects/system/dotfiles/scripts/
# Yazi wrapper
function y() {
local tmp cwd; tmp="$(mktemp -t "yazi-cwd.XXXXXX")"
command yazi "$@" --cwd-file="$tmp"
IFS= read -r -d '' cwd < "$tmp"
[ "$cwd" != "$PWD" ] && [ -d "$cwd" ] && builtin cd -- "$cwd" || builtin true
command rm -f -- "$tmp"
}
source ~/.config/zsh/theme.zsh
eval "$(zoxide init --cmd j zsh)"
# for file in ~/projects/system/dotfiles/system/completions/*
# do
# source $file
# done
+15
View File
@@ -0,0 +1,15 @@
local return_code="%F{9}%? ↵%{$reset_color%})"
local user_host="%B%F{9}%n%F{15}@%F{172}%m%f "
local user_symbol='%(!.#.$)'
local current_dir="%B%F{2}%1~ %f"
local vcs_info=''
local venv_prompt=''
precmd () {
vcs_info='git status'
}
PS1="╭─${user_host}${current_dir}${vcs_info}${venv_prompt}
╰─%B${user_symbol}%b "
RPROMPT="%B${return_code}%b"
-81
View File
@@ -1,81 +0,0 @@
{
"hyprlandSubmapIndicator": {
"enabled": true,
"submapLabels": [
{
"submap": "device",
"label": "dev",
"color": "#FF0000"
},
{
"submap": "groups",
"label": "GRP",
"color": "#AABBCC"
}
],
"defaultTextColor": {
"r": 0.12941177189350128,
"g": 0.12941177189350128,
"b": 0.12941177189350128,
"a": 1,
"hsvHue": -1,
"hsvSaturation": 0,
"hsvValue": 0.12941177189350128,
"hslHue": -1,
"hslSaturation": 0,
"hslLightness": 0.12941177189350128,
"valid": true
},
"defaultIconName": "home",
"defaultIconColor": {},
"submapIcons": [
{
"submap": "device",
"icon": "build",
"color": "#FF0000"
},
{
"submap": "groups",
"icon": "group",
"color": "#AABBCC"
},
{
"submap": "launch",
"icon": "rocket_launch",
"color": "#00B51E"
},
{
"submap": "notifications",
"icon": "notification_settings",
"color": "#eec100"
},
{
"submap": "screenshot",
"icon": "screenshot_monitor",
"color": "#ad00ee"
},
{
"submap": "window",
"icon": "select_window",
"color": "#00b2ee"
},
{
"submap": "workspace",
"icon": "monitor",
"color": "#2800ee"
},
{
"submap": "groupedlaunch",
"icon": "open_in_new",
"color": "#005207"
}
],
"fontSize": "none"
},
"calculator": {
"enabled": true,
"trigger": "=",
"calcEngine": "qalc",
"noTrigger": false
}
}
-792
View File
@@ -1,792 +0,0 @@
{
"currentThemeName": "dynamic",
"currentThemeCategory": "dynamic",
"customThemeFile": "",
"registryThemeVariants": {},
"matugenScheme": "scheme-tonal-spot",
"matugenContrast": 0,
"runUserMatugenTemplates": true,
"matugenTargetMonitor": "",
"popupTransparency": 1,
"dockTransparency": 1,
"widgetBackgroundColor": "sch",
"widgetBackgroundCustomColor": "#6750A4",
"widgetBackgroundCustomStrength": 0.5,
"widgetColorMode": "colorful",
"controlCenterTileColorMode": "primary",
"buttonColorMode": "primary",
"cornerRadius": 12,
"niriLayoutGapsOverride": -1,
"niriLayoutRadiusOverride": -1,
"niriLayoutBorderSize": -1,
"hyprlandLayoutGapsOverride": -1,
"hyprlandLayoutGapsOutOverride": -1,
"hyprlandLayoutRadiusOverride": -1,
"hyprlandLayoutBorderSize": -1,
"hyprlandResizeOnBorder": false,
"mangoLayoutGapsOverride": -1,
"mangoLayoutGapsOutOverride": -1,
"mangoLayoutRadiusOverride": -1,
"mangoLayoutBorderSize": -1,
"mangoTrackpadNaturalScrolling": true,
"firstDayOfWeek": -1,
"showWeekNumber": false,
"calendarBackend": "auto",
"clockFormat": "24h",
"showSeconds": true,
"padHours12Hour": false,
"useFahrenheit": false,
"windSpeedUnit": "kmh",
"nightModeEnabled": false,
"animationSpeed": 4,
"customAnimationDuration": 150,
"syncComponentAnimationSpeeds": true,
"popoutAnimationSpeed": 1,
"popoutCustomAnimationDuration": 150,
"modalAnimationSpeed": 1,
"modalCustomAnimationDuration": 150,
"enableRippleEffects": true,
"animationVariant": 0,
"motionEffect": 0,
"m3ElevationEnabled": true,
"m3ElevationIntensity": 12,
"m3ElevationOpacity": 30,
"m3ElevationColorMode": "default",
"m3ElevationLightDirection": "top",
"m3ElevationCustomColor": "#000000",
"modalElevationEnabled": true,
"popoutElevationEnabled": true,
"barElevationEnabled": false,
"blurEnabled": false,
"blurForegroundLayers": true,
"blurLayerOutlineOpacity": 0.12,
"blurBorderEnabled": true,
"blurBorderColor": "outline",
"blurBorderCustomColor": "#ffffff",
"blurBorderOpacity": 0.35,
"wallpaperFillMode": "Fill",
"blurredWallpaperLayer": false,
"blurWallpaperOnOverview": false,
"wallpaperBackgroundColorMode": "black",
"wallpaperBackgroundCustomColor": "#000000",
"showLauncherButton": true,
"showWorkspaceSwitcher": true,
"showFocusedWindow": true,
"showWeather": true,
"showMusic": true,
"showClipboard": true,
"showCpuUsage": true,
"showMemUsage": true,
"showCpuTemp": true,
"showGpuTemp": true,
"selectedGpuIndex": 0,
"enabledGpuPciIds": [],
"showSystemTray": true,
"systemTrayIconTintMode": "primary",
"systemTrayIconTintSaturation": 0,
"systemTrayIconTintStrength": 100,
"showClock": true,
"showNotificationButton": true,
"showBattery": true,
"showBatteryPercent": true,
"showBatteryPercentOnlyOnBattery": false,
"showBatteryTime": false,
"showBatteryTimeOnlyOnBattery": false,
"batteryPillStyle": false,
"batteryPillPercentSign": false,
"showControlCenterButton": true,
"showCapsLockIndicator": true,
"controlCenterShowNetworkIcon": true,
"controlCenterShowBluetoothIcon": true,
"controlCenterShowAudioIcon": true,
"controlCenterShowAudioPercent": false,
"controlCenterShowVpnIcon": true,
"controlCenterShowBrightnessIcon": false,
"controlCenterShowBrightnessPercent": false,
"controlCenterShowMicIcon": false,
"controlCenterShowMicPercent": true,
"controlCenterShowBatteryIcon": false,
"controlCenterShowPrinterIcon": false,
"controlCenterShowScreenSharingIcon": true,
"controlCenterShowIdleInhibitorIcon": false,
"controlCenterShowDoNotDisturbIcon": false,
"showPrivacyButton": true,
"privacyShowMicIcon": false,
"privacyShowCameraIcon": false,
"privacyShowScreenShareIcon": false,
"controlCenterWidgets": [
{
"id": "volumeSlider",
"enabled": true,
"width": 50
},
{
"id": "inputVolumeSlider",
"enabled": true,
"width": 50
},
{
"id": "brightnessSlider",
"enabled": true,
"width": 100,
"instanceId": "mqkkrmb3egxs1ld56tbk0v52ce4yj5",
"deviceName": ""
},
{
"id": "bluetooth",
"enabled": true,
"width": 50
},
{
"id": "battery",
"enabled": true,
"width": 50
},
{
"id": "builtin_vpn",
"enabled": true,
"width": 50
},
{
"id": "wifi",
"enabled": true,
"width": 50
},
{
"id": "audioInput",
"enabled": true,
"width": 50
},
{
"id": "audioOutput",
"enabled": true,
"width": 50
}
],
"showWorkspaceIndex": true,
"showWorkspaceName": false,
"showWorkspacePadding": false,
"workspaceScrolling": false,
"showWorkspaceApps": false,
"workspaceDragReorder": true,
"maxWorkspaceIcons": 2,
"workspaceAppIconSizeOffset": 0,
"groupWorkspaceApps": true,
"groupActiveWorkspaceApps": false,
"workspaceFollowFocus": true,
"showOccupiedWorkspacesOnly": false,
"reverseScrolling": false,
"dwlShowAllTags": false,
"workspaceActiveAppHighlightEnabled": false,
"workspaceColorMode": "default",
"workspaceFocusedCustomColor": "#6750A4",
"workspaceOccupiedColorMode": "none",
"workspaceOccupiedCustomColor": "#625B71",
"workspaceUnfocusedColorMode": "default",
"workspaceUnfocusedCustomColor": "#49454E",
"workspaceUrgentColorMode": "default",
"workspaceUrgentCustomColor": "#B3261E",
"workspaceFocusedBorderEnabled": false,
"workspaceFocusedBorderColor": "primary",
"workspaceFocusedBorderCustomColor": "#6750A4",
"workspaceFocusedBorderThickness": 2,
"workspaceUnfocusedMonitorSeparateAppearance": false,
"workspaceUnfocusedMonitorColorMode": "default",
"workspaceUnfocusedMonitorFocusedCustomColor": "#6750A4",
"workspaceUnfocusedMonitorOccupiedColorMode": "none",
"workspaceUnfocusedMonitorOccupiedCustomColor": "#625B71",
"workspaceUnfocusedMonitorUnfocusedColorMode": "default",
"workspaceUnfocusedMonitorUnfocusedCustomColor": "#49454E",
"workspaceUnfocusedMonitorUrgentColorMode": "default",
"workspaceUnfocusedMonitorUrgentCustomColor": "#B3261E",
"workspaceUnfocusedMonitorBorderEnabled": false,
"workspaceUnfocusedMonitorBorderColor": "primary",
"workspaceUnfocusedMonitorBorderCustomColor": "#6750A4",
"workspaceUnfocusedMonitorBorderThickness": 2,
"workspaceNameIcons": {},
"waveProgressEnabled": true,
"scrollTitleEnabled": true,
"mediaAdaptiveWidthEnabled": true,
"audioVisualizerEnabled": true,
"mediaUseAlbumArtAccent": false,
"audioScrollMode": "volume",
"audioWheelScrollAmount": 5,
"audioDeviceScrollVolumeEnabled": false,
"mediaExcludePlayers": [],
"clockCompactMode": false,
"focusedWindowCompactMode": false,
"focusedWindowSize": 1,
"focusedWindowShowIcon": true,
"runningAppsCompactMode": true,
"barMaxVisibleApps": 0,
"barMaxVisibleRunningApps": 0,
"barShowOverflowBadge": true,
"trayAutoOverflow": true,
"trayPopupSingleLine": true,
"trayMaxVisibleItems": 0,
"appsDockHideIndicators": false,
"appsDockColorizeActive": false,
"appsDockActiveColorMode": "primary",
"appsDockEnlargeOnHover": false,
"appsDockEnlargePercentage": 125,
"appsDockIconSizePercentage": 100,
"keyboardLayoutNameCompactMode": false,
"keyboardLayoutNameShowIcon": false,
"runningAppsCurrentWorkspace": true,
"runningAppsGroupByApp": false,
"runningAppsCurrentMonitor": false,
"appIdSubstitutions": [],
"centeringMode": "index",
"clockDateFormat": "",
"lockDateFormat": "",
"greeterRememberLastSession": true,
"greeterRememberLastUser": true,
"greeterAutoLogin": false,
"greeterEnableFprint": false,
"greeterEnableU2f": false,
"greeterWallpaperPath": "",
"greeterLockDateFormat": "",
"greeterFontFamily": "",
"greeterWallpaperFillMode": "",
"greeterPamExternallyManaged": false,
"greeterSyncPending": false,
"greeterSyncBaseline": {},
"mediaSize": 1,
"appLauncherViewMode": "list",
"spotlightModalViewMode": "list",
"browserPickerViewMode": "grid",
"browserUsageHistory": {},
"appPickerViewMode": "grid",
"filePickerUsageHistory": {},
"sortAppsAlphabetically": false,
"appLauncherGridColumns": 4,
"spotlightCloseNiriOverview": true,
"rememberLastQuery": false,
"rememberLastMode": true,
"spotlightSectionViewModes": {
"apps": "list"
},
"appDrawerSectionViewModes": {},
"niriOverviewOverlayEnabled": true,
"niriOverviewLauncherStyle": "full",
"dankLauncherV2Size": "compact",
"dankLauncherV2ShowSourceBadges": true,
"dankLauncherV2BorderEnabled": false,
"dankLauncherV2BorderThickness": 2,
"dankLauncherV2BorderColor": "primary",
"dankLauncherV2ShowFooter": true,
"dankLauncherV2UnloadOnClose": false,
"dankLauncherV2IncludeFilesInAll": false,
"dankLauncherV2IncludeFoldersInAll": false,
"launcherUseOverlayLayer": false,
"launcherStyle": "full",
"spotlightBarShowModeChips": false,
"keybindsFloatingWindow": false,
"useAutoLocation": false,
"weatherEnabled": true,
"dashTabs": [
{
"id": "overview",
"enabled": true
},
{
"id": "media",
"enabled": true
},
{
"id": "wallpaper",
"enabled": true
},
{
"id": "weather",
"enabled": true
},
{
"id": "settings",
"enabled": true
}
],
"networkPreference": "wifi",
"iconThemeDark": "Papirus-Dark",
"iconThemeLight": "System Default",
"iconThemePerMode": false,
"lastAppliedIconTheme": "",
"cursorSettings": {
"theme": "oreo_spark_blue_cursors",
"size": 24,
"niri": {
"hideWhenTyping": false,
"hideAfterInactiveMs": 0
},
"hyprland": {
"hideOnKeyPress": false,
"hideOnTouch": false,
"inactiveTimeout": 5
},
"dwl": {
"cursorHideTimeout": 0
}
},
"launcherLogoMode": "apps",
"launcherLogoCustomPath": "",
"launcherLogoColorOverride": "",
"launcherLogoColorInvertOnMode": false,
"launcherLogoBrightness": 0.5,
"launcherLogoContrast": 1,
"launcherLogoSizeOffset": 0,
"fontFamily": "Comfortaa Medium",
"monoFontFamily": "Source Code Pro",
"fontWeight": 400,
"fontScale": 1,
"textRenderType": 0,
"textRenderQuality": 0,
"notepadUseMonospace": true,
"notepadFontFamily": "",
"notepadFontSize": 14,
"notificationSummaryFontSize": 0,
"notificationBodyFontSize": 0,
"notepadShowLineNumbers": false,
"notepadAutoSave": false,
"notepadSlideoutSide": "right",
"notepadDefaultMode": "slideout",
"notepadTransparencyOverride": -1,
"notepadLastCustomTransparency": 0.7,
"notepadUseCompositorGap": false,
"notepadEdgeGap": 0,
"soundsEnabled": true,
"useSystemSoundTheme": false,
"soundLogin": false,
"soundNewNotification": true,
"soundVolumeChanged": false,
"soundPluggedIn": false,
"muteSoundsWhenMediaPlaying": true,
"acMonitorTimeout": 0,
"acLockTimeout": 0,
"acSuspendTimeout": 0,
"acSuspendBehavior": 0,
"acProfileName": "",
"acPostLockMonitorTimeout": 0,
"batteryMonitorTimeout": 0,
"batteryLockTimeout": 0,
"batterySuspendTimeout": 0,
"batterySuspendBehavior": 0,
"batteryProfileName": "",
"batteryPostLockMonitorTimeout": 0,
"batteryChargeLimit": 100,
"batteryNotifyChargeLimit": false,
"batteryCriticalThreshold": 10,
"batteryNotifyCritical": true,
"batteryLowThreshold": 20,
"batteryNotifyLow": false,
"batteryChargeLimitNotificationType": 0,
"batteryLowNotificationType": 0,
"batteryCriticalNotificationType": 1,
"batteryAutoPowerSaver": false,
"lockBeforeSuspend": false,
"loginctlLockIntegration": true,
"fadeToLockEnabled": true,
"fadeToLockGracePeriod": 5,
"fadeToDpmsEnabled": true,
"fadeToDpmsGracePeriod": 5,
"launchPrefix": "",
"gtkThemingEnabled": false,
"qtThemingEnabled": false,
"syncModeWithPortal": true,
"terminalsAlwaysDark": false,
"muxType": "tmux",
"muxUseCustomCommand": false,
"muxCustomCommand": "",
"muxSessionFilter": "",
"runDmsMatugenTemplates": true,
"matugenTemplateGtk": true,
"matugenTemplateNiri": false,
"matugenTemplateHyprland": false,
"matugenTemplateMangowc": false,
"matugenTemplateQt5ct": true,
"matugenTemplateQt6ct": true,
"matugenTemplateFirefox": false,
"matugenTemplatePywalfox": false,
"matugenTemplateZenBrowser": false,
"matugenTemplateVesktop": true,
"matugenTemplateVencord": true,
"matugenTemplateEquibop": false,
"matugenTemplateGhostty": false,
"matugenTemplateKitty": true,
"matugenTemplateFoot": false,
"matugenTemplateAlacritty": true,
"matugenTemplateNeovim": true,
"matugenTemplateWezterm": false,
"matugenTemplateDgop": true,
"matugenTemplateKcolorscheme": true,
"matugenTemplateVscode": false,
"matugenTemplateEmacs": false,
"matugenTemplateZed": false,
"matugenTemplateNeovimSettings": {
"dark": {
"baseTheme": "github_dark",
"harmony": 0.5
},
"light": {
"baseTheme": "github_light",
"harmony": 0.5
}
},
"matugenTemplateNeovimSetBackground": true,
"showDock": false,
"dockAutoHide": false,
"dockSmartAutoHide": false,
"dockUseOverlayLayer": false,
"dockGroupByApp": false,
"dockRestoreSpecialWorkspaceOnClick": false,
"dockOpenOnOverview": false,
"dockPosition": 1,
"dockSpacing": 4,
"dockBottomGap": 0,
"dockMargin": 0,
"dockIconSize": 40,
"dockIndicatorStyle": "circle",
"dockBorderEnabled": false,
"dockBorderColor": "surfaceText",
"dockBorderOpacity": 1,
"dockBorderThickness": 1,
"dockIsolateDisplays": false,
"dockLauncherEnabled": false,
"dockLauncherLogoMode": "apps",
"dockLauncherLogoCustomPath": "",
"dockLauncherLogoColorOverride": "",
"dockLauncherLogoSizeOffset": 0,
"dockLauncherLogoBrightness": 0.5,
"dockLauncherLogoContrast": 1,
"dockMaxVisibleApps": 0,
"dockMaxVisibleRunningApps": 0,
"dockShowOverflowBadge": true,
"dockShowTrash": false,
"dockTrashFileManager": "default",
"dockTrashCustomCommand": "",
"notificationOverlayEnabled": false,
"notificationPopupShadowEnabled": true,
"notificationPopupPrivacyMode": false,
"notificationForegroundLayers": true,
"modalDarkenBackground": true,
"lockScreenShowPowerActions": true,
"lockScreenShowSystemIcons": true,
"lockScreenShowTime": true,
"lockScreenShowDate": true,
"lockScreenShowProfileImage": true,
"lockScreenShowPasswordField": true,
"lockScreenShowMediaPlayer": true,
"lockScreenPowerOffMonitorsOnLock": false,
"lockAtStartup": false,
"enableFprint": false,
"maxFprintTries": 15,
"enableU2f": false,
"u2fMode": "or",
"lockPamPath": "",
"lockPamInlineFprint": false,
"lockPamInlineU2f": false,
"lockPamExternallyManaged": false,
"lockU2fPamPath": "",
"lockScreenInactiveColor": "#000000",
"lockScreenNotificationMode": 0,
"lockScreenVideoEnabled": false,
"lockScreenVideoPath": "",
"lockScreenVideoCycling": false,
"lockScreenWallpaperPath": "",
"lockScreenWallpaperFillMode": "",
"lockScreenFontFamily": "",
"hideBrightnessSlider": false,
"notificationTimeoutLow": 5000,
"notificationTimeoutNormal": 5000,
"notificationTimeoutCritical": 0,
"notificationCompactMode": false,
"notificationShowTimeoutBar": false,
"notificationDedupeEnabled": true,
"notificationPopupPosition": 0,
"notificationAnimationSpeed": 1,
"notificationCustomAnimationDuration": 400,
"notificationHistoryEnabled": true,
"notificationHistoryMaxCount": 50,
"notificationHistoryMaxAgeDays": 7,
"notificationHistorySaveLow": true,
"notificationHistorySaveNormal": true,
"notificationHistorySaveCritical": true,
"notificationRules": [],
"notificationFocusedMonitor": false,
"osdAlwaysShowValue": false,
"osdPosition": 5,
"osdVolumeEnabled": true,
"osdMediaVolumeEnabled": true,
"osdMediaPlaybackEnabled": true,
"osdBrightnessEnabled": true,
"osdIdleInhibitorEnabled": true,
"osdMicMuteEnabled": true,
"osdCapsLockEnabled": true,
"osdPowerProfileEnabled": true,
"osdAudioOutputEnabled": true,
"powerActionConfirm": false,
"powerActionHoldDuration": 0.5,
"powerMenuActions": [
"reboot",
"logout",
"poweroff",
"lock",
"suspend",
"restart"
],
"powerMenuDefaultAction": "logout",
"powerMenuGridLayout": false,
"customPowerActionLock": "",
"customPowerActionLogout": "",
"customPowerActionSuspend": "",
"customPowerActionHibernate": "",
"customPowerActionReboot": "",
"customPowerActionPowerOff": "",
"updaterHideWidget": false,
"updaterCheckOnStart": false,
"updaterUseCustomCommand": false,
"updaterCustomCommand": "",
"updaterTerminalAdditionalParams": "",
"updaterIntervalSeconds": 86400,
"updaterIncludeFlatpak": true,
"updaterAllowAUR": false,
"updaterIgnoredPackages": [],
"displayNameMode": "system",
"screenPreferences": {
"wallpaper": [
"all"
],
"dock": [],
"notepad": []
},
"showOnLastDisplay": {
"dock": false
},
"niriOutputSettings": {},
"hyprlandOutputSettings": {},
"displayProfiles": {},
"activeDisplayProfile": {},
"displayProfileAutoSelect": false,
"displayShowDisconnected": false,
"displaySnapToEdge": true,
"connectedFrameBarStyleBackups": {},
"barConfigs": [
{
"id": "default",
"name": "Main Bar",
"enabled": true,
"position": 0,
"screenPreferences": [
"all"
],
"showOnLastDisplay": true,
"leftWidgets": [
{
"id": "hyprlandSubmapIndicator",
"enabled": true
},
{
"id": "clock",
"enabled": true,
"clockCompactMode": false
},
{
"id": "workspaceSwitcher",
"enabled": true
}
],
"centerWidgets": [
{
"id": "music",
"enabled": true,
"mediaSize": 1
},
{
"id": "focusedWindow",
"enabled": true,
"focusedWindowCompactMode": false
}
],
"rightWidgets": [
{
"id": "systemTray",
"enabled": true
},
{
"id": "cpuUsage",
"enabled": true,
"minimumWidth": true
},
{
"id": "memUsage",
"enabled": true,
"showSwap": false
},
"notificationButton",
{
"id": "controlCenterButton",
"enabled": true,
"showNetworkIcon": true,
"showAudioPercent": true,
"showVpnIcon": false,
"showMicIcon": true,
"showBatteryIcon": true,
"showPrinterIcon": false,
"showScreenSharingIcon": false
}
],
"spacing": 4,
"innerPadding": 5,
"bottomGap": 0,
"transparency": 0.7,
"widgetTransparency": 1,
"squareCorners": false,
"noBackground": false,
"maximizeWidgetIcons": false,
"maximizeWidgetText": false,
"removeWidgetPadding": false,
"widgetPadding": 7,
"gothCornersEnabled": false,
"gothCornerRadiusOverride": false,
"gothCornerRadiusValue": 12,
"borderEnabled": false,
"borderColor": "surfaceText",
"borderOpacity": 1,
"borderThickness": 1,
"widgetOutlineEnabled": false,
"widgetOutlineColor": "primary",
"widgetOutlineOpacity": 1,
"widgetOutlineThickness": 1,
"fontScale": 1.25,
"iconScale": 1.25,
"autoHide": false,
"autoHideDelay": 250,
"showOnWindowsOpen": false,
"openOnOverview": false,
"visible": true,
"popupGapsAuto": true,
"popupGapsManual": 4,
"maximizeDetection": false,
"scrollEnabled": false,
"scrollXBehavior": "column",
"scrollYBehavior": "workspace",
"shadowIntensity": 0,
"shadowOpacity": 60,
"shadowColorMode": "text",
"shadowCustomColor": "#000000",
"clickThrough": false
}
],
"desktopClockEnabled": false,
"desktopClockStyle": "analog",
"desktopClockTransparency": 0.8,
"desktopClockColorMode": "primary",
"desktopClockCustomColor": {
"r": 1,
"g": 1,
"b": 1,
"a": 1,
"hsvHue": -1,
"hsvSaturation": 0,
"hsvValue": 1,
"hslHue": -1,
"hslSaturation": 0,
"hslLightness": 1,
"valid": true
},
"desktopClockShowDate": true,
"desktopClockShowAnalogNumbers": false,
"desktopClockShowAnalogSeconds": true,
"desktopClockX": -1,
"desktopClockY": -1,
"desktopClockWidth": 280,
"desktopClockHeight": 180,
"desktopClockDisplayPreferences": [
"all"
],
"systemMonitorEnabled": false,
"systemMonitorShowHeader": true,
"systemMonitorTransparency": 0.8,
"systemMonitorColorMode": "primary",
"systemMonitorCustomColor": {
"r": 1,
"g": 1,
"b": 1,
"a": 1,
"hsvHue": -1,
"hsvSaturation": 0,
"hsvValue": 1,
"hslHue": -1,
"hslSaturation": 0,
"hslLightness": 1,
"valid": true
},
"systemMonitorShowCpu": true,
"systemMonitorShowCpuGraph": true,
"systemMonitorShowCpuTemp": true,
"systemMonitorShowGpuTemp": false,
"systemMonitorGpuPciId": "",
"systemMonitorShowMemory": true,
"systemMonitorShowMemoryGraph": true,
"systemMonitorShowNetwork": true,
"systemMonitorShowNetworkGraph": true,
"systemMonitorShowDisk": true,
"systemMonitorShowTopProcesses": false,
"systemMonitorTopProcessCount": 3,
"systemMonitorTopProcessSortBy": "cpu",
"systemMonitorGraphInterval": 60,
"systemMonitorLayoutMode": "auto",
"systemMonitorX": -1,
"systemMonitorY": -1,
"systemMonitorWidth": 320,
"systemMonitorHeight": 480,
"systemMonitorDisplayPreferences": [
"all"
],
"systemMonitorVariants": [],
"desktopWidgetPositions": {},
"desktopWidgetGridSettings": {},
"desktopWidgetInstances": [],
"desktopWidgetGroups": [],
"builtInPluginSettings": {
"dms_settings_search": {
"trigger": "?"
},
"dms_notepad": {
"enabled": false
},
"dms_clipboard_search": {
"trigger": "cb"
}
},
"clipboardClickToPaste": false,
"clipboardEnterToPaste": false,
"clipboardRememberTypeFilter": false,
"clipboardTypeFilter": "all",
"clipboardVisibleEntryActions": [
"pin",
"edit",
"delete"
],
"launcherPluginVisibility": {},
"launcherPluginOrder": [],
"frameEnabled": false,
"frameThickness": 16,
"frameRounding": 23,
"frameColor": "",
"frameOpacity": 1,
"frameScreenPreferences": [
"all"
],
"frameBarSize": 40,
"frameShowOnOverview": false,
"frameBlurEnabled": true,
"frameCloseGaps": true,
"frameLauncherEmergeSide": "bottom",
"frameLauncherArcExtender": false,
"frameLauncherEdgeHover": false,
"frameMode": "connected",
"barInsetPaddingShared": -1,
"barInsetPaddingSyncAll": false,
"frameBarInsetPadding": -1,
"configVersion": 13
}
-29
View File
@@ -1,29 +0,0 @@
import decman
from modules.core import utilities
from modules.core.system import base, pipewire
from modules.core.applications import dev_tools, games, steering_wheel, virtual_machines
from modules.core.ui import file_manager, fonts, hyprland, login, shell
from modules.coding import latex, neovim
if decman.aur:
decman.aur.ignored_packages |= {"yay"}
if decman.pacman:
decman.pacman.ignored_packages |= {"yay", "aylurs-gtk-shell"}
decman.modules += [
base.BasePackages("desktop"),
pipewire.Pipewire(),
dev_tools.DevTools(),
games.Games(),
steering_wheel.SteeringWheel(),
file_manager.FileManager(),
fonts.Fonts(),
hyprland.Hyprland(),
login.LoginManager("desktop"),
shell.DesktopShell(),
neovim.Neovim(),
latex.Latex(),
utilities.UtilPackages(),
virtual_machines.VirtualMachines(),
]
-50
View File
@@ -1,50 +0,0 @@
import decman
from decman.plugins import pacman
import config
class Latex(decman.Module):
def __init__(self):
"""Base packages that should never be uninstalled"""
super().__init__("latex")
@pacman.packages
def pkgs(self) -> set[str]:
return {
"biber",
"perl-yaml-tiny",
"perl-file-homedir",
"python-pygments",
"texlab",
"texlive-basic",
"texlive-bibtexextra",
"texlive-binextra",
"texlive-context",
"texlive-fontsextra",
"texlive-fontsrecommended",
"texlive-fontutils",
"texlive-formatsextra",
"texlive-games",
"texlive-humanities",
"texlive-latex",
"texlive-latexextra",
"texlive-latexrecommended",
"texlive-luatex",
"texlive-mathscience",
"texlive-metapost",
"texlive-music",
"texlive-pictures",
"texlive-plaingeneric",
"texlive-pstricks",
"texlive-publishers",
"texlive-xetex",
"texlive-langgerman",
}
def files(self) -> dict[str, decman.File]:
return {
f"/home/{config.user}.indentconfig.yaml": decman.File(
source_file="./linters/indentconfig.yaml"
)
}
-26
View File
@@ -1,26 +0,0 @@
import decman
from decman.plugins import pacman, aur
class Neovim(decman.Module):
def __init__(self):
"""Neovim Packages"""
super().__init__("neovim")
@pacman.packages
def pkgs(self) -> set[str]:
return {
"neovim",
"lua",
"lua-language-server",
"tree-sitter",
"tree-sitter-cli",
"stylua",
}
# def directories(self) -> dict[str, decman.Directory]:
# return { "": decman.Directory() }
@aur.packages
def aurpkgs(self) -> set[str]:
return {"shell-color-scripts-git", "nvimpager"}
-51
View File
@@ -1,51 +0,0 @@
import decman
import config
from decman.plugins import pacman
class DevTools(decman.Module):
def __init__(self):
"""Base packages that should never be uninstalled"""
super().__init__("dev-tools")
@pacman.packages
def pkgs(self) -> set[str]:
return {
"act",
"cronie",
"cloc",
"cmake",
"dart-sass",
"docker",
"docker-buildx",
"docker-compose",
"filezilla",
"git-lfs",
"hugo",
"helm",
"kitty",
"kubectl",
"lazygit",
"meld",
"meson",
"minisign",
"python-argcomplete",
"python-black",
"python-build",
"python-colorama",
"python-installer",
"python-jsonschema",
"python-pip",
"python-pyaml",
"python-numpy",
"python-scipy",
"python-sympy",
"serpl",
"terminator",
}
def directories(self) -> dict[str, decman.Directory]:
return {
f"/home/{config.user}/.config/lazygit": decman.Directory("./config/lazygit", owner=config.user, group=config.user),
f"/home/{config.user}/.config/kitty": decman.Directory("./config/kitty", owner=config.user, group=config.user),
}
-29
View File
@@ -1,29 +0,0 @@
import decman
from decman.plugins import pacman, aur
class Games(decman.Module):
def __init__(self):
"""Base packages that should never be uninstalled"""
super().__init__("games")
@pacman.packages
def pkgs(self) -> set[str]:
return {
"android-udev",
"android-tools",
"gamemode",
"gamescope",
# "lib32-vulkan-radeon",
"obs-studio",
"obs-studio-plugin-browser",
"prismlauncher",
"steam",
"vulkan-radeon",
"v4l2loopback-dkms",
}
@aur.packages
def aurpkgs(self) -> set[str]:
# Consider switching to WiVRN
return {"bs-manager-bin", "alvr-bin"}
@@ -1,15 +0,0 @@
import decman
from decman.plugins import aur
class SteeringWheel(decman.Module):
def __init__(self):
"""Base packages that should never be uninstalled"""
super().__init__("steering-wheel")
@aur.packages
def aurpkgs(self) -> set[str]:
return {"oversteer", "hid-tmff2-dkms-git"}
def on_enable(self, store: decman.Store):
return super().on_enable(store)
@@ -1,27 +0,0 @@
import decman
from decman.plugins import pacman
import config
class VirtualMachines(decman.Module):
def __init__(self):
"""Set up virtual machines"""
super().__init__("virtualmachines")
@pacman.packages
def pkgs(self) -> set[str]:
return {
"dnsmasq",
"libayatana-appindicator",
"libvirt-python",
"lvm2",
"qemu-base",
"vde2",
"virt-manager",
"virt-viewer",
}
def on_enable(self, store: decman.Store):
# TODO: Everywhere, make user configurable
decman.prg(["usermod", "-G", "libvirt", "-a", config.user])
-74
View File
@@ -1,74 +0,0 @@
from typing import Literal
import decman
from decman.plugins import pacman, aur
class BasePackages(decman.Module):
def __init__(self, platform: Literal["desktop", "laptop"]):
"""Base packages that should never be uninstalled"""
self._platform: Literal["desktop", "laptop"] = platform
super().__init__("base")
@pacman.packages
def pkgs(self) -> set[str]:
return {
"base",
"base-devel",
"cifs-utils",
"cups",
"dosfstools",
"efibootmgr",
"exfatprogs",
"git",
"grub",
"gsl",
"libisoburn",
"libguestfs",
"libmicrohttpd",
"linux",
"linux-firmware",
"linux-headers",
"lzop",
"mesa",
"mesa-utils",
"mtools",
"ntfs-3g",
"ntfsprogs",
"networkmanager",
"pacman-contrib",
"plymouth",
"reflector",
"samba",
"sdl12-compat",
"sdl2-compat",
"sudo",
"systemd-resolvconf",
"trash-cli",
}
@aur.packages
def aurpkgs(self) -> set[str]:
return {"decman"}
# TODO:
# def file_variables(self) -> dict[str, str]:
# return super().file_variables()
def files(self) -> dict[str, decman.File]:
# TODO: File substitutions (for PC and laptop)
if self._platform == "desktop":
return {
"/etc/mkinitcpio.conf": decman.File(
source_file="./system/mkinitcpio.conf"
),
"/etc/pacman.conf": decman.File(source_file="./system/pacman.conf"),
"/etc/default/grub": decman.File(source_file="./system/grub"),
"/etc/environment": decman.File(source_file="./system/environment"),
}
else:
return {}
def on_change(self, store):
decman.prg(["mkinitcpio", "-P"])
decman.prg(["grub-mkconfig", "-o", "/boot/grub/grub.cfg"])
-20
View File
@@ -1,20 +0,0 @@
import decman
from decman.plugins import pacman
class Pipewire(decman.Module):
def __init__(self):
"""Base packages that should never be uninstalled"""
super().__init__("pipewire")
@pacman.packages
def pkgs(self) -> set[str]:
return {
"gst-plugin-pipewire",
"pavucontrol",
"pipewire",
"pipewire-alsa",
"pipewire-pulse",
"pipewire-jack",
"wireplumber",
}
-37
View File
@@ -1,37 +0,0 @@
import decman
from decman.plugins import pacman, aur
import config
class FileManager(decman.Module):
def __init__(self):
"""Base packages that should never be uninstalled"""
super().__init__("filemanager")
@pacman.packages
def pkgs(self) -> set[str]:
return {
"ifuse",
"libimobiledevice",
"fuse2",
"movit",
"ouch",
"resvg",
"yazi",
}
@aur.packages
def aurpkgs(self) -> set[str]:
return {"xdg-desktop-portal-termfilechooser-hunkyburrito-git"}
def directories(self) -> dict[str, decman.Directory]:
return {
f"/home/{config.user}/.config/xdg-desktop-portal": decman.Directory(
"./config/xdg-desktop-portal", owner=config.user, group=config.user
),
f"/home/{config.user}/.config/xdg-desktop-portal-termfilechooser": decman.Directory(
"./config/xdg-desktop-portal-termfilechooser", owner=config.user, group=config.user
),
f"/home/{config.user}/.config/yazi": decman.Directory("./config/yazi", owner=config.user, group=config.user),
}
-23
View File
@@ -1,23 +0,0 @@
import decman
from decman.plugins import pacman, aur
class Fonts(decman.Module):
def __init__(self):
"""Base packages that should never be uninstalled"""
super().__init__("fonts")
@pacman.packages
def pkgs(self) -> set[str]:
return {
"adobe-source-code-pro-fonts",
"ttf-fantasque-nerd",
"ttf-jetbrains-mono-nerd",
"ttf-iosevka-nerd",
"ttf-nerd-fonts-symbols-common",
"inter-font",
}
@aur.packages
def aurpkgs(self) -> set[str]:
return {"ttf-comfortaa"}
-40
View File
@@ -1,40 +0,0 @@
import decman
from decman.plugins import pacman
import config
class Hyprland(decman.Module):
def __init__(self):
"""Base packages that should never be uninstalled"""
super().__init__("hyprland")
@pacman.packages
def pkgs(self) -> set[str]:
return {
"cliphist",
# "grimblast",
"hyprland",
"hyprlock",
"hypridle",
"hyprshutdown",
"hyprpwcenter",
"hyprtoolkit",
"hyprpolkitagent",
"hyprpaper",
"libappindicator",
"rtkit",
"wl-clipboard",
"wev",
"xdg-desktop-portal-hyprland",
}
def directories(self) -> dict[str, decman.Directory]:
return {
f"/home/{config.user}/.config/hypr": decman.Directory(
"./config/hypr", owner=config.user, group=config.user
),
f"/home/{config.user}/.config/wlogout": decman.Directory(
"./config/wlogout", owner=config.user, group=config.user
)
}
-38
View File
@@ -1,38 +0,0 @@
from typing import Literal
import decman
from decman.plugins import pacman, systemd
class LoginManager(decman.Module):
def __init__(self, platform: Literal["desktop", "laptop"]):
"""Base packages that should never be uninstalled"""
self._platform: Literal["desktop", "laptop"] = platform
super().__init__("login")
@pacman.packages
def pkgs(self) -> set[str]:
if self._platform == "desktop":
return {
"greetd",
"greetd-tuigreet",
}
else:
return {"gdm"}
@systemd.units
def units(self) -> set[str]:
if self._platform == "desktop":
return {"greetd.service"}
else:
return {"gdm.service"}
def files(self) -> dict[str, decman.File]:
if self._platform == "desktop":
return {
"/etc/greetd/config.toml": decman.File("./system/greetd/config.toml"),
"/etc/pam.d/greetd": decman.File("./system/greetd/pam"),
}
else:
# TODO: GDM config files
return {}
-21
View File
@@ -1,21 +0,0 @@
# NOTE: Bar may eventually be replaced by custom bar
import decman
from decman.plugins import pacman
import config
class DesktopShell(decman.Module):
def __init__(self):
"""DesktopShell"""
super().__init__("desktopshell")
@pacman.packages
def pkgs(self) -> set[str]:
return {"dms-shell", "cava", "matugen", "papirus-icon-theme", "adw-gtk-theme", "power-profiles-daemon", "qt6ct"}
# TODO: Copy the config of dms, once done
def directories(self) -> dict[str, decman.Directory]:
return {
f"/home/{config.user}/.config/matugen": decman.Directory("./config/matugen", owner=config.user, group=config.user)
}
-78
View File
@@ -1,78 +0,0 @@
import decman
from decman.plugins import pacman, aur
import config
class UtilPackages(decman.Module):
def __init__(self):
"""Util packages"""
super().__init__("util")
@pacman.packages
def pkgs(self) -> set[str]:
return {
"bashtop",
"brightnessctl",
"bind",
"bluez",
"clamav",
"evince",
"fastfetch",
"fd",
"ffmpeg",
"ffmpegthumbnailer",
"fish",
"fzf",
"gdu",
"gimp",
"go",
"gnome-disk-utility",
"gwenview",
"handbrake",
"iptables",
"libdvdcss",
"man-pages",
"man-db",
"mpv",
"nextcloud-client",
"okular",
"openconnect",
"os-prober",
"qalculate-qt",
"ripgrep",
"simple-scan",
"smartmontools",
"thunderbird",
"tldr",
"unzip",
"wget",
"wine",
"xclip",
"zathura",
"zathura-pdf-poppler",
"zip",
"zoxide",
"networkmanager-openconnect",
}
@aur.packages
def aurpkgs(self) -> set[str]:
return {
"librewolf-bin",
"brave-bin",
"vesktop-bin",
"uxplay",
"git-credential-manager-bin",
"gradia",
"parabolic",
}
def directories(self) -> dict[str, decman.Directory]:
return {
f"/home/{config.user}/.config/fish": decman.Directory("./config/fish", owner=config.user, group=config.user),
f"/home/{config.user}/.config/fastfetch": decman.Directory(
"./config/fastfetch", owner=config.user, group=config.user
),
f"/home/{config.user}/.config/mpv": decman.Directory("./config/mpv", owner=config.user, group=config.user),
}
+25
View File
@@ -0,0 +1,25 @@
hyprland
hyprlock
hypridle
hyprpaper
hyprpolkitagent
waybar
wlogout
rofi
alacritty
dgop
bluetui
qt6ct-kde
yazi
swaync
xdg-desktop-portal-hyprland
zsh
fd
ripgrep
ripgrep-all
resvg
wl-clipboard
nextcloud-client
slurp
grim
satty
+2
View File
@@ -16,7 +16,9 @@ Container can be one of:
- base - base
- node - node
- php - php
- postgres
- python - python
- rust
- torch-rocm - torch-rocm
- vue - vue
- webserver - webserver
+4
View File
@@ -0,0 +1,4 @@
#!/bin/sh
cd "$(dirname "$0")/.."
./setup.sh $1
+38 -14
View File
@@ -9,10 +9,12 @@ echo "
( )_| | ( )_| |
\___/ \___/
=> Migration to V4 => Setup + Theming script <=
-> WARNING: This will remove the old configurations from the system
" "
# ┌ ┐
# │ Platform setup │
# └ ┘
if ! [[ -f ~/.config/janishutz/platform ]]; then if ! [[ -f ~/.config/janishutz/platform ]]; then
platform="" platform=""
read -p "Choose on the platform (l/D): " platform read -p "Choose on the platform (l/D): " platform
@@ -24,31 +26,53 @@ if ! [[ -f ~/.config/janishutz/platform ]]; then
echo "n" >~/.config/janishutz/docked echo "n" >~/.config/janishutz/docked
fi fi
# ┌ ┐
# │ System config file │
# └ ┘
# (currently only env)
confirmation="" confirmation=""
read -p "Also install the system-wide environment file? (y/N) " confirmation read -p "Also install the system-wide environment file? (y/N) " confirmation
if [[ "$confirmation" == "y" ]]; then if [[ "$confirmation" == "y" ]]; then
sudo cp ./system/environment /etc/environment sudo cp ./system/environment /etc/environment
fi fi
# ┌ ┐
# │ Install configs │
# └ ┘
rm -rf ~/.config/hypr/*.conf rm -rf ~/.config/hypr/*.conf
rm ~/.config/platform rm ~/.config/platform &> /dev/null || true
rm -rf ~/.config/rofi rm -rf ~/.config/ags &> /dev/null || true
rm -rf ~/.config/ags rm -rf ~/.config/astal &> /dev/null || true
rm -rf ~/.config/astal
cp -r ./config/* ~/.config cp -r ./config/* ~/.config
# Makes kitty use the DMS theme config
cp ./config/zsh/.zshrc ~/.zshrc
# Makes kitty use the matugen theme config
rm ~/.config/kitty/current-theme.conf rm ~/.config/kitty/current-theme.conf
cp ./linters/indentconfig_import.yaml ~/.indentconfig.yaml cp ./linters/indentconfig_import.yaml ~/.indentconfig.yaml
confirmation="" # ┌ ┐
read -p "Use repo version of DMS config? (y/N) " confirmation # │ Theming │
if [[ "$confirmation" == "y" ]]; then # └ ┘
cp -r ./dms/* ~/.config/DankMaterialShell/ # Picker works via argument and open bind in Yazi (set image via Ctrl + W)
# If no image is specified, then the previous one is used
# If no image was used previously and none is specified, an error is raised
if [[ -n $1 ]]; then
matugen image --prefer value $1
mkdir ~/.local/state/janishutz &> /dev/null || true
echo "$1" >~/.local/state/janishutz/imgcache
else else
cp -r ~/.config/DankMaterialShell/settings.json ./dms if ! [[ -f ~/.local/state/janishutz/imgcache ]]; then
cp -r ~/.config/DankMaterialShell/plugin_settings.json ./dms echo "No image to use for theme generation specified, aborting"
cp -r ~/.config/DankMaterialShell/.firstlaunch ./dms exit 1
else
echo "Falling back to previous image"
matugen image --prefer value $(cat ~/.local/state/janishutz/imgcache)
fi
fi fi
killall hyprpaper &>/dev/null
hyprpaper &>/dev/null &
disown
hyprctl reload hyprctl reload
+1 -1
View File
@@ -1,4 +1,4 @@
complete -a "base jupyter node php postgres python torch-rocm vue webserver" -c dev-containers -f complete -a "base jupyter node php postgres python rust torch-rocm vue webserver" -c dev-containers -f
complete -a "rm" -d "Delete the container for this folder" -c dev-containers -f complete -a "rm" -d "Delete the container for this folder" -c dev-containers -f
complete -a "help" -d "Show help" -c dev-containers -f complete -a "help" -d "Show help" -c dev-containers -f
complete -a "shell" -d "Create an extra shell for the currently running container" -c dev-containers -f complete -a "shell" -d "Create an extra shell for the currently running container" -c dev-containers -f