Compare commits

..

51 Commits

Author SHA1 Message Date
80ce759b1d init for thinkpad 2026-02-26 20:29:56 +01:00
406609f990 merge 2026-02-26 14:27:35 +01:00
033a5fae07 browsers default 2026-02-26 14:26:55 +01:00
62254c44e3 trele morele 2026-02-26 13:55:59 +01:00
325cc17e1b trele morele 2026-02-26 13:52:30 +01:00
dc8a82364b dxdxd 2026-02-26 13:39:32 +01:00
bea3099e0d mako fix 2026-02-25 20:23:32 +01:00
3034989c00 brave 2026-02-25 19:56:13 +01:00
9b718e86d1 obsidian stuff 2026-02-25 17:48:56 +01:00
ea28c116e1 more readme 2026-02-25 16:12:46 +01:00
93de0bbce6 readme 2026-02-25 16:07:56 +01:00
04f6dab540 Merge remote-tracking branch 'origin/master' into laptop 2026-02-25 15:17:54 +01:00
b8287582e5 xd 2026-02-25 15:17:28 +01:00
02a5295aef change ssh key 2026-02-25 15:16:08 +01:00
12ead5ae9b merge 2026-02-25 15:07:46 +01:00
94de74e3f5 pause fix 2026-02-25 11:55:11 +01:00
30de3e58ee update readme 2026-02-25 09:37:50 +01:00
141ebd6150 move some scripts to .nix 2026-02-25 09:28:40 +01:00
09e31ebfd8 update: modules/hypr/hyprland.nix 2026-02-25 09:02:03 +01:00
ba4f3f5ada update: modules/cli/fish.nix 2026-02-25 08:41:39 +01:00
ac237ea1cc cool script 2026-02-25 08:40:05 +01:00
d77c3f1689 remove unused shit 2026-02-25 01:32:39 +01:00
d9d7112ff1 gtk feck it!!! 2026-02-25 01:25:16 +01:00
e63ab9b51c gtk theme 2026-02-25 01:18:17 +01:00
06deba1909 flake 2026-02-25 01:16:54 +01:00
a1952fa7a9 test 2026-02-25 00:24:43 +01:00
cd8ef7e5db comituje 2026-02-24 23:39:07 +01:00
c775533445 nicer scripting 2026-02-24 21:58:37 +01:00
a614b87763 add do-not-disturb button to ashell 2026-02-24 21:34:43 +01:00
98c6e20d5a chagne time 2026-02-24 21:05:54 +01:00
3091531d95 kdeconnect 2026-02-24 20:13:00 +01:00
45c041d7ef xd 2026-02-24 20:10:32 +01:00
8ead2d6800 add option to change statusBar 2026-02-24 19:49:35 +01:00
74b4c90007 main monitor config option 2026-02-24 19:45:58 +01:00
f175a72fcf more git 2026-02-24 19:41:20 +01:00
b33de71b55 chromium 2026-02-24 19:38:47 +01:00
8a91a7ac1f Merge branch 'master' of github.com:szymon-jozef/amazing-dotfiles 2026-02-24 19:20:22 +01:00
909432c10a git 2026-02-24 19:20:15 +01:00
18b56bb257 readme 2026-02-24 19:16:54 +01:00
cac48072c3 readme 2026-02-24 19:16:00 +01:00
89911e7d90 gh 2026-02-24 18:50:54 +01:00
65a83d177a xd 2026-02-24 16:32:13 +01:00
56dfeda53e signing with ssh key 2026-02-24 16:31:51 +01:00
1e107185b3 var edir 2026-02-24 16:18:27 +01:00
bfab7d80e9 update readme 2026-02-23 23:03:57 +01:00
e690f58b9a xd 2026-02-23 19:51:37 +01:00
e55ae7e6c1 update: modules/cli/fish.nix 2026-02-23 16:35:34 +01:00
1801311cb5 laptop
Merge branch 'master' of https://github.com/szymon-jozef/amazing-dotfiles
2026-02-23 13:51:43 +01:00
c16e047e32 comituje 2026-02-23 13:51:37 +01:00
2b8f7383ad comituje 2026-02-23 13:51:11 +01:00
7dee04d6e7 hyprtoolkit colors 2026-02-23 13:13:37 +01:00
80 changed files with 1113 additions and 4333 deletions

113
README.md
View File

@@ -1,7 +1,7 @@
![Nix](https://img.shields.io/badge/Nix-unstable-blue.svg?logo=nixos&logoColor=white) ![Nix](https://img.shields.io/badge/Nix-unstable-blue.svg?logo=nixos&logoColor=white)
![Home Manager](https://img.shields.io/badge/Home_Manager-enabled-brightgreen.svg) ![Home Manager](https://img.shields.io/badge/Home_Manager-enabled-brightgreen.svg)
# My even cooler than previous dotfiles! # My even cooler than previous dotfiles!
My dotfiles managed with [home manager](https://github.com/nix-community/home-manager) My dotfiles managed with [home manager](https://github.com/nix-community/home-manager), using [catppuccin mocha](https://catppuccin.com/palette/) color scheme!
# What's inside? # What's inside?
* Ashell * Ashell
@@ -15,6 +15,7 @@ My dotfiles managed with [home manager](https://github.com/nix-community/home-ma
* Hyprlauncher * Hyprlauncher
* Hyprlock * Hyprlock
* Hyprsunset * Hyprsunset
* Hyprtoolkit
* Kitty * Kitty
* Mako * Mako
* Nixvim * Nixvim
@@ -30,6 +31,7 @@ My dotfiles managed with [home manager](https://github.com/nix-community/home-ma
* Mimeapps * Mimeapps
* Catppuccin * Catppuccin
* Home Manager * Home Manager
* Obsidian
## Screenshot ## Screenshot
![Desktop screenshot](assets/screenshot.png) ![Desktop screenshot](assets/screenshot.png)
@@ -44,15 +46,21 @@ As of today I'm using this repo with home manager. I'm still trying stuff out, b
# How to use this? # How to use this?
You need to have [home manager](https://nix-community.github.io/home-manager/index.xhtml#sec-install-standalone) installed. Install needs to be **standalone**. It may not work as NixOS module. You need to have [home manager](https://nix-community.github.io/home-manager/index.xhtml#sec-install-standalone) installed. Install needs to be **standalone**. It may not work as NixOS module.
## Arch Linux ## Settings
You need to edit `flake.nix` to match your preferences.
- If you want to use git, login with `gh auth login`, generate ssh key and put the pub key in the flake.
- You also need to set your git credentials there
- You can change the path of wallpaper dir.
### Arch Linux
0. If you're extra lazy you can use `install_nix_and_home_manager_on_arch.sh` script to install nix and home-manager. Just run it with `chmod +x ./install_nix_and_home_manager_on_arch.sh && ./install_nix_and_home_manager_on_arch.sh` 0. If you're extra lazy you can use `install_nix_and_home_manager_on_arch.sh` script to install nix and home-manager. Just run it with `chmod +x ./install_nix_and_home_manager_on_arch.sh && ./install_nix_and_home_manager_on_arch.sh`
1. Copy this repo to `~/.config/home-manager` or somewhere else. 1. Copy this repo to `~/.config/home-manager` or somewhere else.
2. Make sure to change variable to your liking inside `flake.nix`. Especially your username and home path! 2. Make sure to change variable to your liking inside `flake.nix`. Especially your username and home path!
3. Download all the dependencies `sudo yay -Syu --needed - < arch_packages.txt`. You can use any other aur helper if you want to, but be aware that regular pacman most likely won't work as `ashell` is not in regular repos yet. 3. Download all the dependencies `yay -Syu --needed - < arch_packages.txt`. You can use any other aur helper if you want to, but be aware that regular pacman most likely won't work as `ashell` is not in regular repos yet.
4. Run this command to apply all the configurations for the first time `home-manager switch --flake .#arch -b backup`. Make sure to be in the repo root. All your existing files will be backed up with `.backup` extension. 4. Run this command to apply all the configurations for the first time `home-manager switch --flake .#arch -b backup`. Make sure to be in the repo root. All your existing files will be backed up with `.backup` extension.
5. Enjoy! Now you can use [nh](https://github.com/nix-community/nh). So for example to switch use `nh home switch . -c arch --backup-extension backup` 5. Enjoy! Now you can use [nh](https://github.com/nix-community/nh). So for example to switch use `nh home switch . -c arch --backup-extension backup`
## NixOS ### NixOS
1. Copy this repo to `~/.config/home-manager` or somewhere else. 1. Copy this repo to `~/.config/home-manager` or somewhere else.
2. Make sure to change variable to your liking inside `flake.nix`. Especially your username and home path! 2. Make sure to change variable to your liking inside `flake.nix`. Especially your username and home path!
3. Run this command to apply all the configurations for the first time `home-manager switch --flake .#nixos -b backup`. Make sure to be in the repo root. All your existing files will be backed up with `.backup` extension. 3. Run this command to apply all the configurations for the first time `home-manager switch --flake .#nixos -b backup`. Make sure to be in the repo root. All your existing files will be backed up with `.backup` extension.
@@ -70,6 +78,103 @@ You need to have [home manager](https://nix-community.github.io/home-manager/ind
} }
``` ```
# Binds
## System & Power
| Bind | Action |
| :--- | :--- |
| **SUPER + Shift + Ctrl + L** | Lock screen |
| **SUPER + Shift + Ctrl + R** | Restart |
| **SUPER + Shift + Ctrl + P** | Power off |
| **SUPER + Shift + Ctrl + S** | Go to sleep |
| **SUPER + Shift + Ctrl + M** | Logout |
| **SUPER + V** | Show clipboard |
| **SUPER + Alt + V** | Clear clipboard |
### Windows management
| Bind | Action |
| :--- | :--- |
| **SUPER + Q** | Close active window |
| **SUPER + F** | Fullscreen |
| **SUPER + T** | Toggle floating window |
| **SUPER + P** | Toggle pseudo layout |
| **SUPER + S** | Toggle split / Swap with master window |
| **SUPER + N** / **P** | Swap with next / previous window |
| **SUPER + vim keys** | Move focus (Left / Down / Up / Right) |
| **SUPER + Shift + vim keys** | Resize active window |
| **SUPER + Left Mouse Button** | Move window |
| **SUPER + Right Mouse Button**| Resize window |
### Workspaces
| Bind | Action |
| :--- | :--- |
| **SUPER + 1-0** | Go to workspace 1-10 |
| **SUPER + Shift + 1-0** | Move active window to workspace 1-10 |
| **SUPER + Mouse Scroll** | Go to next/previous workspace |
| **SUPER + Shift + Right / Left** | Move current workspace to next/previous monitor |
| **SUPER + Tab** | Toggle scratchpad workspace |
| **SUPER + Shift + Tab** | Move window to scratchpad |
### Applications
| Bind | Action |
| :--- | :--- |
| **SUPER + Enter** | Open terminal |
| **SUPER + Ctrl + Enter** | Open terminal (current workspace) |
| **SUPER + Space** | Open app menu |
| **SUPER + M** | Open waypaper menu |
| **SUPER + Alt + C** | Apply OpenRGB color |
| **SUPER + Ctrl + B** | Open/Focus web browser |
| **SUPER + Ctrl + N** | Open/Focus notes app |
| **SUPER + Ctrl + M** | Open/Focus music player |
| **SUPER + Ctrl + S** | Open/Focus Signal |
| **SUPER + Ctrl + V** | Open/quick switcher Vesktop |
| **SUPER + Ctrl + G** | Open/Focus Steam |
| **SUPER + Ctrl + F** | Open/Focus FreeTube |
| **SUPER + Ctrl + X** | Open/Focus X app |
| **SUPER + Ctrl + Shift + B** | Restart status bar |
### Zoom
| Bind | Action |
| :--- | :--- |
| **SUPER + Alt + =** | Zoom in (+10%) |
| **SUPER + Alt + -** | Zoom out (-10%) |
| **SUPER + Alt + 0** | Reset zoom |
### Screenshots & Media
| Bind | Action |
| :--- | :--- |
| **Print Screen** | Screenshot selected area |
| **SUPER + Print Screen** | Screenshot fullscreen |
| **Alt + Print Screen** | Screenshot active window |
| **Pause** | Play / Pause media |
| **SUPER + Pause** | Play / Pause Spotify |
| **Brightness Keys** | Change screen brightness (+/- 10) |
| **Volume Keys** | Change volume (+/- 5%) |
| **Mic Mute Key** | Mute / Unmute microphone |
# Default apps
| Type | Application |
| :--- | :--- |
| Web Browser | Zen Browser |
| Terminal | kitty |
| Notes | Obsidian |
| Music Player | Spotify |
| App Launcher | hyprlauncher |
| Signal | Signal-desktop |
| Discord Client | Vesktop |
| YouTube Client | FreeTube |
| Gaming Platform | Steam |
| Screen Recording | OBS Studio |
| Image Editor | GIMP |
| Wallpaper Picker | Waypaper / swww |
| Screenshot Tool | grim (capture) & satty (editor) |
| Screen Locker | hyprlock |
| Clipboard Manager | cliphist & wl-clipboard |
| RGB Lighting Control | OpenRGB |
| Audio Volume Control | pavucontrol |
| Screen Color (Night Light) | hyprsunset |
| Status bar | AShell |
| Web Apps (PWAs) | Facebook, Twitter, ProtonMail |
--- ---
I hope you'll enjoy it, if you for whatever reason want to try this random ass dotfiles found on the internet… I hope you'll enjoy it, if you for whatever reason want to try this random ass dotfiles found on the internet…

View File

@@ -8,3 +8,5 @@ hyprsunset
satty satty
kitty kitty
mangohud mangohud
brave-bin
zen-browser-bin

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 MiB

After

Width:  |  Height:  |  Size: 6.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 MiB

After

Width:  |  Height:  |  Size: 3.7 MiB

View File

@@ -1,38 +0,0 @@
outputs = { Targets = ["DP-1"]}
position = "Bottom"
[modules]
left = [ "Clock", "Workspaces" ]
center = [ "WindowTitle" ]
right = ["Privacy", "MediaPlayer", "SystemInfo",[ "Tray", "Settings" ] ]
[clock]
format = "%H:%M | %e.%m "
[settings]
remove_airplane_btn = true
[appearance]
scale_factor = 1.2
success_color = "#a6e3a1"
text_color = "#cdd6f4"
workspace_colors = [ "#fab387", "#b4befe", "#cba6f7" ]
[appearance.primary_color]
base = "#fab387"
text = "#1e1e2e"
[appearance.danger_color]
base = "#f38ba8"
weak = "#f9e2af"
[appearance.background_color]
base = "#1e1e2e"
weak = "#313244"
strong = "#45475a"
[appearance.secondary_color]
base = "#11111b"
strong = "#1b1b25"

View File

@@ -1,30 +0,0 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"modules": [
"title",
"separator",
"os",
"host",
"kernel",
"packages",
"separator",
"wm",
"shell",
"terminal",
"theme",
"font",
"locale",
"separator",
"display",
"cpu",
"gpu",
"memory",
"disk",
"battery",
"separator",
"wifi",
"localip",
"break",
"colors"
]
}

View File

@@ -1,26 +0,0 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"source": "arch_small",
"padding": {
"bottom": 1,
}
},
"display": {
"separator": " ➜ ",
},
"modules": [
"title",
"kernel",
"packages",
"shell",
"battery",
{
"type": "separator",
"string": " • ",
},
"break",
"break",
"break"
]
}

1
dotfiles/gtk-3.0/gtk.css Normal file
View File

@@ -0,0 +1 @@
@import 'colors.css';

View File

@@ -1,25 +0,0 @@
[Settings]
gtk-theme-name=catppuccin-mocha-maroon-standard+default
gtk-icon-theme-name=Papirus-Dark
gtk-font-name=Noto Sans, 10
gtk-cursor-theme-name=default
gtk-cursor-theme-size=32
gtk-toolbar-style=3
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=0
gtk-menu-images=0
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=0
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle=hintslight
gtk-xft-rgba=rgb
gtk-application-prefer-dark-theme=0
gtk-cursor-blink=true
gtk-cursor-blink-time=1000
gtk-decoration-layout=icon:minimize,maximize,close
gtk-enable-animations=true
gtk-modules=colorreload-gtk-module
gtk-primary-button-warps-slider=true
gtk-sound-theme-name=ocean
gtk-xft-dpi=117964

View File

@@ -1,7 +0,0 @@
[Settings]
gtk-theme-name=catppuccin-mocha-maroon-standard+default
gtk-icon-theme-name=Papirus-Dark
gtk-font-name=Noto Sans, 10
gtk-cursor-theme-name=default
gtk-cursor-theme-size=32
gtk-application-prefer-dark-theme=0

View File

@@ -1,79 +0,0 @@
$rosewater = rgb(dc8a78)
$rosewaterAlpha = dc8a78
$flamingo = rgb(dd7878)
$flamingoAlpha = dd7878
$pink = rgb(ea76cb)
$pinkAlpha = ea76cb
$mauve = rgb(8839ef)
$mauveAlpha = 8839ef
$red = rgb(d20f39)
$redAlpha = d20f39
$maroon = rgb(e64553)
$maroonAlpha = e64553
$peach = rgb(fe640b)
$peachAlpha = fe640b
$yellow = rgb(df8e1d)
$yellowAlpha = df8e1d
$green = rgb(40a02b)
$greenAlpha = 40a02b
$teal = rgb(179299)
$tealAlpha = 179299
$sky = rgb(04a5e5)
$skyAlpha = 04a5e5
$sapphire = rgb(209fb5)
$sapphireAlpha = 209fb5
$blue = rgb(1e66f5)
$blueAlpha = 1e66f5
$lavender = rgb(7287fd)
$lavenderAlpha = 7287fd
$text = rgb(4c4f69)
$textAlpha = 4c4f69
$subtext1 = rgb(5c5f77)
$subtext1Alpha = 5c5f77
$subtext0 = rgb(6c6f85)
$subtext0Alpha = 6c6f85
$overlay2 = rgb(7c7f93)
$overlay2Alpha = 7c7f93
$overlay1 = rgb(8c8fa1)
$overlay1Alpha = 8c8fa1
$overlay0 = rgb(9ca0b0)
$overlay0Alpha = 9ca0b0
$surface2 = rgb(acb0be)
$surface2Alpha = acb0be
$surface1 = rgb(bcc0cc)
$surface1Alpha = bcc0cc
$surface0 = rgb(ccd0da)
$surface0Alpha = ccd0da
$base = rgb(eff1f5)
$baseAlpha = eff1f5
$mantle = rgb(e6e9ef)
$mantleAlpha = e6e9ef
$crust = rgb(dce0e8)
$crustAlpha = dce0e8
$openrgb_color = 09ce30

View File

@@ -1,23 +0,0 @@
general {
lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances.
before_sleep_cmd = hyprlock # lock before suspend.
after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display.
}
listener {
timeout = 300 # 5min
on-timeout = hyprlock # lock screen when timeout has passed
}
listener {
timeout = 330 # 5.5min
on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed
on-resume = hyprctl dispatch dpms on # screen on when activity is detected after timeout has fired.
}
listener {
timeout = 330 # 5.5min
on-timeout = openrgb -c black
on-resume = openrgb -c green
}

View File

@@ -1,53 +0,0 @@
env = XCURSOR_SIZE, 32
env = HYPRCURSOR_SIZE, 32
env = HYPRCURSOR_THEME, theme_phinger-cursors-light
env = XDG_CURRENT_DESKTOP,Hyprland
$mainMod = SUPER # Sets "Windows" key as main modifier
$terminal = uwsm app -- kitty
$menu = hyprlauncher
$music_player = flatpak run com.spotify.Client
$notes = obsidian
$browser = zen-browser
input {
kb_layout = pl
kb_variant =
kb_model =
kb_options = caps:escape_shifted_capslock
kb_rules =
follow_mouse = 1
left_handed = true
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
touchpad {
natural_scroll = true
}
}
cursor {
no_hardware_cursors = true
inactive_timeout = 5
warp_on_change_workspace = 1
zoom_factor = 1.0
hide_on_key_press = 1
}
misc {
force_default_wallpaper = 0
disable_hyprland_logo = true
middle_click_paste = false
}
xwayland {
force_zero_scaling = 1
}
# IMPORTS
source = ./colors.conf
source = ./hyprland/binds/*
source = ./hyprland/*

View File

@@ -1,12 +0,0 @@
# Requires pactl
bindel=, XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ && ~/.local/bin/wp-vol.sh && paplay /usr/share/sounds/freedesktop/stereo/bell.oga
bindel=, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- && ~/.local/bin/wp-vol.sh && paplay /usr/share/sounds/freedesktop/stereo/bell.oga
bindel=, XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle
bindl=, XF86AudioMute, exec, wpctl set-mute @DEFAULT_SINK@ toggle && ~/.local/bin/check-if-muted.sh
# Requires playerctl
bindl = , XF86AudioNext, exec, playerctl next
bindl = , Pause, exec, playerctl play-pause
bindl = $mainMod, Pause, exec, playerctl play-pause --player spotify
bindl = , XF86AudioPlay, exec, playerctl play-pause
bindl = , XF86AudioPrev, exec, playerctl previous

View File

@@ -1,2 +0,0 @@
bind = $mainMod, V, exec, cliphist list | hyprlauncher -m | cliphist decode | wl-copy
bind = $mainMod ALT_L, V, exec, cliphist wipe && notify-send "Clipboard" "Clipboard cleared!"

View File

@@ -1,12 +0,0 @@
# Zoom
binde = $mainMod alt, equal, exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor | awk '/^float.*/ {print $2 * 1.1}')
binde = $mainMod alt, minus, exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor | awk '/^float.*/ {print $2 * 0.9}')
bind = $mainMod alt, 0, exec, hyprctl -q keyword cursor:zoom_factor 1
# Brightness
bindel = ,XF86MonBrightnessDown, exec, hyprctl hyprsunset gamma -10
bindel = ,XF86MonBrightnessUp, exec, hyprctl hyprsunset gamma +10
# Wallpaper
bind = $mainMod, M, exec, [float] waypaper

View File

@@ -1,109 +0,0 @@
# Move windows around
## Move focus with mainMod + vim keys
bind = $mainMod, h, movefocus, l
bind = $mainMod, l, movefocus, r
bind = $mainMod, k, movefocus, u
bind = $mainMod, j, movefocus, d
## Resize with mainMod + shift + vim keys
binde = $mainMod L_SHIFT, l, resizeactive, 10 0 # right
binde = $mainMod L_SHIFT, h, resizeactive, -10 0 # left
binde = $mainMod L_SHIFT, k, resizeactive, 0 -10 #up
binde = $mainMod L_SHIFT, j, resizeactive, 0 10 # down
## Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
## Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
## Move to different monitor
bind = $mainMod L_SHIFT, right, exec, hyprctl dispatch movecurrentworkspacetomonitor +1
bind = $mainMod L_SHIFT, left, exec, hyprctl dispatch movecurrentworkspacetomonitor -1
## Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
## Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
## Change display settings
bindd = $mainMod, F, Make app fullscreen, fullscreen
bindd = $mainMod, T, Toggle floating, togglefloating
bindd = $mainMod, P, Toggle pseudo, pseudo
bindd = $mainMod, S, Toggle split, togglesplit
bindd = $mainMod, Q, Kill active window, killactive
## special workspace
bind = $mainMod, TAB, togglespecialworkspace, magic
bind = $mainMod SHIFT, TAB, movetoworkspace, special:magic
## master layout
bind = $mainMod, S, layoutmsg, swapwithmaster
bind = $mainMod, n, layoutmsg, swapnext
bind = $mainMod, p, layoutmsg, swapprev
# APPS
## general
bind = $mainMod, RETURN, exec, [workspace 4] $terminal
bind = $mainMod CONTROL_L, RETURN, exec, $terminal
bind = $mainMod, space , exec, $menu
bind = $mainMod ALT_L, c, exec, openrgb -c $openrgb_color # restore openrgb color
### messages
bind = $mainMod Control_L, s, exec,[workspace 1] signal-desktop --password-store="kwallet6"
bind = $mainMod Control_L, s, focuswindow, class:^(signal)$
bind = $mainMod Control_L, s, focuswindow, title:^(signal)$
bind = $mainMod Control_L, v, sendshortcut, ctrl, k, class:^(vesktop)$
bind = $mainMod Control_L, v, exec, uwsm app -- vesktop
bind = $mainMod Control_L, v, focuswindow, class:^(vesktop)$
### games
bind = $mainMod Control_L, g, exec, uwsm app -- steam
bind = $mainMod Control_L, g, focuswindow, class:^(steam)$
### browser
bind = $mainMod Control_L, b, exec, uwsm app -- $browser
bind = $mainMod Control_L, b, focuswindow, class:^(zen)$
### notes
bind = $mainMod Control_L, n, exec, [workspace 6] uwsm app -- $notes
bind = $mainMod Control_L, n, focuswindow, class:^(obsidian)$
### music player
bind = $mainMod Control_L, m, exec, [workspace 9] uwsm app -- $music_player
### youtube ig
bind = $mainMod Control_L, f, exec, uwsm app -- freetube
bind = $mainMod Control_L, f, focuswindow, class:^(freetube)$
### x
bind = $mainMod Control_L, x, exec, uwsm app -- ~/.local/share/applications/x.desktop
bind = $mainMod Control_L, x, focuswindow, class:^(chrome-x.com__-Default)$
## restart status bar
bind = $mainMod CONTROL_L L_SHIFT, B, exec, killall ashell && uwsm app -- ashell

View File

@@ -1,5 +0,0 @@
bind = $mainMod L_SHIFT ctrl, l, exec, hyprlock # lock
bind = $mainMod L_SHIFT ctrl, r, exec, openrgb -c black && systemctl reboot
bind = $mainMod L_SHIFT ctrl, p, exec, openrgb -c black && systemctl poweroff
bind = $mainMod L_SHIFT ctrl, s, exec, openrgb -c black && pidof hyprlock || sleep 1 && systemctl sleep
bind = $mainMod L_SHIFT ctrl, m, exec, uwsm stop

View File

@@ -1,3 +0,0 @@
bindt = , PRINT, exec, ~/.local/bin/screenshot.sh region
bindt = $mainMod, PRINT, exec, ~/.local/bin/screenshot.sh fullscreen
bindt = alt_l, PRINT, exec, ~/.local/bin/screenshot.sh window

View File

@@ -1,25 +0,0 @@
# https://wiki.hyprland.org/Configuring/Variables/#decoration
decoration {
rounding = 1
rounding_power = 2
# Change transparency of focused and unfocused windows
active_opacity = 1.0
inactive_opacity = 1.0
shadow {
enabled = true
range = 1
render_power = 1
color = $overlay0
}
# https://wiki.hyprland.org/Configuring/Variables/#blur
blur {
enabled = true
size = 1
passes = 1
vibrancy = 0.1696
}
}

View File

@@ -1,7 +0,0 @@
exec-once = wl-paste --type text --watch cliphist store
exec-once = wl-paste --type image --watch cliphist store
exec-once = uwsm app -- kdeconnect-indicator
exec-once = uwsm app -- ashell
exec-once = swww-daemon
exec-once = openrgb -c $openrgb_color

View File

@@ -1,47 +0,0 @@
general {
gaps_in = 4
gaps_out = 6
border_size = 4
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
col.active_border = $blue $sky
col.inactive_border = $overlay1
# Set to true enable resizing windows by clicking and dragging on borders and gaps
resize_on_border = false
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
allow_tearing = false
layout = dwindle
}
animations {
enabled = yes, please :)
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
bezier = easeOutQuint,0.23,1,0.32,1
bezier = easeInOutCubic,0.65,0.05,0.36,1
bezier = linear,0,0,1,1
bezier = almostLinear,0.5,0.5,0.75,1.0
bezier = quick,0.15,0,0.1,1
animation = global, 1, 7, default
animation = border, 1, 3.39, easeOutQuint
animation = windows, 1, 2.79, easeOutQuint
animation = windowsIn, 1, 2.1, easeOutQuint, popin 87%
animation = windowsOut, 1, 1, linear, popin 87%
animation = fadeIn, 1, 1.4, almostLinear
animation = fadeOut, 1, 1.2, almostLinear
animation = fade, 1, 3.03, quick
animation = layers, 1, 2, easeOutQuint
animation = layersIn, 1, 2, easeOutQuint, fade
animation = layersOut, 1, 1, linear, fade
animation = fadeLayersIn, 1, 1.4, almostLinear
animation = fadeLayersOut, 1, 1.1, almostLinear
animation = workspaces, 1, 1.4, quick, slidevert
animation = workspacesIn, 1, 0.5, quick, slidevert
animation = workspacesOut, 1, 0.5, quick, slidevert
}

View File

@@ -1,10 +0,0 @@
dwindle {
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = true # You probably want this
}
master {
new_status = slave
allow_small_split = true
orientation = left
}

View File

@@ -1,40 +0,0 @@
monitorv2 {
output = DP-1
mode = 2560x1440@180.06
position = 0x0
scale = 1
vrr = 1
supports_wide_color = 1
bitdepth = 10
sdr_min_luminance = 0.005
sdr_max_luminance = 220
cm = hdr
supports_hdr = 1
}
monitorv2 {
output = DP-2
mode = 1920x1080@144
position = auto-left
vrr = 1
scale = 1.0
}
monitorv2 {
output = HDMI-A-2
mode = highres
position = auto-up
scale = 1
}
monitorv2 {
output =
position = auto-right
scale = 1
}
quirks {
prefer_hdr = 1
}

View File

@@ -1,67 +0,0 @@
windowrule {
name = pavucontrol-float
match:class = ^(org.pulseaudio.pavucontrol)$
float = 1
size = 80% 60%
stay_focused = 1
center = 1
pin = 1
}
windowrule {
name = share-picker-float
match:class = ^(hyprland-share-picker)$
float = 1
center = 1
pin = 1
}
windowrule {
name = steam-friends-list
match:title = ^(Lista znajomych)$
float = 1
center = 1
size = 40% 60%
}
windowrule {
name = vesktop-dont-focus-pls
match:class = ^(vesktop)$
no_initial_focus = 1
focus_on_activate = 0
render_unfocused = 1
}
windowrule {
name = xdg-desktop-portal-gtk
match:class = ^(xdg-desktop-portal-gtk)$
float = 1
center = 1
size = 55% 50%
}
windowrule {
name = picture-in-picture
match:title = ^(Obraz w obrazie)$
pseudo = 1
no_initial_focus = 1
}
windowrule {
name = login-google-zen
match:title = ^(Logowanie – Konta Google — Zen Browser)$
float = 1
center = 1
}
windowrule {
name = prism-launcher
match:class = ^(org.prismlauncher.PrismLauncher)$
workspace = 3
}
windowrule {
name = gamescope
match:class = ^(gamescope)$
workspace = 3
}

View File

@@ -1,7 +0,0 @@
ecosystem {
enforce_permissions = true
}
permission = /usr/bin/grim, screencopy, allow
permission = /usr/bin/hyprlock, screencopy, allow
permission = /usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow

View File

@@ -1,54 +0,0 @@
workspace = 1, monitor:DP-2
workspace = 2, monitor:DP-1
workspace = 3, monitor:DP-1
workspace = 4, monitor:DP-1
workspace = 5, monitor:DP-1
workspace = 6, monitor:DP-1
workspace = 7, monitor:HDMI-A-2
workspace = 9, monitor:DP-2
workspace = 10, monitor:DP-2
# smart gaps or smt
workspace = w[tv1], gapsout:0, gapsin:0
workspace = f[1], gapsout:0, gapsin:0
windowrule = border_size 0, match:float 0, match:workspace w[tv1]
windowrule = rounding 0, match:float 0, match:workspace w[tv1]
windowrule = border_size 0, match:float 0, match:workspace f[1]
windowrule = rounding 0, match:float 0, match:workspace f[1]
# assign windows to workspaces
# Workspace 1
windowrule = match:class ^(signal)$, workspace 1
windowrule = match:class ^(vesktop)$, workspace 1 silent
windowrule = match:class ^(chrome-facebook.com__-Default)$, workspace 1
# Workspace 2
windowrule = match:class ^(zen)$, workspace 2
windowrule = match:class ^(com.github.IsmaelMartinez.teams_for_linux)$, workspace 2
windowrule = match:class ^(FreeTube)$, workspace 2
windowrule = match:class ^(chrome-x.com__-Default)$, workspace 2
windowrule = match:class ^(chrome-www.inoreader.com__all_articles-Default)$, workspace 2
windowrule = match:class ^(chrome-mail.proton.me__u_0_inbox.com-Default)$, workspace 2
windowrule = match:class ^(chrome-app.tuta.com__-Default)$, workspace 2
# Workspace 3
windowrule = match:class ^(steam)$, workspace 3 silent
windowrule = match:class ^(heroic)$, workspace 3
windowrule = match:class ^(net.lutris.Lutris)$, workspace 3
windowrule = match:class ^(rpcs3)$, workspace 3
# Workspace 5
windowrule = match:class ^(winboat)$, workspace 5
# Workspace 6
windowrule = match:class ^(obsidian)$, workspace 6
# Workspace 8
windowrule = match:class ^(gimp)$, workspace 8
# Workspace 9
windowrule = match:class .*potify, workspace 9 silent
# Workspace 10
windowrule = match:class ^(com.obsproject.Studio)$, workspace 10

View File

@@ -1 +0,0 @@
desktop_launch_prefix = uwsm app --

View File

@@ -1,106 +0,0 @@
# sample hyprlock.conf
# for more configuration options, refer https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock
#
# rendered text in all widgets supports pango markup (e.g. <b> or <i> tags)
# ref. https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#general-remarks
#
# shortcuts to clear password buffer: ESC, Ctrl+U, Ctrl+Backspace
#
# you can get started by copying this config to ~/.config/hypr/hyprlock.conf
#
$font = Monospace
general {
hide_cursor = false
}
# uncomment to enable fingerprint authentication
# auth {
# fingerprint {
# enabled = true
# ready_message = Scan fingerprint to unlock
# present_message = Scanning...
# retry_delay = 250 # in milliseconds
# }
# }
animations {
enabled = true
bezier = linear, 1, 1, 0, 0
animation = fadeIn, 1, 5, linear
animation = fadeOut, 1, 5, linear
animation = inputFieldDots, 1, 2, linear
}
background {
monitor =
path = screenshot
blur_passes = 3
}
input-field {
monitor =
size = 20%, 5%
outline_thickness = 3
inner_color = rgba(0, 0, 0, 0.0) # no fill
outer_color = rgba(33ccffee) rgba(00ff99ee) 45deg
check_color = rgba(00ff99ee) rgba(ff6633ee) 120deg
fail_color = rgba(ff6633ee) rgba(ff0066ee) 40deg
font_color = rgb(143, 143, 143)
fade_on_empty = false
rounding = 15
font_family = $font
placeholder_text = Input password...
fail_text = $PAMFAIL
# uncomment to use a letter instead of a dot to indicate the typed password
# dots_text_format = *
# dots_size = 0.4
dots_spacing = 0.3
# uncomment to use an input indicator that does not show the password length (similar to swaylock's input indicator)
# hide_input = true
position = 0, -20
halign = center
valign = center
}
# TIME
label {
monitor =
text = $TIME # ref. https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#variable-substitution
font_size = 90
font_family = $font
position = -30, 0
halign = right
valign = top
}
# DATE
label {
monitor =
text = cmd[update:60000] date +"%A, %d %B %Y" # update every 60 seconds
font_size = 25
font_family = $font
position = -30, -150
halign = right
valign = top
}
label {
monitor =
text = $LAYOUT[en,ru]
font_size = 24
onclick = hyprctl switchxkblayout all next
position = 250, -20
halign = center
valign = center
}

View File

@@ -1,4 +0,0 @@
preload = /home/szymon/Obrazy/tapety/sfw/forrest.png
wallpaper = ,/home/szymon/Obrazy/tapety/sfw/forrest.png
splash = off
ipc = on

View File

@@ -1,13 +0,0 @@
max-gamma = 150
profile {
time = 7:00
identity = true
}
profile {
time = 21:00
identity = false
temperature = 4500
gamma = 0.8
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,80 +0,0 @@
# vim:ft=kitty
## name: Catppuccin Kitty Mocha
## author: Catppuccin Org
## license: MIT
## upstream: https://github.com/catppuccin/kitty/blob/main/themes/mocha.conf
## blurb: Soothing pastel theme for the high-spirited!
# The basic colors
foreground #cdd6f4
background #1e1e2e
selection_foreground #1e1e2e
selection_background #f5e0dc
# Cursor colors
cursor #f5e0dc
cursor_text_color #1e1e2e
# URL underline color when hovering with mouse
url_color #f5e0dc
# Kitty window border colors
active_border_color #b4befe
inactive_border_color #6c7086
bell_border_color #f9e2af
# OS Window titlebar colors
wayland_titlebar_color system
macos_titlebar_color system
# Tab bar colors
active_tab_foreground #11111b
active_tab_background #cba6f7
inactive_tab_foreground #cdd6f4
inactive_tab_background #181825
tab_bar_background #11111b
# Colors for marks (marked text in the terminal)
mark1_foreground #1e1e2e
mark1_background #b4befe
mark2_foreground #1e1e2e
mark2_background #cba6f7
mark3_foreground #1e1e2e
mark3_background #74c7ec
# The 16 terminal colors
# black
color0 #45475a
color8 #585b70
# red
color1 #f38ba8
color9 #f38ba8
# green
color2 #a6e3a1
color10 #a6e3a1
# yellow
color3 #f9e2af
color11 #f9e2af
# blue
color4 #89b4fa
color12 #89b4fa
# magenta
color5 #f5c2e7
color13 #f5c2e7
# cyan
color6 #94e2d5
color14 #94e2d5
# white
color7 #bac2de
color15 #a6adc8

View File

@@ -1,80 +0,0 @@
# vim:ft=kitty
## name: Catppuccin Kitty Latte
## author: Catppuccin Org
## license: MIT
## upstream: https://github.com/catppuccin/kitty/blob/main/themes/latte.conf
## blurb: Soothing pastel theme for the high-spirited!
# The basic colors
foreground #3b3e55
background #e0e2e8
selection_foreground #eff1f5
selection_background #dc8a78
# Cursor colors
cursor #dc8a78
cursor_text_color #eff1f5
# URL underline color when hovering with mouse
url_color #dc8a78
# Kitty window border colors
active_border_color #7287fd
inactive_border_color #9ca0b0
bell_border_color #df8e1d
# OS Window titlebar colors
wayland_titlebar_color system
macos_titlebar_color system
# Tab bar colors
active_tab_foreground #eff1f5
active_tab_background #8839ef
inactive_tab_foreground #4c4f69
inactive_tab_background #9ca0b0
tab_bar_background #bcc0cc
# Colors for marks (marked text in the terminal)
mark1_foreground #eff1f5
mark1_background #7287fd
mark2_foreground #eff1f5
mark2_background #8839ef
mark3_foreground #eff1f5
mark3_background #209fb5
# The 16 terminal colors
# black
color0 #5c5f77
color8 #6c6f85
# red
color1 #d20f39
color9 #d20f39
# green
color2 #40a02b
color10 #40a02b
# yellow
color3 #df8e1d
color11 #df8e1d
# blue
color4 #1e66f5
color12 #1e66f5
# magenta
color5 #ea76cb
color13 #ea76cb
# cyan
color6 #179299
color14 #179299
# white
color7 #acb0be
color15 #bcc0cc

View File

@@ -1,79 +0,0 @@
################### File Generated by Goverlay ###################
legacy_layout=false
background_alpha=0.6
round_corners=10
background_alpha=0.6
background_color=000000
font_size=24
text_color=C0C0C0
position=top-right
no_display
hud_compact
pci_dev=0:03:00.0
table_columns=2
gpu_text=GPU
gpu_stats
gpu_voltage
gpu_core_clock
gpu_mem_clock
gpu_temp
gpu_mem_temp
gpu_fan
gpu_power
gpu_color=F1003B
cpu_text=CPU
cpu_stats
cpu_load_change
cpu_load_value=50,90
cpu_load_color=FFFFFF,FFAA7F,CC0000
cpu_mhz
cpu_temp
cpu_power
cpu_color=FA8000
io_stats
io_read
io_write
io_color=C0C0C0
vram
vram_color=F1003B
vram_color=F1003B
ram
ram_color=FA8000
fps
fps_metrics=avg,0.01
gpu_name
frame_timing
frametime_color=FA8000
fps_limit_method=late
toggle_fps_limit=Shift_L+F1
fps_limit=0
resolution
gamemode
custom_text=-
exec=cat /home/szymon/.config/goverlay/distro
custom_text=-
exec=uname -r
fps_color_change
fps_color=B22222,FDFD09,39F900
fps_value=30,60
#offset=0
output_folder=/home/szymon
log_duration=30
autostart_log=0
log_interval=100
toggle_logging=Shift_L+F2
blacklist=pamac-manager,lact,ghb,bitwig-studio,ptyxis,yumex

View File

@@ -1,49 +0,0 @@
[Added Associations]
application/x-extension-htm=zen-beta.desktop;zen.desktop;userapp-Zen-2KDM82.desktop;
application/x-extension-html=zen-beta.desktop;zen.desktop;userapp-Zen-2KDM82.desktop;
application/x-extension-shtml=zen-beta.desktop;zen.desktop;userapp-Zen-2KDM82.desktop;
application/x-extension-xht=zen-beta.desktop;zen.desktop;userapp-Zen-2KDM82.desktop;
application/x-extension-xhtml=zen-beta.desktop;zen.desktop;userapp-Zen-2KDM82.desktop;
application/xhtml+xml=zen-beta.desktop;zen.desktop;userapp-Zen-2KDM82.desktop;
image/png=feh-2.desktop;
text/html=zen-beta.desktop;zen.desktop;userapp-Zen-2KDM82.desktop;
x-scheme-handler/chrome=zen.desktop;userapp-Zen-2KDM82.desktop;zen-beta.desktop;
x-scheme-handler/http=zen.desktop;userapp-Zen-2KDM82.desktop;zen-beta.desktop;
x-scheme-handler/https=zen.desktop;userapp-Zen-2KDM82.desktop;zen-beta.desktop;
[Default Applications]
application/pdf=org.pwmt.zathura.desktop
application/x-extension-htm=zen.desktop
application/x-extension-html=zen.desktop
application/x-extension-shtml=zen.desktop
application/x-extension-xht=zen.desktop
application/x-extension-xhtml=zen.desktop
application/xhtml+xml=zen.desktop
audio/*=mpv.desktop
audio/aac=mpv.desktop
audio/flac=mpv.desktop
audio/hx-aac-adts=mpv.desktop
audio/mpeg=mpv.desktop
audio/ogg=mpv.desktop
audio/wav=mpv.desktop
audio/x-hx-aac-adts=mpv.desktop
image/*=org.kde.koko.desktop
image/bmp=feh.desktop
image/gif=org.kde.koko.desktop
image/jpeg=org.kde.koko.desktop
image/jpg=org.kde.koko.desktop
image/png=feh-2.desktop;
image/svg+xml=feh.desktop
image/webp=org.kde.koko.desktop
text/html=zen.desktop
x-scheme-handler/chrome=zen.desktop
x-scheme-handler/discord=vesktop.desktop
x-scheme-handler/freetube=FreeTube.desktop
x-scheme-handler/http=zen.desktop
x-scheme-handler/https=zen.desktop
x-scheme-handler/nxm=ModOrganizer-steamtinkerlaunch-dl.desktop
x-scheme-handler/nxm-protocol=ModOrganizer-steamtinkerlaunch-dl.desktop
x-scheme-handler/proton-inbox=Proton Mail.desktop
x-scheme-handler/sgnl=signal-desktop.desktop
x-scheme-handler/signalcaptcha=signal-desktop.desktop
x-scheme-handler/tuta=tutanota-desktop.desktop

View File

@@ -1,3 +0,0 @@
require("config.lazy")
require("config.set")
require("config.remaps")

View File

@@ -1,20 +0,0 @@
{
"LuaSnip": { "branch": "master", "commit": "dae4f5aaa3574bd0c2b9dd20fb9542a02c10471c" },
"catppuccin": { "branch": "main", "commit": "0a5de4da015a175f416d6ef1eda84661623e0500" },
"cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" },
"cmp-cmdline": { "branch": "main", "commit": "d126061b624e0af6c3a556428712dd4d4194ec6d" },
"cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" },
"cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" },
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
"gitsigns.nvim": { "branch": "main", "commit": "9f3c6dd7868bcc116e9c1c1929ce063b978fa519" },
"harpoon": { "branch": "harpoon2", "commit": "87b1a3506211538f460786c23f98ec63ad9af4e5" },
"lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "21c2a84ce368e99b18f52ab348c4c02c32c02fcf" },
"mason.nvim": { "branch": "main", "commit": "44d1e90e1f66e077268191e3ee9d2ac97cc18e65" },
"nvim-autopairs": { "branch": "master", "commit": "59bce2eef357189c3305e25bc6dd2d138c1683f5" },
"nvim-cmp": { "branch": "main", "commit": "da88697d7f45d16852c6b2769dc52387d1ddc45f" },
"nvim-lspconfig": { "branch": "master", "commit": "44acfe887d4056f704ccc4f17513ed41c9e2b2e6" },
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
"telescope.nvim": { "branch": "master", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
}

View File

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

View File

@@ -1,13 +0,0 @@
-- shift code --
vim.keymap.set('x', '>', ">gv", { desc = "Shift code right" })
vim.keymap.set('x', '<', "<gv", { desc = "Shift code left" })
-- lsp --
vim.keymap.set('n', '<leader>ca', vim.lsp.buf.code_action, { noremap = true, silent = true, desc = "Code action" })
vim.keymap.set('n', '<leader>cf', vim.lsp.buf.format, { desc = "Code format" })
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, { desc = "Go to definition" })
vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, { desc = "Go to implementation" })
vim.keymap.set('n', '<leader>r', vim.lsp.buf.rename, { desc = "Rename symbol" })

View File

@@ -1,34 +0,0 @@
-- Colorscheme --
vim.cmd.colorscheme "catppuccin-mocha"
-- Looks --
vim.opt.relativenumber = true
vim.opt.number = true
vim.opt.signcolumn = 'yes'
vim.opt.cursorline = false
vim.opt.list = true
vim.opt.wrap = true
vim.opt.shiftwidth = 4
vim.opt.tabstop = 4
vim.opt.expandtab = true
vim.opt.list = true
-- Highlight line yank --
vim.api.nvim_create_augroup("YankHighlight", { clear = true })
vim.api.nvim_create_autocmd("TextYankPost", {
group = "YankHighlight",
callback = function()
vim.highlight.on_yank({ higroup = "IncSearch", timeout = 200 })
end,
})
-- shared clipboard --
vim.opt.clipboard = "unnamedplus"
-- Language --
vim.opt.spell = true
vim.opt.spelllang = { 'pl', 'en' }
-- Telescope --
local builtin = require('telescope.builtin')
vim.keymap.set('n', '<leader>ff', builtin.find_files, { desc = 'Telescope find files' })
vim.keymap.set('n', '<leader>fg', builtin.git_files, { desc = 'Telescope find git files' })

View File

@@ -1,7 +0,0 @@
return {
'windwp/nvim-autopairs',
event = "InsertEnter",
config = true
-- use opts = {} for passing setup options
-- this is equivalent to setup({}) function
}

View File

@@ -1,5 +0,0 @@
return {
"catppuccin/nvim",
name = "catppuccin",
priority = 1000
}

View File

@@ -1,119 +0,0 @@
return {
"lewis6991/gitsigns.nvim",
config = function()
require('gitsigns').setup {
signs = {
add = { text = '┃' },
change = { text = '┃' },
delete = { text = '_' },
topdelete = { text = '‾' },
changedelete = { text = '~' },
untracked = { text = '┆' },
},
signs_staged = {
add = { text = '┃' },
change = { text = '┃' },
delete = { text = '_' },
topdelete = { text = '‾' },
changedelete = { text = '~' },
untracked = { text = '┆' },
},
signs_staged_enable = true,
signcolumn = true, -- Toggle with `:Gitsigns toggle_signs`
numhl = false, -- Toggle with `:Gitsigns toggle_numhl`
linehl = false, -- Toggle with `:Gitsigns toggle_linehl`
word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff`
watch_gitdir = {
follow_files = true
},
auto_attach = true,
attach_to_untracked = false,
current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame`
current_line_blame_opts = {
virt_text = true,
virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align'
delay = 1000,
ignore_whitespace = false,
virt_text_priority = 100,
use_focus = true,
},
current_line_blame_formatter = '<author>, <author_time:%R> - <summary>',
sign_priority = 6,
update_debounce = 100,
status_formatter = nil, -- Use default
max_file_length = 40000, -- Disable if file is longer than this (in lines)
preview_config = {
-- Options passed to nvim_open_win
style = 'minimal',
relative = 'cursor',
row = 0,
col = 1
},
on_attach = function(bufnr)
local gitsigns = require('gitsigns')
local function map(mode, l, r, opts)
opts = opts or {}
opts.buffer = bufnr
vim.keymap.set(mode, l, r, opts)
end
-- Navigation
map('n', ']c', function()
if vim.wo.diff then
vim.cmd.normal({ ']c', bang = true })
else
gitsigns.nav_hunk('next')
end
end)
map('n', '[c', function()
if vim.wo.diff then
vim.cmd.normal({ '[c', bang = true })
else
gitsigns.nav_hunk('prev')
end
end)
-- Actions
map('n', '<leader>hs', gitsigns.stage_hunk)
map('n', '<leader>hr', gitsigns.reset_hunk)
map('v', '<leader>hs', function()
gitsigns.stage_hunk({ vim.fn.line('.'), vim.fn.line('v') })
end)
map('v', '<leader>hr', function()
gitsigns.reset_hunk({ vim.fn.line('.'), vim.fn.line('v') })
end)
map('n', '<leader>hS', gitsigns.stage_buffer)
map('n', '<leader>hR', gitsigns.reset_buffer)
map('n', '<leader>hp', gitsigns.preview_hunk)
map('n', '<leader>hi', gitsigns.preview_hunk_inline)
map('n', '<leader>hb', function()
gitsigns.blame_line({ full = true })
end)
map('n', '<leader>hd', gitsigns.diffthis)
map('n', '<leader>hD', function()
gitsigns.diffthis('~')
end)
map('n', '<leader>hQ', function() gitsigns.setqflist('all') end)
map('n', '<leader>hq', gitsigns.setqflist)
-- Toggles
map('n', '<leader>tb', gitsigns.toggle_current_line_blame)
map('n', '<leader>tw', gitsigns.toggle_word_diff)
-- Text object
map({ 'o', 'x' }, 'ih', gitsigns.select_hunk)
end
}
end
}

View File

@@ -1,48 +0,0 @@
return {
"ThePrimeagen/harpoon",
branch = "harpoon2",
dependencies = { "nvim-lua/plenary.nvim" },
init = function()
local harpoon = require("harpoon")
-- REQUIRED
harpoon:setup()
-- REQUIRED
vim.keymap.set("n", "<leader>a", function() harpoon:list():add() end, { desc = "Add file to harpoon" })
vim.keymap.set("n", "<C-e>", function() harpoon.ui:toggle_quick_menu(harpoon:list()) end,
{ desc = "Toggle harpoon ui" })
vim.keymap.set("n", "<C-h>", function() harpoon:list():select(1) end)
vim.keymap.set("n", "<C-j>", function() harpoon:list():select(2) end)
vim.keymap.set("n", "<C-k>", function() harpoon:list():select(3) end)
vim.keymap.set("n", "<C-l>", function() harpoon:list():select(4) end)
-- Toggle previous & next buffers stored within Harpoon list
vim.keymap.set("n", "<C-S-P>", function() harpoon:list():prev() end,
{ desc = "Toggle next harpoon buffer" })
vim.keymap.set("n", "<C-S-N>", function() harpoon:list():next() end,
{ desc = "Toggle previous harpoon buffer" })
-- basic telescope configuration
local conf = require("telescope.config").values
local function toggle_telescope(harpoon_files)
local file_paths = {}
for _, item in ipairs(harpoon_files.items) do
table.insert(file_paths, item.value)
end
require("telescope.pickers").new({}, {
prompt_title = "Harpoon",
finder = require("telescope.finders").new_table({
results = file_paths,
}),
previewer = conf.file_previewer({}),
sorter = conf.generic_sorter({}),
}):find()
end
vim.keymap.set("n", "<C-e>", function() toggle_telescope(harpoon:list()) end,
{ desc = "Open harpoon window" })
end
}

View File

@@ -1,115 +0,0 @@
return {
'neovim/nvim-lspconfig',
lazy = false,
dependencies = {
{
"mason-org/mason.nvim",
opts = {
modifiable = true
}
},
{
"mason-org/mason-lspconfig.nvim",
opts = {},
},
'hrsh7th/cmp-nvim-lsp',
'hrsh7th/cmp-buffer',
'hrsh7th/cmp-path',
'hrsh7th/cmp-cmdline',
'hrsh7th/nvim-cmp',
'saadparwaiz1/cmp_luasnip',
{ "L3MON4D3/LuaSnip", build = "make install_jsregexp" },
},
config = function()
local cmp_lsp = require("cmp_nvim_lsp")
local cmp = require("cmp")
local cmp_select = { behavior = cmp.SelectBehavior.Select }
cmp.setup({
snippet = {
expand = function(args)
require("luasnip").lsp_expand(args.body)
end,
},
window = {
completion = cmp.config.window.bordered(),
documentation = cmp.config.window.bordered(),
},
mapping = cmp.mapping.preset.insert({
['<C-e>'] = cmp.mapping.abort(),
['<C-p>'] = cmp.mapping.select_prev_item(cmp_select),
['<C-n>'] = cmp.mapping.select_next_item(cmp_select),
['<C-y>'] = cmp.mapping.confirm({ select = true }),
}),
sources = cmp.config.sources({
{ name = 'nvim_lsp' },
{ name = 'luasnip' },
},
{
{ name = 'buffer' },
})
})
local capabilities = vim.tbl_deep_extend(
"force",
{},
vim.lsp.protocol.make_client_capabilities(),
cmp_lsp.default_capabilities()
)
vim.diagnostic.config({
virtual_text = {
prefix = "●",
spacing = 2,
source = "if_many",
},
signs = true,
underline = true,
update_in_insert = false
})
require("mason-lspconfig").setup({
ensure_installed = {
"lua_ls",
"clangd",
"rust_analyzer"
},
handlers = {
function(server_name)
require("lspconfig")[server_name].setup({
capabilities = capabilities,
})
end
},
automatic_enable = true,
})
local buffer_autoformat = function(bufnr)
local group = 'lsp_autoformat'
vim.api.nvim_create_augroup(group, { clear = false })
vim.api.nvim_clear_autocmds({ group = group, buffer = bufnr })
vim.api.nvim_create_autocmd('BufWritePre', {
buffer = bufnr,
group = group,
desc = "Lsp format on save",
callback = function()
vim.lsp.buf.format({ async = false, timeout_ms = 10000 })
end
})
end
vim.api.nvim_create_autocmd('LspAttach', {
callback = function(event)
local id = vim.tbl_get(event, 'data', 'client_id')
local client = id and vim.lsp.get_client_by_id(id)
if client == nil then
return
end
if client.supports_method('textDocument/formatting') then
buffer_autoformat(event.buf)
end
end
})
end,
}

View File

@@ -1,5 +0,0 @@
return {
'nvim-telescope/telescope.nvim',
tag = '0.1.8',
dependencies = { 'nvim-lua/plenary.nvim' }
}

View File

@@ -1,18 +0,0 @@
return {
"folke/which-key.nvim",
event = "VeryLazy",
opts = {
-- your configuration comes here
-- or leave it empty to use the default settings
-- refer to the configuration section below
},
keys = {
{
"<leader>?",
function()
require("which-key").show({ global = false })
end,
desc = "Buffer Local Keymaps (which-key)",
},
},
}

Binary file not shown.

Binary file not shown.

521
flake.lock generated
View File

@@ -1,5 +1,38 @@
{ {
"nodes": { "nodes": {
"aquamarine": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"hyprwayland-scanner": [
"hyprland",
"hyprwayland-scanner"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1771610171,
"narHash": "sha256-+DeInuhbm6a6PpHDNUS7pozDouq2+8xSDefoNaZLW0E=",
"owner": "hyprwm",
"repo": "aquamarine",
"rev": "7f9eb087703ec4acc6b288d02fa9ea3db803cd3d",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "aquamarine",
"type": "github"
}
},
"catppuccin": { "catppuccin": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs"
@@ -18,6 +51,22 @@
"type": "github" "type": "github"
} }
}, },
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1767039857,
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
"owner": "NixOS",
"repo": "flake-compat",
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": { "flake-parts": {
"inputs": { "inputs": {
"nixpkgs-lib": [ "nixpkgs-lib": [
@@ -39,6 +88,28 @@
"type": "github" "type": "github"
} }
}, },
"gitignore": {
"inputs": {
"nixpkgs": [
"hyprland",
"pre-commit-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"home-manager": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -46,11 +117,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1771683283, "lastModified": 1772060133,
"narHash": "sha256-WxAEkAbo8dP7qiyPM6VN4ZGAxfuBVlNBNPkrqkrXVEc=", "narHash": "sha256-VuyRptb8v1lVGMlLp4/1vRX3Efwec0CN0S6mKmDPzLg=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "c6ed3eab64d23520bcbb858aa53fe2b533725d4a", "rev": "ce9b6e52500a0ea0ec48f0bbf6d7a3e431d9dfa4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -59,6 +130,325 @@
"type": "github" "type": "github"
} }
}, },
"hyprcursor": {
"inputs": {
"hyprlang": [
"hyprland",
"hyprlang"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1753964049,
"narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=",
"owner": "hyprwm",
"repo": "hyprcursor",
"rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprcursor",
"type": "github"
}
},
"hyprgraphics": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1770511807,
"narHash": "sha256-suKmSbSk34uPOJDTg/GbPrKEJutzK08vj0VoTvAFBCA=",
"owner": "hyprwm",
"repo": "hyprgraphics",
"rev": "7c75487edd43a71b61adb01cae8326d277aab683",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprgraphics",
"type": "github"
}
},
"hyprland": {
"inputs": {
"aquamarine": "aquamarine",
"hyprcursor": "hyprcursor",
"hyprgraphics": "hyprgraphics",
"hyprland-guiutils": "hyprland-guiutils",
"hyprland-protocols": "hyprland-protocols",
"hyprlang": "hyprlang",
"hyprutils": "hyprutils",
"hyprwayland-scanner": "hyprwayland-scanner",
"hyprwire": "hyprwire",
"nixpkgs": "nixpkgs_2",
"pre-commit-hooks": "pre-commit-hooks",
"systems": "systems",
"xdph": "xdph"
},
"locked": {
"lastModified": 1772107319,
"narHash": "sha256-qdeeNrWmUe1P2FsnNU1ngoZl8UxczEMJBziwm78V42I=",
"owner": "hyprwm",
"repo": "Hyprland",
"rev": "c71fbd854dfdedaae011f4b8b1fdb81f8054b309",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "Hyprland",
"type": "github"
}
},
"hyprland-guiutils": {
"inputs": {
"aquamarine": [
"hyprland",
"aquamarine"
],
"hyprgraphics": [
"hyprland",
"hyprgraphics"
],
"hyprlang": [
"hyprland",
"hyprlang"
],
"hyprtoolkit": "hyprtoolkit",
"hyprutils": [
"hyprland",
"hyprutils"
],
"hyprwayland-scanner": [
"hyprland",
"hyprwayland-scanner"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1767023960,
"narHash": "sha256-R2HgtVS1G3KSIKAQ77aOZ+Q0HituOmPgXW9nBNkpp3Q=",
"owner": "hyprwm",
"repo": "hyprland-guiutils",
"rev": "c2e906261142f5dd1ee0bfc44abba23e2754c660",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-guiutils",
"type": "github"
}
},
"hyprland-protocols": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1765214753,
"narHash": "sha256-P9zdGXOzToJJgu5sVjv7oeOGPIIwrd9hAUAP3PsmBBs=",
"owner": "hyprwm",
"repo": "hyprland-protocols",
"rev": "3f3860b869014c00e8b9e0528c7b4ddc335c21ab",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-protocols",
"type": "github"
}
},
"hyprlang": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1771866172,
"narHash": "sha256-fYFoXhQLrm1rD8vSFKQBOEX4OGCuJdLt1amKfHd5GAw=",
"owner": "hyprwm",
"repo": "hyprlang",
"rev": "0b219224910e7642eb0ed49f0db5ec3d008e3e41",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprlang",
"type": "github"
}
},
"hyprtoolkit": {
"inputs": {
"aquamarine": [
"hyprland",
"hyprland-guiutils",
"aquamarine"
],
"hyprgraphics": [
"hyprland",
"hyprland-guiutils",
"hyprgraphics"
],
"hyprlang": [
"hyprland",
"hyprland-guiutils",
"hyprlang"
],
"hyprutils": [
"hyprland",
"hyprland-guiutils",
"hyprutils"
],
"hyprwayland-scanner": [
"hyprland",
"hyprland-guiutils",
"hyprwayland-scanner"
],
"nixpkgs": [
"hyprland",
"hyprland-guiutils",
"nixpkgs"
],
"systems": [
"hyprland",
"hyprland-guiutils",
"systems"
]
},
"locked": {
"lastModified": 1764592794,
"narHash": "sha256-7CcO+wbTJ1L1NBQHierHzheQGPWwkIQug/w+fhTAVuU=",
"owner": "hyprwm",
"repo": "hyprtoolkit",
"rev": "5cfe0743f0e608e1462972303778d8a0859ee63e",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprtoolkit",
"type": "github"
}
},
"hyprutils": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1771271487,
"narHash": "sha256-41gEiUS0Pyw3L/ge1l8MXn61cK14VAhgWB/JV8s/oNI=",
"owner": "hyprwm",
"repo": "hyprutils",
"rev": "340a792e3b3d482c4ae5f66d27a9096bdee6d76d",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprutils",
"type": "github"
}
},
"hyprwayland-scanner": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1770501770,
"narHash": "sha256-NWRM6+YxTRv+bT9yvlhhJ2iLae1B1pNH3mAL5wi2rlQ=",
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"rev": "0bd8b6cde9ec27d48aad9e5b4deefb3746909d40",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"type": "github"
}
},
"hyprwire": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1771606233,
"narHash": "sha256-F3PLUqQ/TwgR70U+UeOqJnihJZ2EuunzojYC4g5xHr0=",
"owner": "hyprwm",
"repo": "hyprwire",
"rev": "06c7f1f8c4194786c8400653c4efc49dc14c0f3a",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprwire",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1771369470, "lastModified": 1771369470,
@@ -77,11 +467,27 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1771369470, "lastModified": 1771848320,
"narHash": "sha256-0NBlEBKkN3lufyvFegY4TYv5mCNHbi5OmBDrzihbBMQ=", "narHash": "sha256-0MAd+0mun3K/Ns8JATeHT1sX28faLII5hVLq0L3BdZU=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "2fc6539b481e1d2569f25f8799236694180c0993",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1771848320,
"narHash": "sha256-0MAd+0mun3K/Ns8JATeHT1sX28faLII5hVLq0L3BdZU=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "0182a361324364ae3f436a63005877674cf45efb", "rev": "2fc6539b481e1d2569f25f8799236694180c0993",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -97,7 +503,7 @@
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
"systems": "systems" "systems": "systems_2"
}, },
"locked": { "locked": {
"lastModified": 1771135771, "lastModified": 1771135771,
@@ -113,15 +519,55 @@
"type": "github" "type": "github"
} }
}, },
"pre-commit-hooks": {
"inputs": {
"flake-compat": "flake-compat",
"gitignore": "gitignore",
"nixpkgs": [
"hyprland",
"nixpkgs"
]
},
"locked": {
"lastModified": 1771858127,
"narHash": "sha256-Gtre9YoYl3n25tJH2AoSdjuwcqij5CPxL3U3xysYD08=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "49bbbfc218bf3856dfa631cead3b052d78248b83",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"catppuccin": "catppuccin", "catppuccin": "catppuccin",
"home-manager": "home-manager", "home-manager": "home-manager",
"nixpkgs": "nixpkgs_2", "hyprland": "hyprland",
"nixvim": "nixvim" "nixpkgs": "nixpkgs_3",
"nixvim": "nixvim",
"wallpapers": "wallpapers"
} }
}, },
"systems": { "systems": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"systems_2": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
@@ -135,6 +581,63 @@
"repo": "default", "repo": "default",
"type": "github" "type": "github"
} }
},
"wallpapers": {
"flake": false,
"locked": {
"lastModified": 1762937381,
"narHash": "sha256-N+MZHSRcwOldS5Ai8B3YfKquKs9oeUW/GkV1iKM5+i8=",
"owner": "orangci",
"repo": "walls-catppuccin-mocha",
"rev": "7bfdf10d16ad3a689f9f0cf3a0930da3d1a245a8",
"type": "github"
},
"original": {
"owner": "orangci",
"repo": "walls-catppuccin-mocha",
"type": "github"
}
},
"xdph": {
"inputs": {
"hyprland-protocols": [
"hyprland",
"hyprland-protocols"
],
"hyprlang": [
"hyprland",
"hyprlang"
],
"hyprutils": [
"hyprland",
"hyprutils"
],
"hyprwayland-scanner": [
"hyprland",
"hyprwayland-scanner"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1761431178,
"narHash": "sha256-xzjC1CV3+wpUQKNF+GnadnkeGUCJX+vgaWIZsnz9tzI=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"rev": "4b8801228ff958d028f588f0c2b911dbf32297f9",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"type": "github"
}
} }
}, },
"root": "root", "root": "root",

View File

@@ -2,12 +2,19 @@
description = "Home manager config"; description = "Home manager config";
inputs = { inputs = {
hyprland.url = "github:hyprwm/Hyprland";
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
home-manager = { home-manager = {
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
catppuccin.url = "github:catppuccin/nix"; catppuccin.url = "github:catppuccin/nix";
wallpapers = {
url = "github:orangci/walls-catppuccin-mocha";
flake = false;
};
nixvim = { nixvim = {
url = "github:nix-community/nixvim"; url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
@@ -20,21 +27,43 @@
home-manager, home-manager,
catppuccin, catppuccin,
nixvim, nixvim,
wallpapers,
... ...
}: }@inputs:
let let
username = "szymon"; userConfig = {
# for git username = "szymon";
email = "szymon_jozef@proton.me"; # for git
full_name = "Szymon P"; email = "szymon_jozef@proton.me";
fullName = "Szymon P";
# your public ssh key
signingKey = "~/.ssh/github.pub";
mainMonitor = "LVDS-1"; # only for some applications: you still need to set hyprland monitors yourself!
statusBar = "ashell"; # available: ashell|waybar
pathConfig = {
wallpaper = "Obrazy/tapety/catppuccin";
screenshot = "Obrazy/zrzuty/";
obsidian = "Dokumenty/obsidian";
};
};
system = "x86_64-linux";
in in
{ {
homeConfigurations = { homeConfigurations = {
"arch" = home-manager.lib.homeManagerConfiguration { "arch" = home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs { system = "x86_64-linux"; }; pkgs = import nixpkgs {
inherit system;
config.allowUnfree = true;
};
extraSpecialArgs = { extraSpecialArgs = {
inherit username email full_name; inherit
inputs
userConfig
;
isNixOS = false; isNixOS = false;
}; };
modules = [ modules = [
@@ -45,15 +74,21 @@
}; };
"nixos" = home-manager.lib.homeManagerConfiguration { "nixos" = home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs { system = "x86_64-linux"; }; pkgs = import nixpkgs {
inherit system;
config.allowUnfree = true;
};
extraSpecialArgs = { extraSpecialArgs = {
inherit username email full_name; inherit
inputs
userConfig
;
isNixOS = true; isNixOS = true;
}; };
modules = [ modules = [
./home.nix ./home.nix
catppuccin.homeModules.catppuccin catppuccin.homeModules.catppuccin
nixvim.homeManagerModules.nixvim nixvim.homeModules.nixvim
]; ];
}; };
}; };

View File

@@ -1,12 +1,13 @@
{ {
pkgs, pkgs,
username, inputs,
userConfig,
... ...
}: }:
{ {
home.username = username; home.username = userConfig.username;
home.homeDirectory = "/home/${username}"; home.homeDirectory = "/home/${userConfig.username}";
nix = { nix = {
package = pkgs.nix; package = pkgs.nix;
@@ -28,6 +29,7 @@
./modules/packages.nix ./modules/packages.nix
./modules/xdg.nix ./modules/xdg.nix
./modules/desktop.nix ./modules/desktop.nix
./modules/gtk.nix
# cli tools # cli tools
./modules/cli/fish.nix ./modules/cli/fish.nix
./modules/cli/nixvim.nix ./modules/cli/nixvim.nix
@@ -39,11 +41,14 @@
./modules/cli/bat.nix ./modules/cli/bat.nix
./modules/cli/git.nix ./modules/cli/git.nix
./modules/cli/fastfetch.nix ./modules/cli/fastfetch.nix
./modules/cli/kdeconnect.nix
# gui tools # gui tools
./modules/gui/kitty.nix ./modules/gui/kitty.nix
./modules/gui/satty.nix ./modules/gui/satty.nix
./modules/gui/mako.nix ./modules/gui/mako.nix
./modules/gui/mangohud.nix ./modules/gui/mangohud.nix
./modules/gui/browsers.nix
./modules/gui/obsidian.nix
# status bars # status bars
./modules/bars/ashell.nix ./modules/bars/ashell.nix
./modules/bars/waybar.nix ./modules/bars/waybar.nix
@@ -53,21 +58,15 @@
./modules/hypr/hypridle.nix ./modules/hypr/hypridle.nix
./modules/hypr/hyprlock.nix ./modules/hypr/hyprlock.nix
./modules/hypr/hyprsunset.nix ./modules/hypr/hyprsunset.nix
./modules/hypr/hyprtoolkit.nix
]; ];
# === SCRIPTS IMPORT === # === SCRIPTS IMPORT ===
home.file = { home.file = {
".local/bin".source = ./scripts; ".local/bin".source = ./scripts;
}; ".config/gtk-3.0/colors.css".source = ./dotfiles/gtk-3.0/colors.css;
".config/gtk-3.0/gtk.css".source = ./dotfiles/gtk-3.0/gtk.css;
gtk.enable = true; ${userConfig.pathConfig.wallpaper}.source = inputs.wallpapers;
dconf = {
enable = true;
settings = {
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
};
};
}; };
# === VARS === # === VARS ===
@@ -75,6 +74,7 @@
home.sessionVariables = { home.sessionVariables = {
EDITOR = "nvim"; EDITOR = "nvim";
VISUAL = "nvim"; VISUAL = "nvim";
XDG_DATA_DIRS = "$HOME/.nix-profile/share/applications:$XDG_DATA_DIRS";
}; };
programs.home-manager.enable = true; programs.home-manager.enable = true;

0
install_nix_and_home_manager_on_arch.sh Normal file → Executable file
View File

View File

@@ -1,4 +1,10 @@
{ lib, isNixOS, ... }: {
lib,
isNixOS,
userConfig,
pkgs,
...
}:
{ {
programs.ashell = { programs.ashell = {
@@ -6,7 +12,7 @@
package = lib.mkIf (!isNixOS) null; package = lib.mkIf (!isNixOS) null;
settings = { settings = {
outputs = { outputs = {
Targets = [ "DP-1" ]; Targets = [ userConfig.mainMonitor ];
}; };
position = "Bottom"; position = "Bottom";
modules = { modules = {
@@ -21,12 +27,46 @@
"MediaPlayer" "MediaPlayer"
"SystemInfo" "SystemInfo"
[ [
"CustomNotifications"
"Tray" "Tray"
"Settings" "Settings"
] ]
]; ];
}; };
CustomModule = [
{
name = "CustomNotifications";
icon = "";
command = "${pkgs.writeShellScript "dnd-toggle" ''
if makoctl mode | grep -q do-not-disturb; then
makoctl mode -r do-not-disturb > /dev/null
else
makoctl mode -a do-not-disturb > /dev/null
fi
pkill -USR1 -f dnd-check
''}";
listen_cmd = "${pkgs.writeShellScript "dnd-check" ''
print_state() {
if makoctl mode | grep -q do-not-disturb; then
echo '{"alt":"dnd"}'
else
echo '{"alt":"none"}'
fi
}
trap print_state USR1
print_state
while true; do
sleep infinity & wait $!
done
''}";
icons.dnd = "";
}
];
clock = { clock = {
format = "%H:%M | %e.%m "; format = "%H:%M | %e.%m ";
}; };

View File

@@ -1,6 +1,7 @@
{ {
pkgs, pkgs,
isNixOS, isNixOS,
userConfig,
... ...
}: }:
@@ -22,9 +23,7 @@
reload_style_on_change = true; reload_style_on_change = true;
width = 70; width = 70;
output = [ output = [
"DP-1" userConfig.mainMonitor
"eDP-1"
"LVDS-1"
]; ];
modules-left = [ modules-left = [

View File

@@ -3,105 +3,115 @@
{ {
programs.fish = { programs.fish = {
enable = true; enable = true;
loginShellInit = '' loginShellInit = # fish
fish_add_path --move --prepend --path "$HOME/.nix-profile/bin" /nix/var/nix/profiles/default/bin /run/current-system/sw/bin ''
''; fish_add_path --move --prepend --path "$HOME/.nix-profile/bin" /nix/var/nix/profiles/default/bin /run/current-system/sw/bin
'';
interactiveShellInit = '' interactiveShellInit = # fish
# no dum greeting ''
set fish_greeting "" # no dum greeting
set fish_greeting ""
set -gx GPG_TTY (tty) set -gx GPG_TTY (tty)
fish_vi_key_bindings fish_vi_key_bindings
fastfetch --config ~/.config/fastfetch/startup.jsonc fastfetch --config ~/.config/fastfetch/startup.jsonc
''; '';
functions = { functions = {
edit_dotfile = { edit_dotfile = {
description = "Edit config file, reload, commit and push"; description = "Edit config file, reload, commit and push";
body = '' body = # fish
set -l config_dir "$HOME/.config/home-manager" ''
set -l file set -l config_dir "$HOME/.config/home-manager"
set -l file
if test (count $argv) -gt 0 if test (count $argv) -gt 0
set file $argv[1] set file $argv[1]
else else
set file (fd . $config_dir --type f --exclude ".git" | fzf) set file (fd . $config_dir --type f --exclude ".git" | fzf)
end end
if test -n "$file" if test -n "$file"
set -l md5_before (md5sum $file) set -l md5_before (md5sum $file)
pushd $config_dir pushd $config_dir
nvim $file nvim $file
if test "$md5_before" != (md5sum $file) if test "$md5_before" != (md5sum $file)
echo "Changes made. Preparing commit..." echo "Changes made. Preparing commit..."
set -l rel_file (realpath --relative-to=$config_dir $file) set -l rel_file (realpath --relative-to=$config_dir $file)
if home-manager switch --flake "$config_dir#${ if nh home switch $config_dir -c ${if isNixOS then "nixos" else "arch"}
if isNixOS then "nixos" else "arch" git add -A
}" -b backup set commit_msg "update: $rel_file"
git add -A git commit -m "$commit_msg"
set commit_msg "update: $rel_file" git push
git commit -m "$commit_msg" end
git push else
end echo "No changes made"
else end
echo "No changes made" popd
end end
popd '';
end };
'';
reload_dotfiles = {
body = # fish
"nh home switch ~/.config/home-manager -c ${if isNixOS then "nixos" else "arch"}";
}; };
ls = { ls = {
body = "eza --long --icons --group-directories-first --git $argv"; body = # fish
"eza --long --icons --group-directories-first --git $argv";
}; };
lst = { lst = {
body = "eza --long --icons --color --git --tree $argv"; body = # fish
"eza --long --icons --color --git --tree $argv";
}; };
cp_mail = { cp_mail = {
body = "pandoc $argv -t html |wl-copy -t text/html"; body = # fish
"pandoc $argv -t html |wl-copy -t text/html";
}; };
update = { update = {
body = '' body = # fish
echo "===System update===" ''
echo "===System update==="
if not type -q yay if not type -q yay
echo "Yay not found… Is this Arch? If yes, then please consider installing it!" echo "Yay not found… Is this Arch? If yes, then please consider installing it!"
else else
yay yay
end end
if type -q pacman if type -q pacman
echo "===Remove orphans===" echo "===Remove orphans==="
set orphans (pacman -Qtdq) set orphans (pacman -Qtdq)
if test (count $orphans) -gt 0 if test (count $orphans) -gt 0
sudo pacman -Rns $orphans sudo pacman -Rns $orphans
end end
end end
if type -q flatpak if type -q flatpak
echo "===Flatpak update===" echo "===Flatpak update==="
flatpak update --noninteractive flatpak update --noninteractive
echo "===Flatpak remove unused===" echo "===Flatpak remove unused==="
flatpak uninstall --unused flatpak uninstall --unused
end end
if type -q nix-channel if type -q nix-channel
echo "===Nix update===" echo "===Nix update==="
nix-channel --update nix-channel --update
echo "===Nix garbage collection===" echo "===Nix garbage collection==="
home-manager expire-generations "-7 days" home-manager expire-generations "-7 days"
end end
''; '';
}; };
rm = { rm = {

View File

@@ -1,7 +1,6 @@
{ {
pkgs, pkgs,
full_name, userConfig,
email,
... ...
}: }:
@@ -14,17 +13,25 @@
enable = true; enable = true;
settings = { settings = {
user = { user = {
name = full_name; name = userConfig.fullName;
email = email; email = userConfig.email;
}; };
init.defaultBranch = "master"; init.defaultBranch = "master";
push.autoSetupRemote = true; push.autoSetupRemote = true;
core.editor = "nvim";
gpg.ssh.allowedSignersFile = "~/.ssh/allowed_signers";
pull.rebase = false;
merge.tool = "nvimdiff";
mergetool.prompt = false;
mergetool.keepBackup = false;
}; };
signing = { signing = {
key = email; key = userConfig.signingKey;
signByDefault = true; signByDefault = true;
format = "ssh";
}; };
ignores = [ ignores = [
@@ -38,6 +45,15 @@
}; };
programs.gh = {
enable = true;
settings.git_protocol = "ssh";
};
home.file.".ssh/allowed_signers".text = ''
${userConfig.email} ${userConfig.signingKey}
'';
programs.delta = { programs.delta = {
enable = true; enable = true;
enableGitIntegration = true; enableGitIntegration = true;

View File

@@ -0,0 +1,8 @@
{ ... }:
{
services.kdeconnect = {
enable = true;
indicator = true;
};
}

View File

@@ -177,6 +177,8 @@
}; };
# nix # nix
nil_ls.enable = true; nil_ls.enable = true;
# other
marksman.enable = true;
}; };
keymaps = { keymaps = {
lspBuf = { lspBuf = {

View File

@@ -1,4 +1,4 @@
{ username, ... }: { userConfig, ... }:
{ {
services.ssh-agent.enable = true; services.ssh-agent.enable = true;
@@ -10,13 +10,13 @@
matchBlocks = { matchBlocks = {
"dmowski" = { "dmowski" = {
hostname = "192.168.0.30"; hostname = "192.168.0.30";
user = username; user = userConfig.username;
port = 22; port = 22;
identityFile = "~/.ssh/dmowski"; identityFile = "~/.ssh/dmowski";
}; };
"aur.archlinux.org" = { "aur.archlinux.org" = {
user = username; user = userConfig.username;
identityFile = "~/.ssh/aur"; identityFile = "~/.ssh/aur";
}; };

View File

@@ -1,31 +1,44 @@
{ ... }: { ... }:
{ let
xdg.desktopEntries = { mkWebApp =
x = { {
name = "X"; name,
genericName = "Social Media Client"; url,
comment = "Open X (twitter)"; icon,
exec = "uwsm app -- chromium --app=https://x.com"; wmClass,
icon = "twitter"; }:
{
inherit name icon;
genericName = "Web app";
comment = "Open ${name}";
exec = "uwsm app -- brave --app=https://${url}";
terminal = false; terminal = false;
categories = [ categories = [
"Network" "Network"
"WebBrowser" "WebBrowser"
"X-Social" "X-Social"
]; ];
settings = {
StartupWMClass = wmClass;
};
};
in
{
xdg.desktopEntries = {
x = mkWebApp {
name = "X";
url = "x.com";
icon = "twitter";
wmClass = "brave-x.com__-Default";
}; };
proton-mail = { proton-mail = mkWebApp {
name = "Proton mail"; name = "Proton-mail";
genericName = "Proton mail"; url = "mail.proton.me/u/0/inbox.com";
comment = "Open Proton Mail"; icon = "proton-mail";
exec = "uwsm app -- chromium --app=https://mail.proton.me/u/0/inbox.com"; wmClass = "brave-mail.proton.me__u_0_inbox.com-Default";
terminal = false;
categories = [ "Email" ];
settings = {
StartupWMClass = "proton-mail.com";
};
}; };
}; };
} }

17
modules/gtk.nix Normal file
View File

@@ -0,0 +1,17 @@
{ ... }:
{
gtk = {
enable = true;
colorScheme = "dark";
};
dconf = {
enable = true;
settings = {
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
};
};
};
}

8
modules/gui/browsers.nix Normal file
View File

@@ -0,0 +1,8 @@
{ isNixOS, lib, ... }:
{
programs.chromium = {
enable = true;
package = lib.mkIf (!isNixOS) null;
};
}

View File

@@ -1,4 +1,4 @@
{ ... }: { isNixOS, pkgs, ... }:
{ {
services.mako = { services.mako = {
@@ -20,7 +20,11 @@
border-color = "#89b4fa"; border-color = "#89b4fa";
progress-color = "over #313244"; progress-color = "over #313244";
output = "DP-1"; output = "DP-1";
on-notify = "exec paplay /usr/share/sounds/freedesktop/stereo/dialog-information.oga"; on-notify =
if isNixOS then
"exec ${pkgs.pulseaudio}/bin/paplay ${pkgs.sound-theme-freedesktop}/share/sounds/freedesktop/stereo/dialog-information.oga"
else
"exec paplay /usr/share/sounds/freedesktop/stereo/dialog-information.oga";
}; };
extraConfig = '' extraConfig = ''
@@ -31,7 +35,12 @@
border-color=#FF6347 border-color=#FF6347
[urgency=critical] [urgency=critical]
on-notify=exec paplay /usr/share/sounds/freedesktop/stereo/window-attention.oga on-notify=${
if isNixOS then
"exec ${pkgs.pulseaudio}/bin/paplay ${pkgs.sound-theme-freedesktop}/share/sounds/freedesktop/stereo/dialog-information.oga"
else
"exec paplay /usr/share/sounds/freedesktop/stereo/dialog-information.oga"
}
border-color=#FF0000 border-color=#FF0000
[mode=do-not-disturb] [mode=do-not-disturb]

View File

@@ -0,0 +1,21 @@
{
stdenv,
fetchFromGitHub,
}:
stdenv.mkDerivation {
pname = "obsidian-catppuccin";
version = "main";
src = fetchFromGitHub {
owner = "catppuccin";
repo = "obsidian";
rev = "main";
hash = "sha256-sN5k263geOtJ1mOCQGM8UdmA/71OhBI5NRwGxJwd80E=";
};
installPhase = ''
mkdir -p $out
cp theme.css manifest.json $out/
'';
}

65
modules/gui/obsidian.nix Normal file
View File

@@ -0,0 +1,65 @@
{
isNixOS,
lib,
pkgs,
userConfig,
...
}:
{
programs.obsidian = {
enable = true;
package = lib.mkIf (!isNixOS) null;
defaultSettings = {
app = {
vimMode = true;
alwaysUpdateLinks = true;
attachmentFolderPath = "media";
newLinkFormat = "relative";
newFileLocation = "current";
useMarkdownLinks = true;
showUnsupportedFiles = true;
pdfExportSettings = {
pageSize = "A4";
landscape = false;
margin = "0";
downscalePercent = 100;
};
};
themes = [
(pkgs.callPackage ./obsidian-catppuccin.nix { })
];
corePlugins = [
"file-explorer"
"global-search"
"switcher"
"graph"
"backlink"
"canvas"
"outgoing-link"
"tag-pane"
"page-preview"
"note-composer"
"command-palette"
"editor-status"
"bookmarks"
"outline"
"word-count"
"bases"
];
};
vaults = {
"Notatki-szkolne" = {
target = "${userConfig.pathConfig.obsidian}/notatki-szkolne";
};
"Studia" = {
target = "${userConfig.pathConfig.obsidian}/ZUT-notatki";
};
};
};
}

View File

@@ -1,7 +1,7 @@
{ {
lib, lib,
isNixOS, isNixOS,
username, userConfig,
... ...
}: }:
@@ -14,7 +14,7 @@
fullscreen = true; fullscreen = true;
early-exit = true; early-exit = true;
initial-tool = "crop"; initial-tool = "crop";
output-filename = "/home/${username}/Obrazy/zrzuty/%d-%m-%Y_%H:%M:%S.png"; output-filename = "/home/${userConfig.username}/Obrazy/zrzuty/%d-%m-%Y_%H:%M:%S.png";
save-after-copy = true; save-after-copy = true;
copy-command = "wl-copy"; copy-command = "wl-copy";
disable-notifications = false; disable-notifications = false;

View File

@@ -1,9 +1,36 @@
{ isNixOS, lib, ... }: {
isNixOS,
lib,
userConfig,
inputs,
pkgs,
...
}:
let
exe = pkg: bin: if isNixOS then "${pkg}/bin/${bin}" else "/usr/bin/${bin}";
jq = exe pkgs.jq "jq";
grim = exe pkgs.grim "grim";
satty = exe pkgs.satty "satty";
wl_copy = exe pkgs.wl-clipboard "wl-copy";
notify_send = exe pkgs.libnotify "notify-send";
xdg-desktop-portal-hyprland =
if isNixOS then
"${pkgs.xdg-desktop-portal-hyprland}/libexec/xdg-desktop-portal-hyprland"
else
"/usr/lib/xdg-desktop-portal-hyprland";
hyprlock = exe pkgs.hyprlock "hyprlock";
playerctl = exe pkgs.playerctl "playerctl";
in
{ {
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
enable = true; enable = true;
package = lib.mkIf (!isNixOS) null; package =
if isNixOS then inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland else null;
portalPackage = lib.mkIf (
isNixOS
) inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
xwayland.enable = true;
settings = { settings = {
"$mainMod" = "SUPER"; "$mainMod" = "SUPER";
@@ -29,7 +56,7 @@
"col.inactive_border" = "$overlay1"; "col.inactive_border" = "$overlay1";
resize_on_border = false; resize_on_border = false;
allow_tearing = false; allow_tearing = false;
layout = "dwindle"; layout = "scrolling";
}; };
animations = { animations = {
@@ -96,9 +123,9 @@
}; };
permission = [ permission = [
".*(grim), screencopy, allow" "^${grim}$, screencopy, allow"
".*(hyprlock), screencopy, allow" "^${hyprlock}$, screencopy, allow"
".*(xdg-desktop-portal-hyprland), screencopy, allow" "^${xdg-desktop-portal-hyprland}$, screencopy, allow"
]; ];
input = { input = {
@@ -140,8 +167,7 @@
"exec-once" = [ "exec-once" = [
"wl-paste --type text --watch cliphist store" "wl-paste --type text --watch cliphist store"
"wl-paste --type image --watch cliphist store" "wl-paste --type image --watch cliphist store"
"uwsm app -- kdeconnect-indicator" "uwsm app -- ${userConfig.statusBar}"
"uwsm app -- ashell"
"swww-daemon" "swww-daemon"
"openrgb -c $openrgb_color" "openrgb -c $openrgb_color"
]; ];
@@ -173,7 +199,7 @@
"match:class ^(zen)$, workspace 2" "match:class ^(zen)$, workspace 2"
"match:class ^(com.github.IsmaelMartinez.teams_for_linux)$, workspace 2" "match:class ^(com.github.IsmaelMartinez.teams_for_linux)$, workspace 2"
"match:class ^(FreeTube)$, workspace 2" "match:class ^(FreeTube)$, workspace 2"
"match:class ^(chrome-x.com__-Default)$, workspace 2" "match:class ^(brave-x.com__-Default)$, workspace 2"
"match:class ^(chrome-www.inoreader.com__all_articles-Default)$, workspace 2" "match:class ^(chrome-www.inoreader.com__all_articles-Default)$, workspace 2"
"match:class ^(chrome-mail.proton.me__u_0_inbox.com-Default)$, workspace 2" "match:class ^(chrome-mail.proton.me__u_0_inbox.com-Default)$, workspace 2"
"match:class ^(chrome-app.tuta.com__-Default)$, workspace 2" "match:class ^(chrome-app.tuta.com__-Default)$, workspace 2"
@@ -261,7 +287,7 @@
"$mainMod Control_L, m, exec, [workspace 9] uwsm app -- $music_player" "$mainMod Control_L, m, exec, [workspace 9] uwsm app -- $music_player"
"$mainMod Control_L, f, exec, uwsm app -- freetube" "$mainMod Control_L, f, exec, uwsm app -- freetube"
"$mainMod Control_L, f, focuswindow, class:^(freetube)$" "$mainMod Control_L, f, focuswindow, class:^(freetube)$"
"$mainMod Control_L, x, exec, uwsm app -- ~/.local/share/applications/x.desktop" "$mainMod Control_L, x, exec, uwsm app -- ~/.nix-profile/share/applications/x.desktop"
"$mainMod Control_L, x, focuswindow, class:^(chrome-x.com__-Default)$" "$mainMod Control_L, x, focuswindow, class:^(chrome-x.com__-Default)$"
"$mainMod CONTROL_L L_SHIFT, B, exec, killall ashell && uwsm app -- ashell" "$mainMod CONTROL_L L_SHIFT, B, exec, killall ashell && uwsm app -- ashell"
]; ];
@@ -283,19 +309,36 @@
", XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle" ", XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle"
]; ];
bindl = [
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_SINK@ toggle && ~/.local/bin/check-if-muted.sh"
", XF86AudioNext, exec, playerctl next"
", Pause, exec, playerctl play-pause"
"$mainMod, Pause, exec, playerctl play-pause --player spotify"
", XF86AudioPlay, exec, playerctl play-pause"
", XF86AudioPrev, exec, playerctl previous"
];
bindt = [ bindt = [
", PRINT, exec, ~/.local/bin/screenshot.sh region" ", PRINT, exec, ${pkgs.writeShellScript "screenshot-region" ''
"$mainMod, PRINT, exec, ~/.local/bin/screenshot.sh fullscreen" MONITOR=$(hyprctl monitors -j | ${jq} -r '.[] | select(.focused == true) | .name')
"alt_l, PRINT, exec, ~/.local/bin/screenshot.sh window" ${grim} -o "$MONITOR" - | ${satty} -f -
''}"
"$mainMod, PRINT, exec, ${pkgs.writeShellScript "screenshot-fullscreen" ''
target_path="$HOME/${userConfig.pathConfig.screenshot}/$(date +'%d-%m-%Y_%H-%M-%S').png"
mkdir -p "$(dirname "$target_path")"
MONITOR=$(hyprctl monitors -j | ${jq} -r '.[] | select(.focused == true) | .name')
${grim} -o "$MONITOR" "$target_path"
${wl_copy} < "$target_path"
${notify_send} -i "$target_path" -u low -a "Screenshot" "Screenshot fullscreen" "Saved and copied"
''}"
"alt_l, PRINT, exec, ${pkgs.writeShellScript "screenshot-window" ''
target_path="$HOME/${userConfig.pathConfig.screenshot}/$(date +'%d-%m-%Y_%H-%M-%S').png"
mkdir -p "$(dirname "$target_path")"
GEOMETRY=$(hyprctl activewindow -j | ${jq} -r '"\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"')
${grim} -g "$GEOMETRY" "$target_path"
${wl_copy} < "$target_path"
${notify_send} -i "$target_path" -u low -a "Screenshot" "Screenshot window" "Saved and copied"
''}"
", PAUSE, exec, ${playerctl} play-pause"
"$mainMod, PAUSE, exec, ${playerctl} play-pause --player spotify"
]; ];
bindm = [ bindm = [

View File

@@ -22,7 +22,7 @@
identity = true; identity = true;
} }
{ {
time = "21:00"; time = "21:30";
identity = false; identity = false;
temperature = 4500; temperature = 4500;
gamma = 0.8; gamma = 0.8;

View File

@@ -0,0 +1,14 @@
{ ... }:
{
# TO BE CHANGED WHEN NIX CONFIG OF THIS FILE WILL RELEASE!!!!
xdg.configFile."hypr/hyprtoolkit.conf".text = ''
background=0xff11111b
base=0xff1e1e2e
alternate_base=0xff181825
text=0xffcdd6f4
bright_text=0xffbac2de
accent=0xffcba6f7
accent_secondary=0xffb4befe
'';
}

View File

@@ -2,6 +2,9 @@
{ {
home.packages = with pkgs; [ home.packages = with pkgs; [
waypaper
swww
gnupg
libnotify libnotify
cliphist cliphist
gh gh

View File

@@ -1,5 +1,13 @@
{ ... }: { ... }:
let
browserFallback = [
"zen-beta.desktop"
"zen.desktop"
"brave.desktop"
"chromium.desktop"
];
in
{ {
xdg.portal.config = { xdg.portal.config = {
common = { common = {
@@ -15,16 +23,16 @@
defaultApplications = { defaultApplications = {
"application/pdf" = [ "org.pwmt.zathura.desktop" ]; "application/pdf" = [ "org.pwmt.zathura.desktop" ];
"text/html" = [ "zen.desktop" ]; "text/html" = browserFallback;
"application/xhtml+xml" = [ "zen.desktop" ]; "application/xhtml+xml" = browserFallback;
"x-scheme-handler/http" = [ "zen.desktop" ]; "x-scheme-handler/http" = browserFallback;
"x-scheme-handler/https" = [ "zen.desktop" ]; "x-scheme-handler/https" = browserFallback;
"x-scheme-handler/chrome" = [ "zen.desktop" ]; "x-scheme-handler/chrome" = browserFallback;
"application/x-extension-htm" = [ "zen.desktop" ]; "application/x-extension-htm" = browserFallback;
"application/x-extension-html" = [ "zen.desktop" ]; "application/x-extension-html" = browserFallback;
"application/x-extension-shtml" = [ "zen.desktop" ]; "application/x-extension-shtml" = browserFallback;
"application/x-extension-xht" = [ "zen.desktop" ]; "application/x-extension-xht" = browserFallback;
"application/x-extension-xhtml" = [ "zen.desktop" ]; "application/x-extension-xhtml" = browserFallback;
"audio/*" = [ "mpv.desktop" ]; "audio/*" = [ "mpv.desktop" ];
"audio/mpeg" = [ "mpv.desktop" ]; "audio/mpeg" = [ "mpv.desktop" ];
@@ -39,4 +47,17 @@
"x-scheme-handler/tuta" = [ "tutanota-desktop.desktop" ]; "x-scheme-handler/tuta" = [ "tutanota-desktop.desktop" ];
}; };
}; };
xdg.userDirs = {
enable = true;
createDirectories = true;
desktop = null;
documents = "$HOME/Dokumenty";
download = "$HOME/Pobrane";
music = null;
pictures = "$HOME/Obrazy";
videos = "$HOME/Video";
templates = null;
publicShare = null;
};
} }

View File

@@ -1,28 +0,0 @@
#!/usr/bin/env bash
disturbed=$(makoctl mode | grep -i do-not-disturb) > /dev/null
mute_icon=""
unmute_icon="🕭"
case $1 in
"show")
if [[ $disturbed == "" ]]; then
echo "$unmute_icon"
else
echo "$mute_icon"
fi
;;
"change")
if [[ $disturbed == "" ]]; then
makoctl mode -a do-not-disturb > /dev/null
echo "$unmute_icon"
else
makoctl mode -r do-not-disturb > /dev/null
echo "$mute_icon"
fi
pkill -SIGRTMIN+2 waybar
;;
*)
echo "Arguments are: show, change"
;;
esac

View File

@@ -1,9 +0,0 @@
#!/usr/bin/env bash
MUTED=$(wpctl get-volume @DEFAULT_AUDIO_SINK@ | grep -iq muted; echo $?)
if [[ $MUTED -eq 0 ]]; then
notify-send "Audio muted" -a 'wp-vol' -t 1000
else
notify-send "Audio unmuted" -a 'wp-vol' -t 1000
fi

View File

@@ -1,7 +0,0 @@
#!/usr/bin/env bash
killall -q waybar
while pgrep -x waybar >/dev/null; do sleep 1; done
uwsm app waybar

View File

@@ -1,50 +0,0 @@
#!/usr/bin/env bash
# variables
## path vars
date="$(date +'%d-%m-%Y_%H:%M:%S')"
fname="$date.png"
target_path="$HOME/Obrazy/zrzuty/$fname"
## stdout
error_wrong_type="The first argument needs to be \"fullscreen\", \"window\" or \"region\". Exiting..."
notification_succes="$target_path saved and copied"
# validate input
case "$1" in
"fullscreen" | "window" | "region")
type=$1
;;
*)
echo "$error_wrong_type"
exit
;;
esac
notification() {
notify-send -i "$target_path" -u low -a "Screenshot" "Screenshot $type" "$notification_succes"
}
case $type in
"fullscreen")
grim -o $(hyprctl monitors -j | jq -r '.[] | select(.focused == true) | .name') "$target_path"
wl-copy < "$target_path"
notification
;;
"window")
active_window_position="$(hyprctl clients -j | jq -r '.[] | select(.focusHistoryID == 0) | .at')"
active_window_size="$(hyprctl clients -j | jq -r '.[] | select(.focusHistoryID == 0) | .size')"
x=$(echo "$active_window_position" | jq '.[0]')
y=$(echo "$active_window_position" | jq '.[1]')
width=$(echo "$active_window_size" | jq '.[0]')
height=$(echo "$active_window_size" | jq '.[1]')
grim -g "${x},${y} ${width}x${height}" "$target_path"
wl-copy < "$target_path"
notification
;;
"region")
grim -o $(hyprctl monitors -j | jq -r '.[] | select(.focused == true) | .name') - | satty -f -
;;
esac

Binary file not shown.