Compare commits

..

80 Commits

Author SHA1 Message Date
30488edaed [Fish] Fix latexdocs alias 2025-10-10 15:05:28 +02:00
8ed711d300 [Fish] Improve latex doc opening 2025-10-09 21:08:06 +02:00
a8043a9899 [Hyprland] Speed up animations even more 2025-10-09 11:02:51 +02:00
aa9ebaf22b [Astal] Battery widget: Show waiting 2025-10-09 09:33:21 +02:00
2314a17066 [Install] Add ntp 2025-10-06 13:11:34 +02:00
7051688fa5 [Clang] Formatter: Only merge empty functions 2025-10-05 12:13:56 +02:00
0f4f601a2d [Clang] Improve formatter config 2025-10-05 12:09:53 +02:00
f38e2ff94f [Clang] Improve formatter config 2025-10-05 11:58:55 +02:00
50c5cf945d [Clang] Improve formatter config 2025-10-05 08:38:26 +02:00
903da245ac [Termfilechooser] Fix 2025-10-04 08:53:07 +02:00
2d15296597 [Fish] Force pager into pager mode and not cat 2025-10-02 14:39:15 +02:00
3a619cbf92 [Hyprland] Add new keybind on laptop 2025-10-02 14:21:32 +02:00
530022ee59 [Hyprlock] Update clock 2025-10-02 08:39:03 +02:00
5c01a5f806 [LatexIndent] Fix path 2025-10-01 15:34:14 +02:00
b6f5ad9bcf [Install] Add man 2025-10-01 13:44:15 +02:00
92dc644ee2 [Fish] Add alias for gcc with error flags 2025-10-01 12:42:14 +02:00
ddc39f4928 [Setup] Fix indentconfig copying 2025-10-01 10:48:30 +02:00
a93d7494d3 [Install] Add sysstat package 2025-10-01 10:47:13 +02:00
706cff40b3 [Setup] Fix errors with startup 2025-09-30 14:03:26 +02:00
e35845099a [Hyprland] Update for new folder structure 2025-09-30 07:41:44 +02:00
c44ef61cf2 [Fish] Update for new folder structure 2025-09-30 07:41:14 +02:00
ef65f827a2 [Yazi] Update keymap for new structure 2025-09-29 11:48:29 +02:00
6b8f415703 [Eslint] Update rules 2025-09-28 17:08:48 +02:00
f7004d9f25 [All] Remove old files 2025-09-27 08:07:58 +02:00
58d5b6cf69 [Setup] Add reload to make sure config reload happens properly 2025-09-26 14:04:47 +02:00
c55f70b852 [Fish] Add alias for latex docs 2025-09-26 14:03:21 +02:00
97e02d81af [Clang] Fix config file 2025-09-25 16:42:26 +02:00
a545bb0066 [Clang] Fix incorrect config 2025-09-25 16:40:53 +02:00
35d51f80df [Clang] Finish up config 2025-09-25 15:57:39 +02:00
d638aa0434 [Clang] Fix setup script 2025-09-25 15:52:55 +02:00
258fc61669 [Clang] Add formatter config 2025-09-25 15:52:16 +02:00
6dc15047d4 [Eslint] Add sort-imports rule 2025-09-25 15:20:13 +02:00
0725763b95 [Hyprland] Configure gestures 2025-09-25 15:04:47 +02:00
29b8f188e9 [Yazi] Update keymap 2025-09-25 11:04:07 +02:00
959732ffd1 [Yazi] Update keymap 2025-09-23 15:19:36 +02:00
be3497de77 [Indent] Add more rules 2025-09-23 11:14:26 +02:00
17d83a53b7 [Hyprland] configure gestures 2025-09-23 11:12:53 +02:00
122f3ab070 [Hyprland] Add special workspace config 2025-09-22 16:17:22 +02:00
46a732e8f7 [Install] Add dep for latexindent 2025-09-22 13:44:53 +02:00
3373ae3b8c [Install] Add dep for latexindent 2025-09-22 13:37:50 +02:00
edd2db313c [Install] Add dep for latexindent 2025-09-22 13:36:37 +02:00
ecfd517a4a [Hyprland] Tweak animation duration 2025-09-22 13:01:13 +02:00
25419067d4 [Install] Add note on using nwg-look 2025-09-22 12:53:46 +02:00
36faff6b5f [Install] Add langgerman to install 2025-09-22 08:44:27 +02:00
ffe516175c [Eslint] Revert EOL decision 2025-09-20 08:12:20 +02:00
f58f22cadd [Install] Add german latex extras 2025-09-20 07:17:56 +02:00
7e9faff6d6 [Astal] Make brightness adjust only in 5% intervals 2025-09-18 07:52:41 +02:00
ffa25045e5 [zathura] Add poppler to install 2025-09-17 16:17:43 +02:00
66dcd82952 [Hyprland] Fix bind 2025-09-16 17:31:28 +02:00
40013a61d1 [Hyprland] Fix some binds 2025-09-16 17:30:37 +02:00
ee26c0c5c2 [Hyprland] Fix errors 2025-09-16 13:03:25 +02:00
02a351768f [Fish] Add pager alias 2025-09-16 12:59:20 +02:00
9539f09e83 [Install] Add pager 2025-09-16 12:59:20 +02:00
25a78f126e [Astal] Add battery low notification 2025-09-15 14:42:05 +02:00
e0c339785d [Eslint] Update eol-last 2025-09-15 10:32:59 +02:00
e6f57831b1 [Eslint] Enforce newline 2025-09-15 10:27:26 +02:00
4e323d932f [Hyprland] Update binds 2025-09-15 09:20:29 +02:00
64d8ca7ab4 [Install] Add eslint_d 2025-09-14 07:29:12 +02:00
7de17aaeb7 [Yazi] Update keymaps for ETH folders 2025-09-13 17:24:37 +02:00
4f0c6a45cf [Install] Add http-server 2025-09-13 08:29:42 +02:00
a2dbdd78d3 [Setup] Don't do autologin (will make optional) 2025-09-13 08:22:11 +02:00
e4a76c494c [Greetd] Add auto-unlock of keyring 2025-09-12 17:26:53 +02:00
1ee3f01883 [Setup] Add note 2025-09-12 13:12:13 +02:00
a89ed00a17 [Greetd] Add autologin 2025-09-12 12:26:47 +02:00
64e671119d [Hyprland] Add dimming around rofi layer 2025-09-12 11:54:55 +02:00
7b7955ac29 [Build] Run config build 2025-09-12 11:52:00 +02:00
823a8d8fbc [Setup] Make it quicker for small changes 2025-09-12 11:49:34 +02:00
088562cd53 [System] Remove mkinitcpio config 2025-09-12 11:49:26 +02:00
e9b8c35b52 [Scripts] Rename 2025-09-12 11:42:53 +02:00
5a1811979e [Rofi] Fix positioning 2025-09-12 11:41:21 +02:00
274890281c [Install] Add ripgrep 2025-09-12 10:40:46 +02:00
0606ec06f5 [Hyprland] Add new rules 2025-09-12 10:40:11 +02:00
f22f8da68c [Install] Add git-credential-manager 2025-09-12 10:19:00 +02:00
409078edf9 [Install] Add ruby 2025-09-12 10:15:18 +02:00
2840c9aa70 [Fish] Add fish_variables 2025-09-12 10:13:22 +02:00
f4aedf7b5e [Install] Fix packages 2025-09-12 10:10:58 +02:00
f51cc0049a [Fish] Disable greeting 2025-09-12 10:10:48 +02:00
c01529a599 [Fish] Remove autojump from config 2025-09-12 09:57:40 +02:00
121f02c785 [Yazi] Fix keymap overlap 2025-09-12 09:57:33 +02:00
f6cd98e458 [Install] Add more utilities 2025-09-12 09:57:25 +02:00
46 changed files with 646 additions and 2982 deletions

View File

@@ -5,6 +5,8 @@
Collection of dotfiles for my personal Hyprland setup, running on Arch Linux. Includes a setup and install script (that one is not complete yet though). For my neovim config, see [here](https://git.janishutz.com/janishutz/nvim) Collection of dotfiles for my personal Hyprland setup, running on Arch Linux. Includes a setup and install script (that one is not complete yet though). For my neovim config, see [here](https://git.janishutz.com/janishutz/nvim)
![screenshot of desktop with 2 screens](./assets/screenshot.png)
## Features ## Features
- Astal4 based Status Bar and Quick Actions menu - Astal4 based Status Bar and Quick Actions menu
- System info - System info

BIN
assets/screenshot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

View File

@@ -41,10 +41,10 @@ export const BatteryBox = () => {
); );
}; };
const MINUTE = 60;
const HOUR = MINUTE * 60;
const toTime = (time: number) => { const toTime = (time: number) => {
const MINUTE = 60; if (!time) return "Waiting on BIOS"
const HOUR = MINUTE * 60;
if (time > 24 * HOUR) return "24h+"; if (time > 24 * HOUR) return "24h+";
const hours = Math.round(time / HOUR); const hours = Math.round(time / HOUR);

View File

@@ -16,7 +16,7 @@ const BrightnessModule = () => {
hexpand hexpand
max={1} max={1}
min={0.01} min={0.01}
step={0.01} step={0.05}
vexpand vexpand
onChangeValue={self => setBrightness(self.value)} onChangeValue={self => setBrightness(self.value)}
></slider> ></slider>

View File

@@ -1,4 +1,5 @@
import { bind } from "astal"; import { bind } from "astal";
import { execAsync } from "astal";
import AstalBattery from "gi://AstalBattery"; import AstalBattery from "gi://AstalBattery";
import AstalBluetooth from "gi://AstalBluetooth"; import AstalBluetooth from "gi://AstalBluetooth";
import AstalNetwork from "gi://AstalNetwork"; import AstalNetwork from "gi://AstalNetwork";
@@ -120,6 +121,8 @@ const BluetoothWidget = () => {
); );
}; };
let hasSentNotification = false;
const BatteryWidget = () => { const BatteryWidget = () => {
const battery = AstalBattery.get_default(); const battery = AstalBattery.get_default();
if (battery.get_is_present()) { if (battery.get_is_present()) {
@@ -127,7 +130,14 @@ const BatteryWidget = () => {
<image <image
iconName={bind(battery, "batteryIconName").as(icon => icon)} iconName={bind(battery, "batteryIconName").as(icon => icon)}
cssClasses={["quick-view-symbol"]} cssClasses={["quick-view-symbol"]}
tooltipText={bind(battery, 'percentage').as(p => `Battery Level: ${Math.round(p * 100)}%`)} tooltipText={bind(battery, 'percentage').as(p => {
const level = Math.round(p * 100)
if ( level < 20 && !hasSentNotification ) {
hasSentNotification = true;
execAsync( 'bash -c "notify-send \'Battery level below 20%\'"' );
}
return `Battery Level: ${level}%`
})}
></image> ></image>
); );
} else { } else {

View File

@@ -1,5 +1,5 @@
$fg-color: #E6E6E6; $fg-color: #C8DCFF;
$bg-color: #141414; $bg-color: #0A0A0F;
$accent-color: #591641; $accent-color: #591641;
$accent-color-2: #97103A; $accent-color-2: #97103A;
$shadow-color: rgba(40, 40, 40, 0.3); $shadow-color: rgba(0, 0, 2, 0.3);

View File

@@ -6,7 +6,7 @@ alias c='clear'
alias zs='zathura-sandbox' alias zs='zathura-sandbox'
alias z='zathura' alias z='zathura'
alias bt='bluetui' alias bt='bluetui'
alias vicfg='nvim ~/projects/active/nvim/' alias vicfg='nvim ~/projects/nvim/'
alias fm='thunar .' alias fm='thunar .'
alias gl='git ls-files --others --exclude-standard' alias gl='git ls-files --others --exclude-standard'
alias gm='gti ls-files -m' alias gm='gti ls-files -m'
@@ -14,18 +14,21 @@ alias gpu='git push'
alias gp='git pull' alias gp='git pull'
alias gc='git commit -a -m' alias gc='git commit -a -m'
alias ga='git add ./*' alias ga='git add ./*'
alias cfh='nvim ~/projects/active/dotfiles/config/hypr/' alias cfh='nvim ~/projects/dotfiles/config/hypr/'
alias cfn='nvim ~/projects/active/nvim/' alias cfn='nvim ~/projects/nvim/'
alias cff='nvim ~/projects/active/dotfiles/config/fish/' alias cff='nvim ~/projects/dotfiles/config/fish/'
alias cfa='nvim ~/projects/active/dotfiles/config/astal/' alias cfa='nvim ~/projects/dotfiles/config/astal/'
alias cf='nvim ~/projects/active/dotfiles/' alias cf='nvim ~/projects/dotfiles/'
alias g='lazygit' alias g='lazygit'
alias open-webui='sudo systemctl start docker && sudo docker start -i open-webui' alias open-webui='sudo systemctl start docker && sudo docker start -i open-webui'
alias ai='ollama serve' alias ai='ollama serve'
alias ff='fastfetch' 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'
# Add scripts in ~/projects/active/dotfiles/general/scripts/ to path # Add scripts in ~/projects/dotfiles/scripts/ to path
fish_add_path -P ~/projects/active/dotfiles/scripts/ fish_add_path -P ~/projects/dotfiles/scripts/
function y function y
set tmp (mktemp -t "yazi-cwd.XXXXXX") set tmp (mktemp -t "yazi-cwd.XXXXXX")
@@ -37,7 +40,6 @@ function y
end end
zoxide init --cmd j fish | source zoxide init --cmd j fish | source
# [ -f /usr/share/autojump/autojump.fish ]; and source /usr/share/autojump/autojump.fish
if status is-interactive if status is-interactive
function fish_prompt function fish_prompt
@@ -125,3 +127,5 @@ end
end end
set -g fish_greeting ""

33
config/fish/fish_variables Executable file
View File

@@ -0,0 +1,33 @@
# This file contains fish universal variable definitions.
# VERSION: 3.0
SETUVAR __fish_initialized:3800
SETUVAR fish_color_autosuggestion:555\x1ebrblack
SETUVAR fish_color_cancel:\x2dr
SETUVAR fish_color_command:blue
SETUVAR fish_color_comment:red
SETUVAR fish_color_cwd:green
SETUVAR fish_color_cwd_root:red
SETUVAR fish_color_end:green
SETUVAR fish_color_error:brred
SETUVAR fish_color_escape:brcyan
SETUVAR fish_color_history_current:\x2d\x2dbold
SETUVAR fish_color_host:normal
SETUVAR fish_color_host_remote:yellow
SETUVAR fish_color_normal:normal
SETUVAR fish_color_operator:brcyan
SETUVAR fish_color_param:cyan
SETUVAR fish_color_quote:yellow
SETUVAR fish_color_redirection:cyan\x1e\x2d\x2dbold
SETUVAR fish_color_search_match:white\x1e\x2d\x2dbackground\x3dbrblack
SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
SETUVAR fish_color_status:red
SETUVAR fish_color_user:brgreen
SETUVAR fish_color_valid_path:\x2d\x2dunderline
SETUVAR fish_greeting:\x1d
SETUVAR fish_key_bindings:fish_default_key_bindings
SETUVAR fish_pager_color_completion:normal
SETUVAR fish_pager_color_description:B3A06D\x1eyellow\x1e\x2di
SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
SETUVAR fish_pager_color_selected_background:\x2dr
SETUVAR fish_user_paths:/usr/lib/python3\x2e11/site\x2dpackages\x1e/usr/lib/python3\x2e11\x1e/usr/lib/python3\x2e11/site\x2dpackages/\x1e/home/janis/\x2elocal/lib/python3\x2e11/site\x2dpackages/\x1e/home/janis/\x2elocal/lib/python3\x2e11/

View File

@@ -81,14 +81,6 @@ bind = $mainMod, escape, exec, wlogout
# ──────────────────────────────────────────────────────────────────── # ────────────────────────────────────────────────────────────────────
# ┌ ┐
# │ Move focus with mainMod + arrow keys │
# └ ┘
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
# ┌ ┐ # ┌ ┐
# │ Same with vim-motions │ # │ Same with vim-motions │
# └ ┘ # └ ┘
@@ -136,6 +128,12 @@ bind = $mainMod SHIFT, j, movetoworkspace, e-1
bind = $mainMod SHIFT, k, movetoworkspace, e+1 bind = $mainMod SHIFT, k, movetoworkspace, e+1
# ┌ ┐
# │ Special workspace │
# └ ┘
bind = $mainMod SHIFT, M, movetoworkspace, special
bind = $mainMod, M, togglespecialworkspace
# ┌ ┐ # ┌ ┐
# │ Scroll through existing workspaces with │ # │ Scroll through existing workspaces with │
# │ mainMod + scroll │ # │ mainMod + scroll │
@@ -144,13 +142,6 @@ bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1 bind = $mainMod, mouse_up, workspace, e-1
# ┌ ┐
# │ Tile window to a part of the screen │
# └ ┘
# bind = $mainMod CTRL, left, movewindow, left
# bind = $mainMod CTRL, right, movewindow, right
# ┌ ┐ # ┌ ┐
# │ move to next window / previous window with │ # │ move to next window / previous window with │
# │ ALT + Tab / SHIFT + ALT + Tab │ # │ ALT + Tab / SHIFT + ALT + Tab │
@@ -160,12 +151,9 @@ bind = ALT, tab, focusurgentorlast
# ┌ ┐ # ┌ ┐
# │ Master layout commands │ # │ Dwindle layout commands │
# └ ┘ # └ ┘
bind = $mainMod CTRL, M, layoutmsg, swapwithmaster bind = $mainMod CTRL, M, layoutmsg, swapsplit
bind = $mainMod SHIFT, A, layoutmsg, addmaster
bind = $mainMod SHIFT CTRL, right, layoutmsg, orientationnext
bind = $mainMod SHIFT CTRL, left, layoutmsg, orientationprev
# ┌ ┐ # ┌ ┐
@@ -175,12 +163,39 @@ bind = $mainMod SHIFT CTRL, left, layoutmsg, orientationprev
bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow bindm = $mainMod, mouse:273, resizewindow
# ┌ ┐ # ┌ ┐
# │ Resize window with keybinds (change split) │ # │ Resize window with keybinds (change split) │
# └ ┘ # └ ┘
bind = $mainMod CTRL ALT, H, splitratio, -0.01 bind = $mainMod ALT, T, submap, split
bind = $mainMod CTRL ALT, L, splitratio, +0.01
# Submap for split
submap = split
binde = , H, splitratio, -0.01
binde = , L, splitratio, +0.01
# Reset bind
bind = , escape, submap, reset
submap = reset
# ┌ ┐
# │ Truly resize window with keybind (submap) │
# └ ┘
bind = $mainMod ALT, R, submap, resize
# Submap for resize
submap = resize
binde = , L, resizeactive, 10 0
binde = , H, resizeactive, -10 0
binde = , K, resizeactive, 0 -10
binde = , J, resizeactive, 0 10
# Reset bind
bind = , escape, submap, reset
submap = reset
# ┌ ┐ # ┌ ┐
# │ Freeze │ # │ Freeze │
@@ -208,3 +223,17 @@ bind = ,code:233, exec, light -A 5
# └ ┘ # └ ┘
bind = $mainMod CTRL, D, exec, hyprctl keyword monitor HDMI-A-1, 1280x720@60, 1920x0, 1, mirror, DP-1 && notify-send 'Set FPV goggles to mirror main screen' --app-name="Hyprctl" bind = $mainMod CTRL, D, exec, hyprctl keyword monitor HDMI-A-1, 1280x720@60, 1920x0, 1, mirror, DP-1 && notify-send 'Set FPV goggles to mirror main screen' --app-name="Hyprctl"
bind = $mainMod CTRL, E, exec, hyprctl keyword monitor HDMI-A-1, 1280x720@60, 3840x0, 1 && notify-send 'Set to expand FPV goggles' --app-name="Hyprctl" bind = $mainMod CTRL, E, exec, hyprctl keyword monitor HDMI-A-1, 1280x720@60, 3840x0, 1 && notify-send 'Set to expand FPV goggles' --app-name="Hyprctl"
# ────────────────────────────────────────────────────────────────────
# ╭────────────────────────────────────────────────╮
# │ Funny windows user trolling binds │
# ╰────────────────────────────────────────────────╯
# ────────────────────────────────────────────────────────────────────
bind = CTRL ALT, Delete, exec, notify-send 'I am not Windows' 'Did ya really think that was gonna do anything? Only an eternally broken OS could need such a stupid keybind'
bind = ALT, F4, exec, notify-send 'I am not Windows' 'That just feels like a way too unergonomic keybind to be used for such a common action'
bind = $mainMod, left, exec, notify-send 'I am not Windows' 'This is no inefficient stacking manager. Tiling happens automatically'
bind = $mainMod, right, exec, notify-send 'I am not Windows' 'This is no inefficient stacking manager. Tiling happens automatically'
bind = $mainMod, up, exec, notify-send 'I am not Windows' 'This is no inefficient stacking manager. Tiling happens automatically'
bind = $mainMod, down, exec, notify-send 'I am not Windows' 'This is no inefficient stacking manager. Tiling happens automatically'

View File

@@ -13,6 +13,6 @@ general {
decoration { decoration {
shadow { shadow {
color = rgb(282828) color = rgb(000002)
} }
} }

View File

@@ -13,9 +13,9 @@ exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
exec-once = hypridle exec-once = hypridle
exec-once = nm-applet exec-once = nm-applet
exec-once = nextcloud --background exec-once = nextcloud --background
exec-once = sleep 2 && bash -c "ags run -d ~/projects/active/dotfiles/config/astal/ --gtk4 >> /tmp/runner-log 2>&1" exec-once = sleep 2 && bash -c "ags run -d ~/projects/dotfiles/config/astal/ --gtk4 >> /tmp/runner-log 2>&1"
# exec-once = sleep 2 && bash -c "ags run -d ~/projects/active/dotfiles/config/astal/ --gtk4" # exec-once = sleep 2 && bash -c "ags run -d ~/projects/active/dotfiles/config/astal/ --gtk4"
exec-once = bash -c "ags run -d ~/projects/active/dotfiles/config/ags/notifications/ >> /tmp/notifier-log 2>&1" exec-once = bash -c "ags run -d ~/projects/dotfiles/config/ags/notifications/ >> /tmp/notifier-log 2>&1"
# exec-once = bash -c "ags run -d ~/projects/active/dotfiles/config/ags/notifications/" # exec-once = bash -c "ags run -d ~/projects/active/dotfiles/config/ags/notifications/"
# ── wlhist ────────────────────────────────────────────────────────── # ── wlhist ──────────────────────────────────────────────────────────
@@ -39,6 +39,7 @@ input {
natural_scroll = true natural_scroll = true
numlock_by_default = true numlock_by_default = true
repeat_delay = 400
follow_mouse = 2 follow_mouse = 2
mouse_refocus = true mouse_refocus = true
@@ -53,12 +54,32 @@ input {
sensitivity = 0 sensitivity = 0
} }
# ── Cursors ─────────────────────────────────────────────────────────
cursor {
no_warps = false
inactive_timeout = 5
}
# ── Bind config ─────────────────────────────────────────────────────
binds {
workspace_back_and_forth = true
}
# ── Gestures ────────────────────────────────────────────────────────
gestures { gestures {
workspace_swipe_distance = 200 workspace_swipe_distance = 200
workspace_swipe_cancel_ratio = 0.3 workspace_swipe_cancel_ratio = 0.3
workspace_swipe_forever = true workspace_swipe_forever = true
workspace_swipe_direction_lock = false
} }
gesture = 3, horizontal, workspace,
gesture = 3, down, close
gesture = 3, up, fullscreen
# ──────────────────────────────────────────────────────────────────── # ────────────────────────────────────────────────────────────────────
# ╭────────────────────────────────────────────────╮ # ╭────────────────────────────────────────────────╮
@@ -74,6 +95,12 @@ general {
no_border_on_floating = false no_border_on_floating = false
} }
# ────────────────────────────────────────────────────────────────────
# ╭────────────────────────────────────────────────╮
# │ Style │
# ╰────────────────────────────────────────────────╯
# ────────────────────────────────────────────────────────────────────
decoration { decoration {
inactive_opacity = 1 inactive_opacity = 1
rounding = 10 rounding = 10
@@ -99,17 +126,19 @@ animations {
bezier = myBezier, 0.05, 0.9, 0.1, 1.05 bezier = myBezier, 0.05, 0.9, 0.1, 1.05
animation = windows, 1, 7, myBezier animation = windows, 1, 4, myBezier
animation = windowsOut, 1, 7, default, popin 80% animation = windowsOut, 1, 6, default, popin 80%
animation = border, 1, 10, default animation = border, 1, 8, default
animation = fade, 1, 7, default animation = fade, 1, 3, default
animation = workspaces, 1, 6, default animation = workspaces, 1, 2, default
animation = specialWorkspaceIn, 1, 2, default, fade
animation = specialWorkspaceOut, 1, 2, default, fade
} }
misc { misc {
disable_hyprland_logo = true disable_hyprland_logo = true
disable_splash_rendering = false disable_splash_rendering = false
vrr = 2 vrr = 3
allow_session_lock_restore = true allow_session_lock_restore = true
} }
@@ -118,9 +147,3 @@ dwindle {
force_split = 2 force_split = 2
preserve_split = true preserve_split = true
} }
cursor {
no_warps = false
inactive_timeout = 60
}

View File

@@ -19,10 +19,6 @@ $mainMod = SUPER
# │ WINDOW RULES │ # │ WINDOW RULES │
# ╰────────────────────────────────────────────────╯ # ╰────────────────────────────────────────────────╯
# ──────────────────────────────────────────────────────────────────── # ────────────────────────────────────────────────────────────────────
windowrule = float, title:.*(rofi).*
windowrule = animation popin, title:.*(rofi).*
windowrule = center, title:(rofi)(.*)
windowrule = move 1450 50, title:^(.*)(Power menu)$ windowrule = move 1450 50, title:^(.*)(Power menu)$
windowrule = workspace 2, class:evince windowrule = workspace 2, class:evince
windowrule = workspace 2, title:.*(Okular).* windowrule = workspace 2, title:.*(Okular).*
@@ -119,3 +115,9 @@ windowrule = idleinhibit focus, class:vlc
windowrule = idleinhibit focus, class:supertuxkart windowrule = idleinhibit focus, class:supertuxkart
windowrule = idleinhibit fullscreen, title:^(.*)(Discord)(.*)$ windowrule = idleinhibit fullscreen, title:^(.*)(Discord)(.*)$
windowrule = idleinhibit fullscreen, title:^(.*)(~)(.*)$ windowrule = idleinhibit fullscreen, title:^(.*)(~)(.*)$
# ┌ ┐
# │ Layer rules │
# └ ┘
layerrule = dimaround, ^(rofi)

View File

@@ -22,9 +22,6 @@ monitor=eDP-1, 2880x1800@60, 0x0, 1.5
monitor=,highres highrr, auto, 1 monitor=,highres highrr, auto, 1
# exec = swaybg -m fill -i /home/janis/Pictures/arch-bg.png
source=./hyprland/binds.conf source=./hyprland/binds.conf
source=./hyprland/general.conf source=./hyprland/general.conf
source=./hyprland/windowrules.conf source=./hyprland/windowrules.conf
@@ -35,12 +32,11 @@ source=./hyprland/windowrules.conf
exec = hyprctl setcursor oreo_spark_blue_cursors 36 exec = hyprctl setcursor oreo_spark_blue_cursors 36
env = HYPRCURSOR_THEME, Oreo_spark_blue_cursor env = HYPRCURSOR_THEME, Oreo_spark_blue_cursor
env = X_CURSOR_THEME, Oreo_spark_blue_cursor env = X_CURSOR_THEME, Oreo_spark_blue_cursor
env = XCURSOR_SIZE,24 env = XCURSOR_SIZE, 24
env = ELECTRON_ENABLE_HIGHDPI_SUPPORT, 1 env = ELECTRON_ENABLE_HIGHDPI_SUPPORT, 1
env = XDG_SESSION_TYPE, wayland env = XDG_SESSION_TYPE, wayland
env = QT_QPA_PLATFORM,wayland env = QT_QPA_PLATFORM, wayland
# env = QT_QPA_PLATFORM_THEME,qt6ct env = ELECTRON_OZONE_PLATFORM_HINT, wayland
env = ELECTRON_OZONE_PLATFORM_HINT,wayland
env = GDK_SCALE,2 env = GDK_SCALE,2
exec-once = hyprpm reload -nn exec-once = hyprpm reload -nn
@@ -66,6 +62,7 @@ bind = $mainMod CTRL, E, exec, hyprctl keyword monitor HDMI-A-1, 1920x1080@60, 1
# ── Internal display controls ─────────────────────────────────────── # ── Internal display controls ───────────────────────────────────────
bind = $mainMod ALT, E, exec, hyprctl keyword monitor eDP-1, 2880x1800@60, 0x0, 1.5 && cpupower-gui -b && notify-send 'Set to battery optimized settings' bind = $mainMod ALT, E, exec, hyprctl keyword monitor eDP-1, 2880x1800@60, 0x0, 1.5 && cpupower-gui -b && notify-send 'Set to battery optimized settings'
bind = $mainMod ALT, B, exec, hyprctl keyword monitor eDP-1, 2880x1800@120, 0x0, 1.5 && cpupower-gui -b && notify-send 'Set to balanced performance settings'
bind = $mainMod ALT, P, exec, hyprctl keyword monitor eDP-1, 2880x1800@120, 0x0, 1.5 && cpupower-gui -p && notify-send 'Set to performance optimized settings' bind = $mainMod ALT, P, exec, hyprctl keyword monitor eDP-1, 2880x1800@120, 0x0, 1.5 && cpupower-gui -p && notify-send 'Set to performance optimized settings'
# ── Using docked ──────────────────────────────────────────────────── # ── Using docked ────────────────────────────────────────────────────

View File

@@ -45,7 +45,7 @@ label {
monitor = monitor =
text = <b>$TIME</b> text = <b>$TIME</b>
color = color =
font_size = 100 font_size = 150
font_family = Comfortaa font_family = Comfortaa
position = 0, 80 position = 0, 80

File diff suppressed because it is too large Load Diff

View File

@@ -1,2 +0,0 @@
paths:
- /home/janis/projects/active/dotfiles/config/lint/latexfmt.yaml

276
config/lint/clang-format Normal file
View File

@@ -0,0 +1,276 @@
# ─────────────────────────────────────────────────────────────────────
# ╭─────────────────────────────────────────────────╮
# │ clang-format config │
# ╰─────────────────────────────────────────────────╯
# ─────────────────────────────────────────────────────────────────────
BasedOnStyle: LLVM
AccessModifierOffset: -2
AlignAfterOpenBracket: BlockIndent
AlignArrayOfStructures: Left
AlignConsecutiveAssignments:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionPointers: false
PadOperators: true
AlignConsecutiveBitFields:
Enabled: true
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionPointers: false
PadOperators: false
AlignConsecutiveDeclarations:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionPointers: false
PadOperators: false
AlignConsecutiveMacros:
Enabled: true
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionPointers: false
PadOperators: false
AlignConsecutiveShortCaseStatements:
Enabled: true
AcrossEmptyLines: false
AcrossComments: false
AlignCaseArrows: false
AlignCaseColons: false
AlignConsecutiveTableGenBreakingDAGArgColons:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionPointers: false
PadOperators: false
AlignConsecutiveTableGenCondOperatorColons:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionPointers: false
PadOperators: false
AlignConsecutiveTableGenDefinitionColons:
Enabled: false
AcrossEmptyLines: false
AcrossComments: false
AlignCompound: false
AlignFunctionPointers: false
PadOperators: false
AlignEscapedNewlines: Right
AlignOperands: Align
AlignTrailingComments:
Kind: Always
OverEmptyLines: 0
AllowAllArgumentsOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowBreakBeforeNoexceptSpecifier: Never
AllowShortBlocksOnASingleLine: Never
AllowShortCaseExpressionOnASingleLine: true
AllowShortCaseLabelsOnASingleLine: false
AllowShortCompoundRequirementOnASingleLine: true
AllowShortEnumsOnASingleLine: true
AllowShortFunctionsOnASingleLine: Empty
AllowShortIfStatementsOnASingleLine: Never
AllowShortLambdasOnASingleLine: All
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AttributeMacros:
- __capability
BinPackArguments: false
BinPackParameters: false
BitFieldColonSpacing: Both
BraceWrapping:
AfterCaseLabel: false
AfterClass: false
AfterControlStatement: Never
AfterEnum: false
AfterFunction: false
AfterNamespace: false
AfterObjCDeclaration: false
AfterStruct: true
AfterUnion: false
AfterExternBlock: false
BeforeCatch: false
BeforeElse: false
BeforeLambdaBody: false
BeforeWhile: false
IndentBraces: false
SplitEmptyFunction: true
SplitEmptyRecord: true
SplitEmptyNamespace: true
BreakAdjacentStringLiterals: true
BreakAfterAttributes: Always
BreakAfterJavaFieldAnnotations: false
BreakAfterReturnType: None
BreakArrays: true
BreakBeforeBinaryOperators: All
BreakBeforeBraces: Attach
BreakBeforeConceptDeclarations: Always
BreakBeforeInlineASMColon: OnlyMultiline
BreakBeforeTernaryOperators: true
BreakConstructorInitializers: BeforeColon
BreakFunctionDefinitionParameters: false
BreakInheritanceList: BeforeColon
BreakStringLiterals: true
BreakTemplateDeclarations: MultiLine
ColumnLimit: 100
CommentPragmas: "^ IWYU pragma:"
CompactNamespaces: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DerivePointerAlignment: true
DisableFormat: false
EmptyLineAfterAccessModifier: Never
EmptyLineBeforeAccessModifier: Always
ExperimentalAutoDetectBinPacking: false
FixNamespaceComments: true
ForEachMacros:
- foreach
- Q_FOREACH
- BOOST_FOREACH
IfMacros:
- KJ_IF_MAYBE
IncludeBlocks: Preserve
IncludeCategories:
- Regex: ^"(llvm|llvm-c|clang|clang-c)/
Priority: 2
SortPriority: 0
CaseSensitive: false
- Regex: ^(<|"(gtest|gmock|isl|json)/)
Priority: 3
SortPriority: 0
CaseSensitive: false
- Regex: .*
Priority: 1
SortPriority: 0
CaseSensitive: false
IncludeIsMainRegex: (Test)?$
IncludeIsMainSourceRegex: ""
IndentAccessModifiers: true
IndentCaseBlocks: true
IndentCaseLabels: true
IndentExternBlock: AfterExternBlock
IndentGotoLabels: true
IndentPPDirectives: BeforeHash
IndentRequiresClause: true
IndentWidth: 4
IndentWrappedFunctionNames: true
InsertBraces: false
InsertNewlineAtEOF: false
InsertTrailingCommas: None
IntegerLiteralSeparator:
Binary: 0
BinaryMinDigits: 0
Decimal: 0
DecimalMinDigits: 0
Hex: 0
HexMinDigits: 0
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLines:
AtEndOfFile: false
AtStartOfBlock: true
AtStartOfFile: true
LambdaBodyIndentation: Signature
LineEnding: DeriveLF
MacroBlockBegin: ""
MacroBlockEnd: ""
MainIncludeChar: Quote
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBinPackProtocolList: Auto
ObjCBlockIndentWidth: 2
ObjCBreakBeforeNestedBlockParam: true
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
PPIndentWidth: -1
PackConstructorInitializers: BinPack
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 19
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakOpenParenthesis: 0
PenaltyBreakScopeResolution: 500
PenaltyBreakString: 1000
PenaltyBreakTemplateDeclaration: 10
PenaltyExcessCharacter: 1000000
PenaltyIndentedWhitespace: 0
PenaltyReturnTypeOnItsOwnLine: 60
PointerAlignment: Right
QualifierAlignment: Left
ReferenceAlignment: Pointer
ReflowComments: true
RemoveBracesLLVM: true
RemoveParentheses: MultipleParentheses
RemoveSemicolon: false
RequiresClausePosition: OwnLine
RequiresExpressionIndentation: OuterScope
SeparateDefinitionBlocks: Always
ShortNamespaceLines: 1
SkipMacroDefinitionBody: false
SortIncludes: CaseSensitive
SortJavaStaticImport: Before
SortUsingDeclarations: LexicographicNumeric
SpaceAfterCStyleCast: true
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: true
SpaceAroundPointerQualifiers: Default
SpaceBeforeAssignmentOperators: true
SpaceBeforeCaseColon: false
SpaceBeforeCpp11BracedList: true
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeJsonColon: false
SpaceBeforeParens: ControlStatements
SpaceBeforeParensOptions:
AfterControlStatements: true
AfterForeachMacros: true
AfterFunctionDeclarationName: true
AfterFunctionDefinitionName: true
AfterIfMacros: true
AfterOverloadedOperator: false
AfterPlacementOperator: true
AfterRequiresInClause: false
AfterRequiresInExpression: false
BeforeNonEmptyParentheses: false
SpaceBeforeRangeBasedForLoopColon: true
SpaceBeforeSquareBrackets: false
SpaceInEmptyBlock: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: Never
SpacesInContainerLiterals: true
SpacesInLineCommentPrefix:
Minimum: 1
Maximum: -1
SpacesInParens: Custom
SpacesInParensOptions:
ExceptDoubleParentheses: false
InConditionalStatements: true
InCStyleCasts: false
InEmptyParentheses: false
Other: true
SpacesInSquareBrackets: true
Standard: Latest
StatementAttributeLikeMacros:
- Q_EMIT
StatementMacros:
- Q_UNUSED
- QT_REQUIRE_VERSION
TabWidth: 4
TableGenBreakInsideDAGArg: DontBreak
UseTab: Never
VerilogBreakBetweenInstancePorts: true
WhitespaceSensitiveMacros:
- BOOST_PP_STRINGIZE
- CF_SWIFT_NAME
- NS_SWIFT_NAME
- PP_STRINGIZE
- STRINGIZE

View File

@@ -1,65 +0,0 @@
// @ts-check
import eslint from '@eslint/js';
import tseslint from 'typescript-eslint';
import stylistic from '@stylistic/eslint-plugin';
export default tseslint.config(
eslint.configs.recommended,
...tseslint.configs.recommended,
{
'plugins': {
'@stylistic/js': stylistic,
'@stylistic/ts': stylistic,
},
'rules': {
// Formatting
'@stylistic/js/array-bracket-newline': [ 'error', { 'multiline': true, 'minItems': 4 } ],
'@stylistic/js/array-bracket-spacing': [ 'error', 'always' ],
'@stylistic/js/array-element-newline': [ 'error', { 'multiline': true, 'minItems': 4 } ],
'@stylistic/js/arrow-parens': [ 'error', 'always' ],
'@stylistic/js/arrow-spacing': [ 'error', { 'before': true, 'after': true } ],
'@stylistic/js/block-spacing': [ 'error', 'always' ],
'@stylistic/js/brace-style': [ 'error', '1tbs' ],
'@stylistic/js/comma-spacing': [ 'error', { 'before': false, 'after': true } ],
'@stylistic/js/comma-style': [ 'error', 'last' ],
'@stylistic/js/dot-location': [ 'error', 'property' ],
'@stylistic/js/eol-last': [ 'error', 'always' ],
'@stylistic/js/function-call-spacing': [ 'error', 'never' ],
'@stylistic/js/implicit-arrow-linebreak': [ 'error', 'beside' ],
'@stylistic/js/indent': [ 'error', 4 ],
'@stylistic/js/key-spacing': [ 'error', { 'beforeColon': false, 'afterColon': true } ],
'@stylistic/js/keyword-spacing': [ 'error', { 'before': true, 'after': true } ],
'@stylistic/js/lines-between-class-members': [ 'error', 'always' ],
'@stylistic/js/new-parens': [ 'error', 'always' ],
'@stylistic/js/no-extra-parens': [ 'error', 'all' ],
'@stylistic/js/no-extra-semi': 'error',
'@stylistic/js/no-floating-decimal': 'error',
'@stylistic/js/no-mixed-operators': 'error',
'@stylistic/js/no-mixed-spaces-and-tabs': 'error',
'@stylistic/js/no-multi-spaces': 'error',
'@stylistic/js/no-trailing-spaces': 'error',
'@stylistic/js/no-whitespace-before-property': 'error',
'@stylistic/js/object-curly-newline': [ 'error', { 'multiline': true, 'minProperties': 3 } ],
'@stylistic/js/object-curly-spacing': [ 'error', 'always' ],
'@stylistic/js/one-var-declaration-per-line': 'error',
'@stylistic/js/quote-props': [ 'error', 'always' ],
'@stylistic/js/quotes': [ 'error', 'single' ],
'@stylistic/js/rest-spread-spacing': [ 'error', 'never' ],
'@stylistic/js/semi': [ 'error', 'always' ],
'@stylistic/js/semi-spacing': [ 'error', { 'before': false, 'after': true } ],
'@stylistic/js/semi-style': [ 'error', 'last' ],
'@stylistic/js/space-before-blocks': [ 'error', 'always' ],
'@stylistic/js/space-before-function-paren': [ 'error', 'always' ],
'@stylistic/js/space-in-parens': [ 'error', 'always' ],
'@stylistic/js/space-infix-ops': [ 'error', { 'int32Hint': false } ],
'@stylistic/js/space-unary-ops': 'error',
'@stylistic/js/spaced-comment': [ 'error', 'always' ],
'@stylistic/js/switch-colon-spacing': 'error',
'@stylistic/js/template-curly-spacing': [ 'error', 'always' ],
'@stylistic/js/wrap-iife': [ 'error', 'inside' ],
'@stylistic/js/wrap-regex': 'error',
'@stylistic/ts/type-annotation-spacing': 'error',
}
}
);

View File

@@ -1,9 +1,9 @@
import vue from 'eslint-plugin-vue';
import eslint from '@eslint/js'; import eslint from '@eslint/js';
import globals from 'globals'; import globals from 'globals';
import typescript from '@typescript-eslint/eslint-plugin';
import stylistic from '@stylistic/eslint-plugin'; import stylistic from '@stylistic/eslint-plugin';
import tseslint from 'typescript-eslint'; import tseslint from 'typescript-eslint';
import typescript from '@typescript-eslint/eslint-plugin';
import vue from 'eslint-plugin-vue';
const style = { const style = {
'plugins': { 'plugins': {
@@ -20,6 +20,21 @@ const style = {
'**/*.jsx' '**/*.jsx'
], ],
'rules': { 'rules': {
'sort-imports': [
'warn',
{
'ignoreCase': false,
'ignoreDeclarationSort': false,
'ignoreMemberSort': false,
'memberSyntaxSortOrder': [
'none',
'all',
'multiple',
'single'
],
'allowSeparatedGroups': false
}
],
// Formatting // Formatting
'@stylistic/array-bracket-newline': [ '@stylistic/array-bracket-newline': [
'error', 'error',
@@ -30,7 +45,12 @@ const style = {
], ],
'@stylistic/array-bracket-spacing': [ '@stylistic/array-bracket-spacing': [
'error', 'error',
'always' 'always',
{
'singleValue': true,
'arraysInArrays': true,
'objectsInArrays': true
}
], ],
'@stylistic/array-element-newline': [ '@stylistic/array-element-newline': [
'error', 'error',
@@ -83,7 +103,9 @@ const style = {
], ],
'@stylistic/function-paren-newline': [ '@stylistic/function-paren-newline': [
'error', 'error',
'multiline' {
'minItems': 3
}
], ],
'@stylistic/function-call-argument-newline': [ '@stylistic/function-call-argument-newline': [
'error', 'error',

View File

@@ -0,0 +1,2 @@
paths:
- /home/janis/projects/dotfiles/config/lint/latexfmt.yaml

View File

@@ -7,6 +7,7 @@ maxNumberOfBackups: 3
indentRules: indentRules:
recall: " " recall: " "
remarks: " " remarks: " "
remark: " "
guides: " " guides: " "
properties: " " properties: " "
restrictions: " " restrictions: " "

View File

@@ -1,13 +0,0 @@
/** Basic config file **/
configuration {
show-icons: true;
icon-theme: "Candy";
display-drun: "";
display-run: "🏃🏽‍♂️ ";
display-window: "🗔 ";
display-combi: "🔎 ";
dpi: 160;
}
@theme "style.rasi"

View File

@@ -1,7 +1,7 @@
* { * {
background: #141414; background: #0A0A0F;
background-selected: #1E1E1E; background-selected: #141419;
foreground: #E6E6E6; foreground: #C8DCFF;
accent: #591641; accent: #591641;
accent-two: #97103A; accent-two: #97103A;
// border-color: #2D2057; // border-color: #2D2057;
@@ -18,8 +18,8 @@
border: 1px; border: 1px;
border-radius: 10px; border-radius: 10px;
padding: 0; padding: 0;
location: west; location: center;
anchor: west; anchor: center;
margin: 0; margin: 0;
} }

View File

@@ -7,7 +7,7 @@ window {
font-family: monospace; font-family: monospace;
font-size: 14pt; font-size: 14pt;
color: #ffffff; /* text */ color: #ffffff; /* text */
background-color: rgba(20, 20, 20, 0.5); background-color: rgba(10, 10, 15, 0.5);
} }
button { button {
@@ -27,7 +27,7 @@ button:hover {
button:focus { button:focus {
background-color: rgb(151, 16, 58); background-color: rgb(151, 16, 58);
color: rgb(230, 230, 230); color: rgb(200, 220, 255);
} }
#lock { #lock {

View File

@@ -1,3 +1,11 @@
[filechooser] [filechooser]
cmd=yazi-wrapper.sh cmd=yazi-wrapper.sh
default_dir=$HOME default_dir=$HOME
; Uncomment to skip creating destination save files with instructions in them
; create_help_file=0
; Uncomment and edit the line below to change the terminal emulator command
; env=TERMCMD=foot
; Mode must be one of 'suggested', 'default', or 'last'.
open_mode=suggested
save_mode=suggested

View File

@@ -0,0 +1,2 @@
[preferred]
org.freedesktop.impl.portal.FileChooser=termfilechooser

View File

@@ -7,38 +7,36 @@ prepend_keymap = [
{ 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", "c", "c" ], run = "cd ~/.config", desc = "Go to ~/.config" },
{ on = [ "g", "a" ], run = "cd ~/.cache", desc = "Go to ~/.cache" }, { 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", "h" ], run = "cd ~/projects/active/dotfiles/config/hypr", desc = "Go to Hyprland config" }, { on = [ "g", "c", "c" ], run = "cd ~/.config", desc = "Go to ~/.config" },
{ on = [ "g", "c", "f" ], run = "cd ~/projects/active/dotfiles/config/fish", desc = "Go to Fish config" }, { on = [ "g", "c", "h" ], run = "cd ~/projects/dotfiles/config/hypr", desc = "Go to Hyprland config" },
{ on = [ "g", "c", "y" ], run = "cd ~/projects/active/dotfiles/config/yazi", desc = "Go to Yazi config" }, { on = [ "g", "c", "f" ], run = "cd ~/projects/dotfiles/config/fish", desc = "Go to Fish config" },
{ on = [ "g", "c", "a" ], run = "cd ~/projects/active/dotfiles/config/astal", desc = "Go to astal config" }, { on = [ "g", "c", "y" ], run = "cd ~/projects/dotfiles/config/yazi", desc = "Go to Yazi config" },
{ on = [ "g", "c", "l" ], run = "cd ~/projects/active/dotfiles/config/lint", desc = "Go to linter configs" }, { on = [ "g", "c", "a" ], run = "cd ~/projects/dotfiles/config/astal", desc = "Go to astal config" },
{ on = [ "g", "c", "k" ], run = "cd ~/projects/active/dotfiles/config/kitty", desc = "Go to kitty config" }, { on = [ "g", "c", "l" ], run = "cd ~/projects/dotfiles/config/lint", desc = "Go to linter configs" },
{ on = [ "g", "c", "r" ], run = "cd ~/projects/active/dotfiles/config/rofi", desc = "Go to rofi config" }, { on = [ "g", "c", "k" ], run = "cd ~/projects/dotfiles/config/kitty", desc = "Go to kitty config" },
{ on = [ "g", "c", "s" ], run = "cd ~/projects/active/dotfiles/scripts", desc = "Go to script" }, { on = [ "g", "c", "r" ], run = "cd ~/projects/dotfiles/config/rofi", desc = "Go to rofi config" },
{ on = [ "g", "c", "d" ], run = "cd ~/projects/active/dotfiles", desc = "Go to NeoVim config" }, { on = [ "g", "c", "s" ], run = "cd ~/projects/dotfiles/scripts", desc = "Go to script" },
{ on = [ "g", "c", "n" ], run = "cd ~/projects/active/nvim", desc = "Go to NeoVim config" }, { on = [ "g", "c", "d" ], run = "cd ~/projects/dotfiles", desc = "Go to Dotfiles folder" },
{ on = [ "g", "c", "n" ], run = "cd ~/projects/nvim", desc = "Go to NeoVim config" },
{ on = [ "g", "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", "c" ], run = "cd ~/projects/active/eth-gitlab/eth-code-expert/Semester2/", desc = "Go to ETH-Code-Expert" }, { on = [ "g", "e", "n" ], run = "cd ~/NextCloud/Documents/ETH/Semester3/", desc = "Go to ETH Nextcloud" },
{ on = [ "g", "e", "n" ], run = "cd ~/NextCloud/Documents/ETH/Semester2", desc = "Go to ETH Nextcloud" }, { on = [ "g", "e", "p" ], run = "cd ~/projects/eth/semester3/", desc = "Go to ETH git folder" },
{ on = [ "g", "e", "p" ], run = "cd ~/projects/active/eth/semester2/", desc = "Go to ETH notes folder" }, { on = [ "g", "e", "g" ], run = "cd ~/projects/eth/gitlab/spca2025-jahutz-hand-in/", desc = "Go to ETH Gitlab folder" },
{ on = [ "g", "e", "g" ], run = "cd ~/projects/active/eth-gitlab/pprog25-jahutz/", desc = "Go to ETH Gitlab folder" }, { on = [ "g", "e", "s" ], run = "cd ~/projects/eth/eth-summaries/semester3/", 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", "o" ], run = "cd /mnt/janis/Documents", desc = "Go to Documents" },
{ on = [ "g", "d" ], run = "cd ~/Downloads", desc = "Go to ~/Downloads" }, { on = [ "g", "d" ], run = "cd ~/Downloads", desc = "Go to ~/Downloads" },
{ on = [ "g", "p", "a" ], run = "cd ~/projects/active", desc = "Go to Active projects" }, { on = [ "g", "p" ], run = "cd ~/projects", desc = "Go to projects" },
{ on = [ "g", "p", "r" ], run = "cd ~/projects/archive", desc = "Go to Archive projects" },
{ on = [ "g", "p", "p" ], run = "cd ~/projects", desc = "Go to projects" },
{ on = [ "g", "t", "m" ], run = "cd /tmp", desc = "Go to /tmp" }, { 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", "t", "t" ], run = "cd ~/.local/share/Trash/", desc = "Go to TRASH" },
{ on = [ "g", "/" ], run = "cd /", desc = "Go to /" }, { on = [ "g", "/" ], run = "cd /", desc = "Go to /" },
{ on = [ "g", "m" ], run = "cd /run/media/$USER", desc = "Go to /run/media" }, { 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", "<Space>" ], run = "cd --interactive", desc = "Go to interactively" },
{ on = [ "g", "c" ], run = "plugin vcs-files", desc = "Show Git file changes" }, { on = [ "g", "-" ], run = "plugin vcs-files", desc = "Show Git file changes" },
] ]

View File

@@ -1,2 +1,2 @@
[flavor] [flavor]
use = "vscode-dark-modern" use = "tokyo-night"

View File

@@ -19,13 +19,13 @@
/* /*
* ── Foreground color, main interface text colour ───────────────────── * ── Foreground color, main interface text colour ─────────────────────
*/ */
@define-color fg #E6E6E6; @define-color fg #C8DCFF;
@define-color fg_rgba_07 rgba(230, 230, 230, 0.7); @define-color fg_rgba_07 rgba(200, 220, 255, 0.7);
@define-color fg_rgba_06 rgba(230, 230, 230, 0.6); @define-color fg_rgba_06 rgba(200, 220, 255, 0.6);
@define-color fg_rgba_05 rgba(230, 230, 230, 0.5); @define-color fg_rgba_05 rgba(200, 220, 255, 0.5);
@define-color fg_rgba_03 rgba(230, 230, 230, 0.3); @define-color fg_rgba_03 rgba(200, 220, 255, 0.3);
@define-color fg_rgba_02 rgba(230, 230, 230, 0.2); @define-color fg_rgba_02 rgba(200, 220, 255, 0.2);
@define-color fg_rgba_01 rgba(230, 230, 230, 0.1); @define-color fg_rgba_01 rgba(200, 220, 255, 0.1);
/* /*
* ── Foreground accent, usually brighter or darker than default ─────── * ── Foreground accent, usually brighter or darker than default ───────
@@ -51,14 +51,14 @@
/* /*
* ── Accent Gradient ────────────────────────────────────────────────── * ── Accent Gradient ──────────────────────────────────────────────────
*/ */
@define-color accent_gradient_1 #390E2A; @define-color accent_gradient_1 #481235;
@define-color accent_gradient_2 #2E0B21; @define-color accent_gradient_2 #41102F;
@define-color accent_gradient_3 #24091B; @define-color accent_gradient_3 #3A0E2B;
@define-color accent_gradient_4 #1D0715; @define-color accent_gradient_4 #350D26;
@define-color accent_gradient_5 #170611; @define-color accent_gradient_5 #2F0C23;
@define-color accent_gradient_inverse_1 #8B2266; @define-color accent_gradient_inverse_1 #6E1B50;
@define-color accent_gradient_inverse_2 #8B2266; @define-color accent_gradient_inverse_2 #6E1B50;
@define-color accent_gradient_inverse_3 #8B2266; @define-color accent_gradient_inverse_3 #6E1B50;
/* /*
* ── Secondary accent colour ────────────────────────────────────────── * ── Secondary accent colour ──────────────────────────────────────────
@@ -97,33 +97,33 @@
/* /*
* ── Background color, main interface background ────────────────────── * ── Background color, main interface background ──────────────────────
*/ */
@define-color bg #141414; @define-color bg #0A0A0F;
@define-color bg_rgba_07 rgba(20, 20, 20, 0.7); @define-color bg_rgba_07 rgba(10, 10, 15, 0.7);
@define-color bg_rgba_05 rgba(20, 20, 20, 0.5); @define-color bg_rgba_05 rgba(10, 10, 15, 0.5);
@define-color bg_rgba_03 rgba(20, 20, 20, 0.3); @define-color bg_rgba_03 rgba(10, 10, 15, 0.3);
@define-color bg_rgba_02 rgba(20, 20, 20, 0.2); @define-color bg_rgba_02 rgba(10, 10, 15, 0.2);
@define-color bg_rgba_015 rgba(20, 20, 20, 0.15); @define-color bg_rgba_015 rgba(10, 10, 15, 0.15);
@define-color bg_rgba_011 rgba(20, 20, 20, 0.11); @define-color bg_rgba_011 rgba(10, 10, 15, 0.11);
/* /*
* ── Accent background color ────────────────────────────────────────── * ── Accent background color ──────────────────────────────────────────
*/ */
@define-color bg_accent #1E1E1E; @define-color bg_accent #141419;
@define-color bg_accent_rgba_07 rgba(30, 30, 30, 0.7); @define-color bg_accent_rgba_07 rgba(20, 20, 25, 0.7);
@define-color bg_accent_rgba_06 rgba(30, 30, 30, 0.6); @define-color bg_accent_rgba_06 rgba(20, 20, 25, 0.6);
@define-color bg_accent_rgba_05 rgba(30, 30, 30, 0.5); @define-color bg_accent_rgba_05 rgba(20, 20, 25, 0.5);
@define-color bg_accent_rgba_04 rgba(30, 30, 30, 0.4); @define-color bg_accent_rgba_04 rgba(20, 20, 25, 0.4);
@define-color bg_accent_rgba_03 rgba(30, 30, 30, 0.3); @define-color bg_accent_rgba_03 rgba(20, 20, 25, 0.3);
@define-color bg_accent_rgba_02 rgba(30, 30, 30, 0.2); @define-color bg_accent_rgba_02 rgba(20, 20, 25, 0.2);
@define-color bg_accent_rgba_015 rgba(30, 30, 30, 0.15); @define-color bg_accent_rgba_015 rgba(20, 20, 25, 0.15);
@define-color bg_accent_rgba_01 rgba(30, 30, 30, 0.1); @define-color bg_accent_rgba_01 rgba(20, 20, 25, 0.1);
/* /*
* ── Tertiary background colour ─────────────────────────────────────── * ── Tertiary background colour ───────────────────────────────────────
*/ */
@define-color bg_tertiary #2D2D2D; @define-color bg_tertiary #000000;
@define-color bg_tertiary_rgba_05 rgba(45, 45, 45, 0.5); @define-color bg_tertiary_rgba_05 rgba(0, 0, 0, 0.5);
@define-color bg_tertiary_rgba_02 rgba(45, 45, 45, 0.2); @define-color bg_tertiary_rgba_02 rgba(0, 0, 0, 0.2);
/* /*
* ── Inactive background colour ─────────────────────────────────────── * ── Inactive background colour ───────────────────────────────────────
@@ -140,10 +140,10 @@
/* /*
* ── Shadow colours ─────────────────────────────────────────────────── * ── Shadow colours ───────────────────────────────────────────────────
*/ */
@define-color shadow #282828; @define-color shadow #000002;
@define-color shadow_rgba_07 rgba(40, 40, 40, 0.7); @define-color shadow_rgba_07 rgba(0, 0, 2, 0.7);
@define-color shadow_rgba_05 rgba(40, 40, 40, 0.5); @define-color shadow_rgba_05 rgba(0, 0, 2, 0.5);
@define-color shadow_rgba_03 rgba(40, 40, 40, 0.3); @define-color shadow_rgba_03 rgba(0, 0, 2, 0.3);
@define-color shadow_rgba_02 rgba(40, 40, 40, 0.2); @define-color shadow_rgba_02 rgba(0, 0, 2, 0.2);
@define-color shadow_rgba_015 rgba(40, 40, 40, 0.15); @define-color shadow_rgba_015 rgba(0, 0, 2, 0.15);
@define-color shadow_rgba_011 rgba(40, 40, 40, 0.11); @define-color shadow_rgba_011 rgba(0, 0, 2, 0.11);

37
install
View File

@@ -24,7 +24,7 @@ echo "
==> Installing Hyprland ==> Installing Hyprland
" "
sleep 2 sleep 2
yay -S --noconfirm --noremovemake hyprland hypridle hyprfreeze hyprlock aylurs-gtk-shell-git brightnessctl pulsemixer xdg-desktop-portal-hyprland cliphist grimblast wl-clipboard polkit-gnome swaybg polkit-kde-agent grim yay -S --noconfirm --noremovemake hyprland hypridle hyprfreeze hyprlock aylurs-gtk-shell brightnessctl pulsemixer xdg-desktop-portal-hyprland cliphist grimblast wl-clipboard polkit-gnome swaybg polkit-kde-agent grim rofi cpio sysstat
# Audio, drivers # Audio, drivers
echo " echo "
@@ -39,7 +39,7 @@ echo "
" "
sleep 2 sleep 2
yay -S --noconfirm --noremovemake fish fzf ouch zathura wget vimiv zoxide thunar yazi gnome-tweaks lxappearance gnome-keyring ffmpeg network-manager-applet cpupower-gui python-tkinter acpi python-pillow seahorse yay -S --noconfirm --noremovemake fish fzf ouch zathura zathura-pdf-poppler wget vimiv zoxide thunar yazi gnome-tweaks lxappearance gnome-keyring ffmpeg network-manager-applet cpupower-gui python-tkinter acpi python-pillow seahorse man man-pages ntp
# Set up yazi # Set up yazi
echo " echo "
@@ -55,21 +55,21 @@ echo "
==> Installing fonts... ==> Installing fonts...
" "
sleep 2 sleep 2
yay -S --noconfirm --noremovemake adobe-source-code-pro-fonts gnome-font-viewer gnome-characters ttf-fantasque-nerd ttf-jetbrains-mono-nerd ttf-fluentui-system-icons ttf-comfortaa yay -S --noconfirm --noremovemake adobe-source-code-pro-fonts gnome-font-viewer gnome-characters ttf-fantasque-nerd ttf-jetbrains-mono-nerd ttf-fluentui-system-icons ttf-comfortaa candy-icons
# Programming # Programming
echo " echo "
==> Installing coding tools... ==> Installing coding tools...
" "
sleep 2 sleep 2
yay -S --noconfirm --noremovemake docker vscodium kitty fish docker terminator bvi nodejs npm python-pip git-credential-manager-core-bin wine kate rustup cargo filezilla php jdk yay -S --noconfirm --noremovemake docker vscodium kitty fish docker terminator bvi nodejs npm python-pip git-credential-manager-bin wine kate rustup cargo filezilla php jdk ripgrep
# nvim # nvim
echo " echo "
==> Installing nvim... ==> Installing nvim...
" "
sleep 2 sleep 2
yay -S --noconfirm --noremovemake neovim lua lua-language-server tree-sitter texlab stylua luarocks jdtls perl julia pyright vscode-css-languageserver vscode-html-languageserver bash-language-server python-black proselint asmfmt typescript-language-server shfmt sass yay -S --noconfirm --noremovemake neovim lua lua-language-server tree-sitter tree-sitter-cli texlab stylua luarocks jdtls perl julia pyright vscode-css-languageserver vscode-html-languageserver bash-language-server python-black proselint asmfmt typescript-language-server shfmt sass ruby eslint_d nvimpager
sudo npm i -g @vue/typescript-plugin sudo npm i -g @vue/typescript-plugin
# Internet # Internet
@@ -84,21 +84,21 @@ echo "
==> Installing other utilities... ==> Installing other utilities...
" "
sleep 2 sleep 2
yay -S --noconfirm --noremovemake okular vlc nextcloud-client p7zip zip unzip gnome-keyring noto-fonts pavucontrol light fastfetch bashtop hugo uxplay upower gdu dig nwg-look serpl fcitx5 qalculate-gtk openconnect light blueman xdg-desktop-portal-termfilechooser-hunkyburrito-git lazygit yay -S --noconfirm --noremovemake okular vlc nextcloud-client p7zip zip unzip noto-fonts pavucontrol light fastfetch bashtop hugo uxplay upower gdu dig nwg-look serpl fcitx5 qalculate-gtk openconnect light blueman xdg-desktop-portal-termfilechooser-hunkyburrito-git lazygit tldr
# LaTeX # LaTeX
echo " echo "
==> Installing LaTeX... ==> Installing LaTeX...
" "
sleep 2 sleep 2
yay -S --noconfirm --noremovemake texlive biber texlive-latexextra yay -S --noconfirm --noremovemake texlive biber texlive-latexextra perl-yaml-tiny perl-file-homedir libxcrypt-compat
# WebDev utilities # WebDev utilities
echo " echo "
==> Installing webdev utilities... ==> Installing webdev utilities...
" "
sleep 2 sleep 2
sudo npm i -g create-vue sitemap-generator-cli sudo npm i -g create-vue sitemap-generator-cli http-server
echo " echo "
==> Doing system config... ==> Doing system config...
@@ -108,18 +108,35 @@ sudo cp ./system/greetd/config.toml /etc/greetd/config.toml
chsh -s /bin/fish chsh -s /bin/fish
sudo systemctl enable greetd sudo systemctl enable greetd
cd ./build/
npm i
cd ..
cd ./config/astal/
mkdir node_modules && cd node_modules && ln -sf /usr/share/astal/gjs/ ./astal
cd ../../config/ags/notifications/
mkdir node_modules && cd node_modules && ln -sf /usr/share/astal/gjs/ ./astal
cd ~/projects/dotfiles/
./setup ./setup
cd ~/projects/active/ cd ~/projects/
git clone https://git.janishutz.com/janishutz/nvim git clone https://git.janishutz.com/janishutz/nvim
cd nvim cd nvim
./nvim-install.sh ./nvim-install.sh
xdg-settings set default-web-browser librewolf.desktop
xdg-mime default org.pwmt.zathura.desktop application/pdf
sudo systemctl disable rustdesk
hyprpm update
git-credential-manager configure
echo " echo "
==> DONE! ==> DONE!
Run the postinstall script after a reboot and logging into NextCloud Run the postinstall script after a reboot and logging into NextCloud
to install the grub theme and cursor icons. to install the grub theme and cursor icons.
Use GNOME Tweaks to change the necessary appearance settings. Use GNOME Tweaks and nwg-look to change the necessary appearance settings.
" "

View File

@@ -4,5 +4,6 @@ cd ~/NextCloud/Documents/Private/PC/
unzip ./oreo_spark_blue_cursors.zip unzip ./oreo_spark_blue_cursors.zip
sudo mv ./oreo_spark_blue_cursors /usr/share/icons sudo mv ./oreo_spark_blue_cursors /usr/share/icons
cd monterey-grub-theme/ cd ~/NextCloud/Documents/Private/PC/monterey-grub-theme/
./install.sh sudo chmod +x ./install.sh
sudo ./install.sh

View File

@@ -45,7 +45,7 @@ label {
monitor = monitor =
text = <b>$TIME</b> text = <b>$TIME</b>
color = {{ colour-primary-rgb }} color = {{ colour-primary-rgb }}
font_size = 100 font_size = 150
font_family = {{ font-primary }} font_family = {{ font-primary }}
position = 0, 80 position = 0, 80

View File

@@ -1,13 +0,0 @@
/** Basic config file **/
configuration {
show-icons: true;
icon-theme: "{{ icon-theme }}";
display-drun: "";
display-run: "🏃🏽‍♂️ ";
display-window: "🗔 ";
display-combi: "🔎 ";
dpi: 160;
}
@theme "style.rasi"

View File

@@ -18,8 +18,8 @@
border: 1px; border: 1px;
border-radius: 10px; border-radius: 10px;
padding: 0; padding: 0;
location: west; location: center;
anchor: west; anchor: center;
margin: 0; margin: 0;
} }

View File

@@ -1,8 +1,7 @@
#!/bin/sh #!/bin/sh
cp -f ~/.config/hypr/hyprland_docked.conf ~/.config/hypr/hyprland.conf cp -f ~/.config/hypr/hyprland_docked.conf ~/.config/hypr/hyprland.conf
cp -f ~/.config/rofi/config_desktop.rasi ~/.config/rofi/config.rasi
./restart-bar ./restart-bar
echo " ==> Done! To revert to normal config, run change-wallpaper" echo " ==> Done! To revert to normal config, run apply-config"

View File

@@ -8,6 +8,6 @@ echo "
killall gjs killall gjs
killall ags killall ags
sleep 4 sleep 4
ags run -d ~/projects/active/dotfiles/config/astal --gtk4 & disown ags run -d ~/projects/dotfiles/config/astal --gtk4 & disown
sleep 2 sleep 2
ags run -d ~/projects/active/dotfiles/config/ags/notifications & disown ags run -d ~/projects/dotfiles/config/ags/notifications & disown

6
scripts/setup-clang-format Executable file
View File

@@ -0,0 +1,6 @@
#!/bin/sh
SCRIPT_DIR=$(dirname "$0")
cp "$SCRIPT_DIR/../config/lint/clang-format" ./.clang-format

43
setup
View File

@@ -32,14 +32,16 @@ if [[ -f ~/.config/platform ]]; then
platform=$(cat ~/.config/platform) platform=$(cat ~/.config/platform)
else else
read -p "Choose the configs to install, Laptop or Desktop (l/D): " platform read -p "Choose the configs to install, Laptop or Desktop (l/D): " platform
echo "$platform" > ~/.config/platform echo "$platform" >~/.config/platform
fi fi
platform=$(echo "$platform" | tr '[:upper:]' '[:lower:]') platform=$(echo "$platform" | tr '[:upper:]' '[:lower:]')
# Get user preference for regenerating the styling # Get user preference for regenerating the styling
regen="" regen=""
read -p "Would you like to regenerate styling? (y/N) " regen read -p "Would you like to regenerate styling? (y/N) " regen
restart=""
if [[ "$regen" == "y" ]]; then if [[ "$regen" == "y" ]]; then
restart="y"
cd build cd build
node build.js node build.js
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
@@ -47,6 +49,8 @@ if [[ "$regen" == "y" ]]; then
exit 130 exit 130
fi fi
cd .. cd ..
else
read -p "Apply full config? (y/N) " restart
fi fi
echo "=> Moving configs to correct destinations" echo "=> Moving configs to correct destinations"
@@ -56,18 +60,18 @@ cp -r ./config/hypr ~/.config/
rm -rf ~/.config/rofi/ rm -rf ~/.config/rofi/
cp -r ./config/rofi ~/.config/ cp -r ./config/rofi ~/.config/
cp -r ./config/xdg-desktop-portal-termfilechooser/ ~/.config/ cp -r ./config/xdg-desktop-portal-termfilechooser/ ~/.config/
cp -r ./config/xdg-desktop-portal/ ~/.config/
# Depending on platform, remove one or the other config and rename remaining one # Depending on platform, remove one or the other config and rename remaining one
if [[ "$platform" == "d" ]]; then if [[ "$platform" == "d" ]]; then
echo "Running on desktop" echo "Running on desktop"
cp -f ~/.config/hypr/hyprland_desktop.conf ~/.config/hypr/hyprland.conf cp -f ~/.config/hypr/hyprland_desktop.conf ~/.config/hypr/hyprland.conf
cp -f ~/.config/rofi/config_desktop.rasi ~/.config/rofi/config.rasi
else else
echo "Running on laptop" echo "Running on laptop"
cp -f ~/.config/hypr/hyprland_laptop.conf ~/.config/hypr/hyprland.conf cp -f ~/.config/hypr/hyprland_laptop.conf ~/.config/hypr/hyprland.conf
cp -f ~/.config/rofi/config_laptop.rasi ~/.config/rofi/config.rasi
fi fi
# Done this way intentionally to control what is copied
cp -r ./config/kitty ~/.config/ cp -r ./config/kitty ~/.config/
cp -r ./config/fastfetch ~/.config/ cp -r ./config/fastfetch ~/.config/
cp -r ./config/lazygit ~/.config/ cp -r ./config/lazygit ~/.config/
@@ -76,29 +80,38 @@ cp -r ./config/Thunar ~/.config/
cp -r ./config/wlogout/ ~/.config/ cp -r ./config/wlogout/ ~/.config/
cp -r ./config/yazi ~/.config/ cp -r ./config/yazi ~/.config/
cp -r ./config/zathura ~/.config/ cp -r ./config/zathura ~/.config/
cp ./config/lint/.indentconfig.yaml ~ cp ./config/lint/indentconfig.yaml ~/.indentconfig.yaml
echo " echo "
=> Installing yazi plugins => Installing yazi plugins
" "
ya pkg upgrade ya pkg upgrade
echo " if [[ "$restart" == "y" ]]; then
echo "
=> Installing GTK Theme => Installing GTK Theme
" "
sudo rm -rf /usr/share/themes/Adaptive-Theme/ sudo rm -rf /usr/share/themes/Adaptive-Theme/
sudo mkdir /usr/share/themes/Adaptive-Theme/ sudo mkdir /usr/share/themes/Adaptive-Theme/
sudo cp -r ./gtk-theme/dist/* /usr/share/themes/Adaptive-Theme/ sudo cp -r ./gtk-theme/dist/* /usr/share/themes/Adaptive-Theme/
echo "
echo "
=> Installing System Configs => Installing System Configs
" "
sudo cp ./system/environment /etc/environment sudo cp ./system/environment /etc/environment
sudo cp -r ./system/greetd/* /etc/greetd/ sudo cp ./system/greetd/pam /etc/pam.d/greetd
hyprctl reload sudo cp -r ./system/greetd/config.toml /etc/greetd/
# if [[ "$platform" == "d" ]]; then
# else
# echo "Setting up autologin config for greetd"
# sudo cp -r ./system/greetd/config-autologin.toml /etc/greetd/config.toml
# fi
hyprctl reload
./scripts/restart-bar ./scripts/restart-bar
fi
hyprctl reload
echo " echo "

View File

@@ -14,3 +14,5 @@ VKD3D_CONFIG=dxr11,dxr
RADV_PERFTEST_RT=1 RADV_PERFTEST_RT=1
ANDROID_HOME=/home/janis/Android/Sdk ANDROID_HOME=/home/janis/Android/Sdk
EDITOR=nvim EDITOR=nvim
PAGER=nvimpager
MANPAGER=nvimpager

View File

@@ -0,0 +1,18 @@
[terminal]
# The VT to run the greeter on. Can be "next", "current" or a number
# designating the VT.
vt = 1
# The default session, also known as the greeter.
[default_session]
command = "tuigreet --cmd Hyprland --time --remember --remember-user-session --asterisks --user-menu --sessions /usr/share/wayland-sessions"
# The user to run the command as. The privileges this user must have depends
# on the greeter. A graphical greeter may for example require the user to be
# in the `video` group.
user = "greeter"
[initial_session]
command = "Hyprland"
user = "janis"

9
system/greetd/pam Normal file
View File

@@ -0,0 +1,9 @@
#%PAM-1.0
auth required pam_securetty.so
auth requisite pam_nologin.so
auth include system-local-login
auth optional pam_gnome_keyring.so
account include system-local-login
session include system-local-login
session optional pam_gnome_keyring.so auto_start

View File

@@ -1,73 +0,0 @@
# vim:set ft=sh
# MODULES
# The following modules are loaded before any boot hooks are
# run. Advanced users may wish to specify all system modules
# in this array. For instance:
# MODULES=(usbhid xhci_hcd)
MODULES=()
# BINARIES
# This setting includes any additional binaries a given user may
# wish into the CPIO image. This is run last, so it may be used to
# override the actual binaries included by a given hook
# BINARIES are dependency parsed, so you may safely ignore libraries
BINARIES=()
# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in any way. This is useful for config files.
FILES=()
# HOOKS
# This is the most important setting in this file. The HOOKS control the
# modules and scripts added to the image, and what happens at boot time.
# Order is important, and it is recommended that you do not change the
# order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for
# help on a given hook.
# 'base' is _required_ unless you know precisely what you are doing.
# 'udev' is _required_ in order to automatically load modules
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
# Examples:
## This setup specifies all modules in the MODULES setting above.
## No RAID, lvm2, or encrypted root is needed.
# HOOKS=(base)
#
## This setup will autodetect all modules for your system and should
## work as a sane default
# HOOKS=(base udev autodetect modconf block filesystems fsck)
#
## This setup will generate a 'full' image which supports most systems.
## No autodetection is done.
# HOOKS=(base udev modconf block filesystems fsck)
#
## This setup assembles a mdadm array with an encrypted root file system.
## Note: See 'mkinitcpio -H mdadm_udev' for more information on RAID devices.
# HOOKS=(base udev modconf keyboard keymap consolefont block mdadm_udev encrypt filesystems fsck)
#
## This setup loads an lvm2 volume group.
# HOOKS=(base udev modconf block lvm2 filesystems fsck)
#
## NOTE: If you have /usr on a separate partition, you MUST include the
# usr and fsck hooks.
HOOKS=(base udev autodetect modconf kms keyboard keymap consolefont block filesystems fsck plymouth)
# COMPRESSION
# Use this to compress the initramfs image. By default, zstd compression
# is used. Use 'cat' to create an uncompressed image.
#COMPRESSION="zstd"
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
#COMPRESSION="xz"
#COMPRESSION="lzop"
#COMPRESSION="lz4"
# COMPRESSION_OPTIONS
# Additional options for the compressor
#COMPRESSION_OPTIONS=()
# MODULES_DECOMPRESS
# Decompress kernel modules during initramfs creation.
# Enable to speedup boot process, disable to save RAM
# during early userspace. Switch (yes/no).
#MODULES_DECOMPRESS="yes"