59 Commits
Author SHA1 Message Date
janishutz 595eff9304 chore(zsh): update autosuggest strat 2026-10-09 11:05:16 +02:00
janishutz 4e57a93b71 chore: don't output ssh-agent startup 2026-10-09 10:42:12 +02:00
janishutz ca24632278 chore(wlogout): hyprshutdown 2026-10-09 10:38:30 +02:00
janishutz 110ba37474 chore(zsh): load ssh-agent 2026-10-08 17:11:37 +02:00
janishutz 55e50afc87 chore(zsh): update theme 2026-10-08 16:09:21 +02:00
janishutz 3396fb6ee2 fix(zsh): delete key 2026-10-08 16:09:09 +02:00
janishutz 57a71c35ce chore(zsh): prepare for migrate 2026-10-08 15:26:09 +02:00
janishutz d3279487c8 fix(fish): move eval to better location and ignore output 2026-10-06 15:45:59 +02:00
janishutz 7110f92fbf chore(fish): auto-source ssh agent config for shell 2026-10-06 15:44:35 +02:00
janishutz ee1643ba36 chore: update yazi binds 2026-10-06 14:26:00 +02:00
janishutz 04e9a131e1 chore: git remote switch remove printout 2026-10-05 18:16:53 +02:00
janishutz 7aef30d600 fix: git remote switch script error 2026-10-05 18:15:31 +02:00
janishutz 5764b73e5c feat: git remote switch also reconfigures all branches 2026-10-05 17:28:58 +02:00
janishutz 586bcca9d8 feat: git remote change script doesn't need originial auth method 2026-10-05 17:24:54 +02:00
janishutz 4eb93884c8 feat: add script for simple wg vpn management 2026-10-05 17:18:33 +02:00
janishutz 6f68856d35 chore: git remote switch script quits on error 2026-10-05 16:11:34 +02:00
janishutz a19b3c9172 chore: improve name of uxplay 2026-10-05 13:26:41 +02:00
janishutz e42026d51c chore: improve git remote type switch 2026-10-04 16:37:48 +02:00
janishutz 4d15735df4 feat: improve theme gen 2026-10-04 15:37:53 +02:00
janishutz a8439f1033 feat: script to change git remote type between ssh and https 2026-10-04 11:59:15 +02:00
janishutz f4388ad430 docs: projectnames for wakapi 2026-10-02 18:32:14 +02:00
janishutz 53325eb74b fix: screenshots 2026-09-25 09:55:11 +02:00
janishutz 79ed66c8af fix: window rules for summaries 2026-09-24 17:46:48 +02:00
janishutz 2508df2220 fix: openers for yazi 2026-09-23 09:55:53 +02:00
janishutz d4b74e0002 feat: switch to wivrn 2026-09-20 10:13:02 +02:00
janishutz 92753f810a fix: airplay 2026-09-20 07:59:42 +02:00
janishutz 988acd5fca feat: add compilerdesign container to management 2026-09-20 07:57:15 +02:00
janishutz 619798480c fix: alacritty theme 2026-09-18 15:01:42 +02:00
janishutz 15eba1711b fix: waybar brightness controls 2026-09-17 14:42:50 +02:00
janishutz fafb3e228c fix: window title padding 2026-09-17 09:43:03 +02:00
janishutz 238c3147ce fix: docked mode script 2026-09-16 15:16:10 +02:00
janishutz b9b83d5d8e fix: spacing for networking symbols 2026-09-15 12:11:35 +02:00
janishutz b6f8daea09 feat!: new yazi keybinds 2026-09-13 07:32:18 +02:00
janishutz 6b1f915efc feat: improve theme generation 2026-09-02 16:14:50 +02:00
janishutz a9c804a781 fix: onclick actions for TUIs 2026-08-31 16:11:32 +02:00
janishutz 45f7d1cfbf chore: update readme 2026-08-29 14:03:31 +02:00
janishutz 357d4d6cfd fix: screenshot 2026-08-29 14:00:50 +02:00
janishutz 7b8c1e6772 fix: laptop config 2026-08-27 16:23:15 +02:00
janishutz d6d887be1d fix: heroic games launcher tag 2026-08-27 14:02:47 +02:00
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
76 changed files with 1482 additions and 1635 deletions

No files matched your search

+6 -25
View File
@@ -6,21 +6,14 @@
Full system configuration using [Decman](https://github.com/kiviktnm/decman). Full system configuration using [Decman](https://github.com/kiviktnm/decman).
For my neovim config, see [here](https://git.janishutz.com/janishutz/nvim) For my neovim config, see [here](https://git.janishutz.com/janishutz/nvim)
*Screenshot outdated, a new screenshot will be added when this update is completed*
![screenshot of desktop with 2 screens](./assets/screenshot.png) ![screenshot of desktop with 2 screens](./assets/screenshot.png)
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) In the future, I may move to NixOS, but this will be some time still.
DankMaterialShell is a stop-gap solution, which, albeit it looking nice, This branch is a full rewrite of my desktop, for my old desktop setup, see [the v3 branch](https://git.janishutz.com/janishutz/dotfiles/src/branch/v3)
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
## Features ## Features
- DankMaterialShell
- Automatically generated GTK Theme and theming of the rest of the desktop using `matugen` - Automatically generated GTK Theme and theming of the rest of the desktop using `matugen`
- Fish config (with some handy aliases, based on one from ohh-my-fish) - Fish config (with some handy aliases, based on one from ohh-my-fish)
- Fastfetch config - Fastfetch config
@@ -30,26 +23,14 @@ Furthermore, my system may migrate to NixOS by early September 2026, to finally
- Linter configs (eslint, clang-format, latexindent and more) - Linter configs (eslint, clang-format, latexindent and more)
- mpv config - mpv config
- zathura configs - zathura configs
- yazi configs with links to various directories I use commonly plus a few plugins and themes that are applied by the script - yazi configs with links to various directories I use commonly plus a few plugins and auto-generated theme
- yazi integration to switch theme
## TODOs ## TODOs
- [ ] Migrate back to Waybar - [X] dgop as hw monitor
- [X] Rewrite Hyprland configs using lua
- [X] Waylogout still needed?
- [X] Add the formatter configs back in
- [X] Add the scripts back in
- [ ] ~Finish decman configuration to copy all the files~
- [X] Custom yazi theme
- [ ] Notifier (swaync??)
- [ ] Launcher (hyprlauncher??)
- [ ] dgop as hw monitor
- [ ] No need for nm-applet (even with waybar -> nmcli or nmtui)
- [ ] Adapt the GTK, etc config from DMS for my own design
- [ ] Update neovim design
- [ ] Nix config - [ ] Nix config
- [ ] home-manager or what for dotfiles management on nix? - [ ] home-manager or what for dotfiles management on nix?
- [ ] Yazi more directory links - [ ] Yazi more directory links
- [ ] Hyprland keybind panel? - [ ] Hyprland keybind panel?
- [ ] Migrate to zsh (or another POSIX compliant shell) - [ ] Migrate to zsh (or another POSIX compliant shell)?
- [ ] Wallpaper picker (for regenerating stuff using matugen). TUI using kitty graphics? Or any lightweight toolkit?
-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?
Binary file not shown.

After

Width:  |  Height:  |  Size: 168 KiB

-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'
+2 -3
View File
@@ -33,6 +33,8 @@ end
zoxide init --cmd j fish | source zoxide init --cmd j fish | source
eval $(ssh-agent -c) &>/dev/null
if status is-interactive if status is-interactive
function fish_prompt function fish_prompt
@@ -109,9 +111,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';
File renamed without changes.
+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)
+16 -2
View File
@@ -14,12 +14,26 @@ hl.define_submap("groupedlaunch", function()
hl.bind("s", function() hl.bind("s", function()
hl.exec_cmd("kitty ~/projects/eth/eth-summaries/", { workspace = 1 }) hl.exec_cmd("kitty ~/projects/eth/eth-summaries/", { workspace = 1 })
hl.exec_cmd("kitty ~/NextCloud/Documents/ETH/Semester4/", { workspace = 3 }) hl.exec_cmd("kitty ~/NextCloud/Documents/ETH/Semester5/", { workspace = 3 })
exit_submap() exit_submap()
end, { description = "Launch programs to write ETH summaries" }) end, { description = "Launch programs to write ETH summaries" })
hl.bind("m", function()
hl.exec_cmd("kitty ~/projects/github/MusicPlayer/", { workspace = 1 })
hl.exec_cmd("kitty ~/projects/github/MusicPlayer/backend/go", { workspace = 9 })
hl.exec_cmd("kitty ~/projects/github/MusicPlayer/web/", { workspace = 10 })
exit_submap()
end, { description = "Launch programs for MusicPlayer development" })
hl.bind("v", function()
hl.exec_cmd("kitty ~/projects/system/vps-docker/", { workspace = 1 })
hl.exec_cmd("alacritty", { workspace = 3 })
hl.exec_cmd("librewolf", { workspace = 11 })
exit_submap()
end, { description = "Launch programs for VPS management" })
hl.bind("b", function() hl.bind("b", function()
hl.exec_cmd("alvr_dashboard", { workspace = 1 }) hl.exec_cmd("wivrn-dashboard", { workspace = 1 })
hl.exec_cmd("/opt/BSManager/bs-manager", { workspace = 2 }) hl.exec_cmd("/opt/BSManager/bs-manager", { workspace = 2 })
hl.exec_cmd("steam", { workspace = 3 }) hl.exec_cmd("steam", { workspace = 3 })
exit_submap() exit_submap()
-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())
+3 -3
View File
@@ -40,8 +40,8 @@ hl.define_submap("launch", function()
-- bsmanager -- bsmanager
hl.bind("b", launcher("/opt/BSManager/bs-manager"), { description = "Launch BSManager" }) hl.bind("b", launcher("/opt/BSManager/bs-manager"), { description = "Launch BSManager" })
-- ALVR -- WiVRN
hl.bind("p", launcher("alvr_dashboard"), { description = "Launch ALVR" }) hl.bind("p", launcher("wivrn-dashboard"), { description = "Launch WiVRN" })
-- Qalculate -- Qalculate
hl.bind("c", launcher("qalculate-qt"), { description = "Launch Qalculate!" }) hl.bind("c", launcher("qalculate-qt"), { description = "Launch Qalculate!" })
@@ -51,7 +51,7 @@ hl.define_submap("launch", function()
hl.dispatch(hl.dsp.exec_cmd("notify-send 'AirPlay server is starting...' --app-name='AirPlay Video'")) hl.dispatch(hl.dsp.exec_cmd("notify-send 'AirPlay server is starting...' --app-name='AirPlay Video'"))
hl.dispatch( hl.dispatch(
hl.dsp.exec_cmd( hl.dsp.exec_cmd(
"terminator -T 'hiddent'terminator' -e 'systemctl start avahi-daemon' && sleep 5 && uxplay -n LinuxVideoplay -nh" "terminator -T 'hidden-terminator' -e 'systemctl start avahi-daemon' && sleep 5 && uxplay -n LinuxPlay -nh"
) )
) )
exit_submap() exit_submap()
+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 "$(xdg-user-dir 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)' -o $(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" },
})
+1 -1
View File
@@ -18,7 +18,7 @@ hl.window_rule({
-- Launchers -- Launchers
hl.window_rule({ hl.window_rule({
match = { match = {
class = "steam|minecraft-launcher|org\\.prismlauncher\\.PrismLauncher", class = "steam|minecraft-launcher|org\\.prismlauncher\\.PrismLauncher|heroic",
}, },
tag = "+launchers", tag = "+launchers",
}) })
@@ -39,7 +39,7 @@ hl.window_rule({
workspace = 4, workspace = 4,
}) })
hl.window_rule({ hl.window_rule({
match = { title = ".*-summary.pdf|.*cheatsheet.pdf|.*cheat-sheet.pdf" }, match = { title = ".*summary.pdf|.*cheatsheet.pdf|.*cheat-sheet.pdf|.*main.pdf" },
workspace = 4, workspace = 4,
}) })
+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/theme.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'
+13
View File
@@ -0,0 +1,13 @@
#!/bin/sh
# 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;
}
+112
View File
@@ -0,0 +1,112 @@
@import "colors.css";
* {
border: none;
border-radius: 0;
font-family: 'Comfortaa, FiraCode 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;
padding: 3px 9px;
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 -T bluetui -e 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 -T nmtui -e 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": "\udb83\udee0 {usage}",
"interval": 5,
"on-click": "alacritty -T dgop -e dgop"
},
"memory": {
"format": "\udb80\udf5b {percentage}",
"interval": 5,
"on-click": "alacritty -T dgop -e 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": "\udb80\udc79 {capacity}",
"format-85": "\udb80\udc82 {capacity}",
"format-75": "\udb80\udc81 {capacity}",
"format-65": "\udb80\udc80 {capacity}",
"format-55": "\udb80\udc7f {capacity}",
"format-45": "\udb80\udc7e {capacity}",
"format-35": "\udb80\udc7d {capacity}",
"format-25": "\udb80\udc7c {capacity}",
"format-15": "\udb80\udc7b {capacity}",
"format-5": "\udb80\udc7a {capacity}",
"format-critical": "\udb80\udc83 {capacity}",
"format-charging":"\udb80\udc84 {capacity}",
"format-plugged": "\udb85\udfe2",
"format-full": "\udb80\udb79 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": "brightnessctl set +5%",
"on-scroll-down": "brightnessctl set 5%-"
},
"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
}
}
+2 -2
View File
@@ -12,13 +12,13 @@
} }
{ {
"label" : "shutdown", "label" : "shutdown",
"action" : "systemctl poweroff", "action" : "hyprshutdown && systemctl poweroff",
"text" : "Shutdown", "text" : "Shutdown",
"keybind" : "s" "keybind" : "s"
} }
{ {
"label" : "logout", "label" : "logout",
"action" : "hyprctl dispatch exit 0", "action" : "hyprshutdown",
"text" : "Logout", "text" : "Logout",
"keybind" : "e" "keybind" : "e"
} }
+35 -29
View File
@@ -2,43 +2,49 @@
prepend_keymap = [ prepend_keymap = [
# # undo trash # # undo trash
{ on = "u", run = "plugin restore", desc = "Restore last deleted files/folders" }, { on = "u", run = "plugin restore", desc = "Restore last deleted files/folders" },
# # compress # # compress
{ on = "C", run = "plugin ouch tar.gz", desc = "Compress with ouch" }, { on = "C", run = "plugin ouch tar.gz", desc = "Compress with ouch" },
# Goto # Goto
{ on = [ "g", "h" ], run = "cd ~", desc = "Go to ~" }, { on = [ "g", "h" ], run = "cd ~", desc = "Go to ~" },
{ on = [ "g", "a" ], run = "cd ~/.cache", desc = "Go to ~/.cache" }, { on = [ "g", "l", "b" ], run = "cd ~/.local/bin", desc = "Go to ~/.local/bin" },
{ on = [ "g", "l", "b" ], run = "cd ~/.local/bin", desc = "Go to ~/.local/bin" }, { on = [ "g", "l", "s" ], run = "cd ~/.local/share", desc = "Go to ~/.local/share" },
{ on = [ "g", "l", "s" ], run = "cd ~/.local/share", desc = "Go to ~/.local/share" }, { on = [ "g", "c", "c" ], run = "cd ~/.config", desc = "Go to ~/.config" },
{ on = [ "g", "c", "c" ], run = "cd ~/.config", desc = "Go to ~/.config" }, { on = [ "g", "c", "h" ], run = "cd ~/projects/system/dotfiles/config/hypr", desc = "Go to Hyprland config" },
{ on = [ "g", "c", "h" ], run = "cd ~/projects/dotfiles/config/hypr", desc = "Go to Hyprland config" }, { on = [ "g", "c", "f" ], run = "cd ~/projects/system/dotfiles/config/fish", desc = "Go to Fish config" },
{ on = [ "g", "c", "f" ], run = "cd ~/projects/dotfiles/config/fish", desc = "Go to Fish config" }, { on = [ "g", "c", "y" ], run = "cd ~/projects/system/dotfiles/config/yazi", desc = "Go to Yazi config" },
{ on = [ "g", "c", "y" ], run = "cd ~/projects/dotfiles/config/yazi", desc = "Go to Yazi config" }, { on = [ "g", "c", "a" ], run = "cd ~/projects/system/dotfiles/config/astal", desc = "Go to astal config" },
{ on = [ "g", "c", "a" ], run = "cd ~/projects/dotfiles/config/astal", desc = "Go to astal config" }, { on = [ "g", "c", "l" ], run = "cd ~/projects/system/dotfiles/config/lint", desc = "Go to linter configs" },
{ on = [ "g", "c", "l" ], run = "cd ~/projects/dotfiles/config/lint", desc = "Go to linter configs" }, { on = [ "g", "c", "k" ], run = "cd ~/projects/system/dotfiles/config/kitty", desc = "Go to kitty config" },
{ on = [ "g", "c", "k" ], run = "cd ~/projects/dotfiles/config/kitty", desc = "Go to kitty config" }, { on = [ "g", "c", "r" ], run = "cd ~/projects/system/dotfiles/config/rofi", desc = "Go to rofi config" },
{ on = [ "g", "c", "r" ], run = "cd ~/projects/dotfiles/config/rofi", desc = "Go to rofi config" }, { on = [ "g", "c", "s" ], run = "cd ~/projects/system/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/system/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/system/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/sem5/", 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" },
{ on = [ "g", "o" ], run = "cd /mnt/janis/Documents", desc = "Go to Documents" }, { on = [ "g", "d", "s" ], run = "cd /mnt/janis/Documents", desc = "Go to Documents" },
{ on = [ "g", "d" ], run = "cd ~/Downloads", desc = "Go to ~/Downloads" }, { on = [ "g", "d", "o" ], run = "cd /mnt/storage/", desc = "Go to HDD" },
{ on = [ "g", "p" ], run = "cd ~/projects", desc = "Go to projects" }, { on = [ "g", "d", "d" ], run = "cd ~/Downloads", desc = "Go to ~/Downloads" },
{ on = [ "g", "t", "m" ], run = "cd /tmp", desc = "Go to /tmp" }, { on = [ "g", "p", "p" ], run = "cd ~/projects", desc = "Go to projects" },
{ on = [ "g", "t", "t" ], run = "cd ~/.local/share/Trash/", desc = "Go to TRASH" }, { on = [ "g", "p", "m" ], run = "cd ~/projects/github/MusicPlayer/", desc = "Go to MusicPlayer" },
{ on = [ "g", "/" ], run = "cd /", desc = "Go to /" }, { on = [ "g", "p", "l" ], run = "cd ~/projects/latex/", desc = "Go to LaTeX config" },
{ on = [ "g", "m" ], run = "cd /run/media/$USER", desc = "Go to /run/media" }, { on = [ "g", "p", "d" ], run = "cd ~/projects/system/dev-env/", desc = "Go to Dev Environment" },
{ on = [ "g", "<Space>" ], run = "cd --interactive", desc = "Go to interactively" }, { on = [ "g", "p", "v" ], run = "cd ~/projects/system/vps-docker/", desc = "Go to vps configs" },
{ on = [ "g", "-" ], run = "plugin vcs-files", desc = "Show Git file changes" }, { on = [ "g", "p", "s" ], run = "cd ~/projects/store/", desc = "Go to store" },
{ on = [ "g", "t", "m" ], run = "cd /tmp", desc = "Go to /tmp" },
{ on = [ "g", "t", "t" ], run = "cd ~/.local/share/Trash/", desc = "Go to TRASH" },
{ on = [ "g", "/" ], run = "cd /", desc = "Go to /" },
{ on = [ "g", "m" ], run = "cd /run/media/$USER", desc = "Go to /run/media" },
{ on = [ "g", "<Space>" ], run = "cd --interactive", desc = "Go to interactively" },
{ on = [ "g", "-" ], run = "plugin vcs-files", desc = "Show Git file changes" },
] ]
+16 -4
View File
@@ -10,8 +10,20 @@ prepend_previewers = [
] ]
[opener] [opener]
open = [ pdf = [
{ run = 'xdg-open "$@"', desc = "Open" }, { run = 'xdg-open %s', desc = "Open" },
{ run = 'okular "$@"', desc = "Open in Okular" }, { run = 'okular %s', desc = "Open in Okular" },
{ run = 'evince "$@"', desc = "Open in Evince" }, { run = 'evince %s', desc = "Open in Evince" },
]
image = [
{ run = 'xdg-open %s', desc = "Open" },
{ run = 'set-theme %s1', desc = "Set desktop theme from this image", block = true },
]
[open]
prepend_rules = [
{ mime = "application/pdf", use = "pdf" },
{ mime = "image/png", use = "image" },
{ mime = "image/jpg", use = "image" },
{ mime = "image/jpeg", use = "image" },
] ]
+96
View File
@@ -0,0 +1,96 @@
# 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'
# Keybinds
typeset -g -A key
key[Delete]="${terminfo[kdch1]}"
[[ -n "${key[Delete]}" ]] && bindkey -- "${key[Delete]}" delete-char
export PATH=$PATH:~/projects/system/dotfiles/scripts/
VIRTUAL_ENV_DISABLE_PROMPT=true
# 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"
}
# Zoxide
eval "$(zoxide init --cmd j zsh)"
# SSH-agent
eval $(ssh-agent) &>/dev/null
# Theme
source ~/.config/zsh/theme.zsh
for file in ~/projects/system/dotfiles/system/zsh-completions/*
do
source $file
done
ZSH_AUTOSUGGEST_STRATEGY=(history completion)
source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
+19
View File
@@ -0,0 +1,19 @@
autoload -Uz add-zsh-hook vcs_info
setopt prompt_subst
add-zsh-hook precmd vcs_info
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}%~ %f"
local vcs_info='%F{14}${vcs_info_msg_0_}%f'
PS1="╭─${user_host}${current_dir}${vcs_info}${venv_prompt}
╰─%B${user_symbol}%b "
RPROMPT="%B${return_code}%b"
# Enable checking for (un)staged changes, enabling use of %u and %c
zstyle ':vcs_info:*' check-for-changes true
zstyle ':vcs_info:*' unstagedstr ' *'
zstyle ':vcs_info:*' stagedstr ' +'
zstyle ':vcs_info:git:*' formats '(%b%u%c)'
zstyle ':vcs_info:git:*' actionformats '(%b|%a%u%c)'
-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),
}
+47
View File
@@ -0,0 +1,47 @@
# Project Names for time tracking
Folder names equal to the repos, unless otherwise specified
## Store
`store/{project}`
## Auth
`auth/{project}`
## Actions
`actions/{project}`
## ConductorCalc
`ConductorCalc/{project}`
## Website
`website/{project}`
## ETH
Main folder: no `.wakatime-project`. Contains summaries, store, gitlab, semesters, timetables and projects folder
### Projects
`eth-projects/{project}`
#### EYE-TAP
`eye-tap/{project}`
#### BeatSketch
`beatsketch/{project}`
### Gitlab
`eth-gitlab/{project}`
### Semesters
**Folder names changed to `semX`, where `X` is the number
`eth-{project}`
In each semester folder optionally add the following to differentiate between subjects
`eth-semX/{project}`
## Other projects
To track time in a mono-repo, add `.wakatime-project` to the root of the project with
`[project-name]/{project}`, replacing
+26
View File
@@ -0,0 +1,26 @@
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
ttf-firacode-nerd
+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
+20
View File
@@ -0,0 +1,20 @@
#!/bin/bash
set -e
origin=$(git remote get-url origin)
if [[ $(echo "$origin" | awk -e '/https/') != "" ]]; then
git_url="git@$(echo "$origin" | cut -d "/" -f 3):/$(echo "$origin" | cut -d "/" -f 4-)"
else
git_url="https://$(echo "$origin" | cut -d "@" -f 2 | cut -d ":" -f 1)/$(echo "$origin" | cut -d ":" -f 2 | cut -d "/" -f 2-)"
fi
git_branches=$(git branch | grep '*' | tr -d ' *')
git remote remove origin
git remote add origin "$git_url"
git fetch
echo "New git url $git_url, updating branches"
for branch in $git_branches; do
git checkout "$branch"
git branch --set-upstream-to=origin/$branch "$branch"
done
+4
View File
@@ -0,0 +1,4 @@
#!/bin/sh
cd "$(dirname "$0")/.."
./setup.sh $(readlink --canonicalize $1)
+5 -1
View File
@@ -10,4 +10,8 @@ fi
sleep 1 sleep 1
hyprctl reload hyprctl reload
echo "Switched to docked mode" if [ $is_docked == "y" ]; then
echo "Enabled docked mode"
else
echo "Disabled docked mode"
fi
Executable
+15
View File
@@ -0,0 +1,15 @@
#!/bin/bash
if [[ $1 == "d" || $1 == "down" ]]; then
nmcli con down wg0
elif [[ $1 == "u" || $1 == "up" ]]; then
nmcli con up wg0
elif [[ $1 == "import" ]]; then
nmcli connection add type wireguard file /etc/wireguard/wg0.conf
else
if [[ $(nmcli con show --active | grep wg0 | grep wireguard) == "" ]]; then
nmcli con up wg0
else
nmcli con down wg0
fi
fi
+39 -17
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,51 @@ if ! [[ -f ~/.config/janishutz/platform ]]; then
echo "n" >~/.config/janishutz/docked echo "n" >~/.config/janishutz/docked
fi fi
confirmation="" # ┌ ┐
read -p "Also install the system-wide environment file? (y/N) " confirmation # │ System config file │
if [[ "$confirmation" == "y" ]]; then # └ ┘
# (currently only env)
if [[ "$2" == "sys" ]]; 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 --type scheme-smart $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 $(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 compilerdesign 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
+11
View File
@@ -0,0 +1,11 @@
[Unit]
Description=Powertop tunings
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/powertop --auto-tune
ExecStartPost=/bin/sh -c 'for f in $(find /sys/bus/usb/drivers/usbhid -regex '.*\/[0-9:.-]+' -printf '%f\n' | cut -d ":" -f 1 | sort -u); do echo on >| "/sys/bus/usb/devices/$f/power/control"; done'
[Install]
WantedBy=multi-user.target sleep.target
@@ -0,0 +1,5 @@
#compdef _dev-containers dev-containers
function _dev-containers {
_arguments -C "1: :(base compilerdesign jupyter node php postgres python rust torch-rocm vue webserver rm help shell)" "*::arg:->args"
}