Compare commits

...

11 Commits

Author SHA1 Message Date
bgrolleman d874988a3e Add my noctalia setup config 2026-05-07 08:58:26 +02:00
bgrolleman c9a260c319 Add my niri config for CachyOS 2026-05-07 08:56:34 +02:00
bgrolleman 841f5af000 Tweak picom 2025-12-04 23:50:43 +01:00
bgrolleman df6c213cfd Fix a few syntax errors 2025-12-04 20:35:20 +01:00
bgrolleman 0f939f03a8 Commit old changes 2025-12-04 20:31:21 +01:00
bgrolleman 3575d4c0c1 Add i3 workspace 2025-12-04 20:30:50 +01:00
bgrolleman 97e4275dc4 Update i3 2025-12-04 20:30:39 +01:00
bgrolleman 999411251c Vim movement ftw 2025-06-21 08:36:03 +02:00
bgrolleman 4c06d7ccd4 Movement keys to vim keys 2025-06-15 23:08:48 +02:00
bgrolleman 02bdf43a40 Update setup for picom 2025-06-14 09:20:18 +02:00
bgrolleman 8f0d75f685 Adding picom 2025-06-14 09:19:15 +02:00
45 changed files with 1909 additions and 93 deletions
+7
View File
@@ -8,6 +8,7 @@
- git - git
- tmux - tmux
- kitty - kitty
- zoxide
- name: Install i3 packages - name: Install i3 packages
become: true become: true
@@ -21,6 +22,7 @@
- playerctl - playerctl
- blueman - blueman
- pavucontrol - pavucontrol
- picom
- name: Development Environment - name: Development Environment
become: true become: true
@@ -44,3 +46,8 @@
args: args:
creates: /usr/bin/brave-browser creates: /usr/bin/brave-browser
- name: Streamdeck
community.general.flatpak:
name: com.core447.StreamController
state: present
method: user
+49 -56
View File
@@ -1,26 +1,21 @@
# This file has been auto-generated by i3-config-wizard(1). # Personal i3 Configuration
# It will not be overwritten, so edit it as you like. # Bas Grolleman
#
# Should you change your keyboard layout some time, delete
# this file and re-run i3-config-wizard(1).
#
# i3 config file (v4) # Some reason system boots wrong resolution
# exec --no-startup-id ~/bin/set_display_ultrawide
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
# Alt # t
set $mod Mod1 set $mod Mod1
# Win # Win
set $win Mod4 set $win Mod4
# Font for window titles. Will also be used by the bar unless a different font # Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below. # is used in the bar {} block below.
font pango:monospace 8 #font pango:monospace 8
# This font is widely installed, provides lots of unicode glyphs, right-to-left # This font is widely installed, provides lots of unicode glyphs, right-to-left
# text rendering and scalability on retina/hidpi displays (thanks to pango). # text rendering and scalability on retina/hidpi displays (thanks to pango).
#font pango:DejaVu Sans Mono 8 font pango:DejaVu Sans Mono 8
# Start XDG autostart .desktop files using dex. See also # Start XDG autostart .desktop files using dex. See also
# https://wiki.archlinux.org/index.php/XDG_Autostart # https://wiki.archlinux.org/index.php/XDG_Autostart
@@ -31,7 +26,7 @@ exec --no-startup-id dex --autostart --environment i3
# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the # xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
# screen before suspend. Use loginctl lock-session to lock your screen. # screen before suspend. Use loginctl lock-session to lock your screen.
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork #exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork -i ~/Documents/Resources/Backgrounds/51202139522_fbf4788f42_o.png
# NetworkManager is the most popular way to manage wireless networks on Linux, # NetworkManager is the most popular way to manage wireless networks on Linux,
# and nm-applet is a desktop environment-independent system tray GUI for it. # and nm-applet is a desktop environment-independent system tray GUI for it.
@@ -54,6 +49,8 @@ floating_modifier $mod
# start a terminal # start a terminal
bindsym $mod+Return exec kitty bindsym $mod+Return exec kitty
bindsym $win+e exec /usr/bin/nautilus /home/bgrolleman
bindsym $win+b exec /opt/helium/helium
# kill focused window # kill focused window
bindsym $mod+Shift+q kill bindsym $mod+Shift+q kill
@@ -62,62 +59,45 @@ bindsym $mod+Shift+q kill
#bindsym $mod+d exec --no-startup-id dmenu_run #bindsym $mod+d exec --no-startup-id dmenu_run
# A more modern dmenu replacement is rofi: # A more modern dmenu replacement is rofi:
bindcode $win+65 exec "rofi -modi drun,run -show drun" bindcode $win+65 exec "rofi -modi drun,run -show drun"
bindcode $mod+65 exec "rofi -show window" #bindcode $mod+65 exec "rofi -show window"
#bindcode $win+v exec 'rofi -modi "clipboard:greenclip print" -show clipboard -run-command "{cmd}"'
# There also is i3-dmenu-desktop which only displays applications shipping a # There also is i3-dmenu-desktop which only displays applications shipping a
# .desktop file. It is a wrapper around dmenu, so you need that installed. # .desktop file. It is a wrapper around dmenu, so you need that installed.
# bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop # bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop
bindsym $win+l exec "i3lock -i ~/Documents/Resources/Backgrounds/51202139522_fbf4788f42_o.png" #bindsym $win+l exec "i3lock -i ~/Documents/Resources/Backgrounds/51202139522_fbf4788f42_o.png"
#bindsym $win+l exec "/usr/bin/gdmflexiserver"
bindsym $win+$mod+q exec "/usr/bin/gdmflexiserver"
# change focus # change focus
bindsym $mod+j focus left bindsym $mod+h focus left
bindsym $mod+k focus down bindsym $mod+j focus down
bindsym $mod+l focus up bindsym $mod+k focus up
bindsym $mod+semicolon focus right bindsym $mod+l focus right
# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# move focused window # move focused window
bindsym $mod+Shift+j move left bindsym $mod+Shift+h move left
bindsym $mod+Shift+k move down bindsym $mod+Shift+j move down
bindsym $mod+Shift+l move up bindsym $mod+Shift+k move up
bindsym $mod+Shift+semicolon move right bindsym $mod+Shift+l move right
# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# split in horizontal orientation # split in horizontal orientation
bindsym $mod+h split h bindsym $mod+semicolon split h
# split in vertical orientation
bindsym $mod+v split v
# enter fullscreen mode for the focused container # enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle bindsym $mod+f fullscreen toggle
bindsym $mod+y floating enable; resize set 55ppt 95ppt; move position center
# change container layout (stacked, tabbed, toggle split) # change container layout (stacked, tabbed, toggle split)
bindsym $mod+s layout stacking #bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed #bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split #bindsym $mod+e layout toggle split
# toggle tiling / floating # toggle tiling / floating
bindsym $mod+Shift+space floating toggle bindsym $mod+space floating toggle
# change focus between tiling / floating windows # change focus between tiling / floating windows
#bindsym $mod+space focus mode_toggle #bindsym $mod+space focus mode_toggle
# focus the parent container
bindsym $mod+a focus parent
# focus the child container
#bindsym $mod+d focus child
# Define names for default workspaces for which we configure key bindings later on. # Define names for default workspaces for which we configure key bindings later on.
# We use variables to avoid repeating the names in multiple places. # We use variables to avoid repeating the names in multiple places.
set $ws1 "1" set $ws1 "1"
@@ -170,10 +150,10 @@ mode "resize" {
# Pressing right will grow the windows width. # Pressing right will grow the windows width.
# Pressing up will shrink the windows height. # Pressing up will shrink the windows height.
# Pressing down will grow the windows height. # Pressing down will grow the windows height.
bindsym j resize shrink width 10 px or 10 ppt bindsym h resize shrink width 10 px or 10 ppt
bindsym k resize grow height 10 px or 10 ppt bindsym j resize grow height 10 px or 10 ppt
bindsym l resize shrink height 10 px or 10 ppt bindsym k resize shrink height 10 px or 10 ppt
bindsym semicolon resize grow width 10 px or 10 ppt bindsym l resize grow width 10 px or 10 ppt
# same bindings, but for the arrow keys # same bindings, but for the arrow keys
bindsym Left resize shrink width 10 px or 10 ppt bindsym Left resize shrink width 10 px or 10 ppt
@@ -188,16 +168,29 @@ mode "resize" {
} }
bindsym $mod+r mode "resize" bindsym $mod+r mode "resize"
bindsym $mod+Right resize grow width 30px
bindsym $mod+Left resize shrink width 30px
exec_always --no-startup-id $HOME/.config/polybar/launch.sh exec_always --no-startup-id $HOME/.config/polybar/launch.sh
default_border normal 5px default_border pixel 3px
smart_borders on
# This needs a newer verison of i3 then I have on my desktop right now # This needs a newer verison of i3 then I have on my desktop right now
#gaps inner 5px gaps inner 5px
# Turn off my screen after 10 min of in-activity # Turn off my screen after 10 min of in-activity
exec --no-startup-id xset dpms 600 exec --no-startup-id xset dpms 600
exec --no-startup-id /usr/bin/blueman-applet exec --no-startup-id /usr/bin/blueman-applet
exec --no-startup-id nitrogen --restore exec --no-startup-id nitrogen --restore
exec --no-startup-id greenclip deamon
exec --no-startup-id flatpak run com.core447.StreamController -b
exec --no-startup-id picom
exec --no-startup-id ~/bin/stack-v5.3.1-20240731-x86_64.AppImage
bindsym $win+period exec flatpak run it.mijorus.smile
#exec --no-startup-id i3-msg "workspace 6; append_layout ~/.config/i3/workspace-6.json"
client.focused #ffff00 #ffff00 #000000 #ffff00 #ffff00
bindcode $win+. exec flatpak run it.mijorus.smile
+29 -28
View File
@@ -1,48 +1,49 @@
// vim:ts=4:sw=4:et // vim:ts=4:sw=4:et
{ {
// splith split container with 3 children "name": "Todoist",
"border": "normal", "percent": 0.15,
"floating": "auto_off",
"layout": "splith",
"marks": [],
"percent": 1,
"type": "con",
"nodes": [
{
"border": "none",
"current_border_width": 5,
"floating": "user_off",
"marks": [],
"name": "Todoist - Today Todoist",
"percent": 0.20,
"swallows": [ "swallows": [
{ {
"instance": "^crx_knaiokfnmjjldlfhlioejgcompgenfhb$" "instance": "^crx_knaiokfnmjjldlfhlioejgcompgenfhb$"
} }
], ],
"type": "con" "type": "con"
}, }
{ {
"border": "normal", "name": "Brave",
"current_border_width": 2,
"floating": "user_off",
"marks": [],
"name": "i3: Layout saving in i3 - Brave",
"percent": 0.60, "percent": 0.60,
"swallows": [ "swallows": [
{ {
"instance": "^brave\\-browser$" "class": "^Brave\\-browser$",
"instance": "^brave\\-browser$",
"window_role": "^browser$"
}
],
"type": "con"
}
{
// splitv split container with 2 children
"border": "pixel",
"floating": "auto_off",
"layout": "splitv",
"percent": 0.35,
"type": "con",
"nodes": [
{
"name": "Logseq",
"percent": 0.5,
"swallows": [
{
"class": "^Logseq$"
} }
], ],
"type": "con" "type": "con"
}, },
{ {
"border": "normal", "name": "Terminal",
"current_border_width": 5, "percent": 0.5,
"floating": "auto_off",
"marks": [],
"name": "bgrolleman@laura: ~",
"percent": 0.20,
"swallows": [ "swallows": [
{ {
"class": "^kitty$" "class": "^kitty$"
+53
View File
@@ -0,0 +1,53 @@
// vim:ts=4:sw=4:et
{
"marks": [],
"name": "YouTube Music",
"percent": 0.25,
"swallows": [
{
"class": "^Brave\\-browser$",
"instance": "^crx_cinhimbnkkaeohfgghhklpknlkffjgod$",
"title": "^YouTube\\ Music$"
}
],
"type": "con"
}
{
"marks": [],
"name": "WhatsApp Web",
"percent": 0.25,
"swallows": [
{
"class": "^Brave\\-browser$",
"instance": "^crx_hnpfjngllnobngcgfapefoaidbinmjnm$",
"title": "^WhatsApp\\ Web$"
}
],
"type": "con"
}
{
"marks": [],
"name": "WhatsApp Web",
"percent": 0.25,
"swallows": [
{
"class": "^Brave\\-browser$",
"instance": "^crx_hnpfjngllnobngcgfapefoaidbinmjnm$"
}
],
"type": "con"
}
{
"marks": [],
"name": "Friends - Discord",
"percent": 0.25,
"swallows": [
{
"class": "^discord$"
}
],
"type": "con"
}
+10
View File
@@ -0,0 +1,10 @@
#!/bin/sh
i3-msg "workspace 1; append_layout ~/.config/i3/workspace-1.json"
sleep 0.5
/usr/bin/brave-browser &
sleep 0.5
/usr/bin/kitty &
sleep 0.5
flatpak run com.logseq.Logseq &
sleep 0.5
gtk-launch "brave-knaiokfnmjjldlfhlioejgcompgenfhb-Default.desktop" &
+32
View File
@@ -0,0 +1,32 @@
animations {
workspace-switch {
spring damping-ratio=1.0 stiffness=1000 epsilon=0.0001
}
window-open {
duration-ms 200
curve "ease-out-quad"
}
window-close {
duration-ms 200
curve "ease-out-cubic"
}
horizontal-view-movement {
spring damping-ratio=1.0 stiffness=900 epsilon=0.0001
}
window-movement {
spring damping-ratio=1.0 stiffness=800 epsilon=0.0001
}
window-resize {
spring damping-ratio=1.0 stiffness=1000 epsilon=0.0001
}
config-notification-open-close {
spring damping-ratio=0.6 stiffness=1200 epsilon=0.001
}
screenshot-ui-open {
duration-ms 300
curve "ease-out-quad"
}
overview-open-close {
spring damping-ratio=1.0 stiffness=900 epsilon=0.0001
}
}
+4
View File
@@ -0,0 +1,4 @@
// ────────────── Startup Applications ──────────────
// https://github.com/YaLTeR/niri/wiki/Configuration:-Miscellaneous#spawn-sh-at-startup
spawn-sh-at-startup "qs -c noctalia-shell"
+9
View File
@@ -0,0 +1,9 @@
// ────────────── Output Configuration ──────────────
// You can run `niri msg outputs` to get the correct name for your displays.
// You will have to remove "/-" and edit it before it takes effect.
// https://github.com/YaLTeR/niri/wiki/Configuration:-Outputs
/- output "DP-1" {
mode "2560x1440@359.979" // Set resolution and refresh rate
scale 1 // No scaling (use 2 for HiDPI)
}
+31
View File
@@ -0,0 +1,31 @@
// ────────────── Input Configuration ──────────────
// https://github.com/YaLTeR/niri/wiki/Configuration:-Input
input {
keyboard {
xkb {
//If you want to overwrite your keyboard layout,
// uncomment the line below and change the layout accordingly.
//layout "us" // Use the American keyboard layout
}
numlock // Enable numlock on startup
}
touchpad {
//tap // Enable tap-to-click
dwt
scroll-method "two-finger"
tap-button-map "left-right-middle"
natural-scroll // Enable natural (macOS-style) scrolling
}
mouse {
// If you want to disable Mouse Acceleration,
// uncomment the lines below.
//accel-profile "flat"
//accel-speed 0.0
}
//focus-follows-mouse // Automatically focus windows under the mouse pointer
//workspace-auto-back-and-forth // Enable workspace back & forth switching
}
+139
View File
@@ -0,0 +1,139 @@
binds {
// ────────────── Keybindings ──────────────
// https://github.com/YaLTeR/niri/wiki/Configuration:-Key-Bindings
// ─── noctalia-shell keybinds ───
// https://docs.noctalia.dev/getting-started/keybinds/
Mod+Shift+ESCAPE { show-hotkey-overlay; }
Mod+Shift+S { spawn-sh "flameshot gui"; }
// ─── Applications ───
Mod+Return hotkey-overlay-title="Open Terminal: Alacritty" { spawn "alacritty"; }
Mod+CTRL+Return hotkey-overlay-title="Open App Launcher: noctalia launcher" { spawn-sh "qs -c noctalia-shell ipc call launcher toggle"; }
Mod+Space hotkey-overlay-title="Open App Launcher: noctalia launcher" { spawn-sh "qs -c noctalia-shell ipc call launcher toggle"; }
Mod+B hotkey-overlay-title="Open Browser: helium" { spawn "helium-browser"; }
Mod+ALT+L hotkey-overlay-title="Lock Screen: noctalia lock" { spawn-sh "qs -c noctalia-shell ipc call lockScreen lock"; }
Mod+Shift+Q hotkey-overlay-title="Session Menu: noctalia sessionMenu" { spawn-sh "qs -c noctalia-shell ipc call sessionMenu toggle"; }
// Please choose your own file manager.
Mod+E hotkey-overlay-title="File Manager: Nautilus" { spawn "nautilus"; }
// ─── Media Controls ───
XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call volume increase"; }
XF86AudioLowerVolume allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call volume decrease"; }
XF86AudioMute allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call volume muteOutput"; }
XF86AudioMicMute allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call volume muteInput"; }
XF86AudioNext allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call media next"; }
XF86AudioPrev allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call media previous"; }
XF86AudioPlay allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call media playPause"; }
XF86AudioPause allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call media playPause"; }
// ─── Brightness Controls ───
XF86MonBrightnessUp allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call brightness increase"; }
XF86MonBrightnessDown allow-when-locked=true { spawn-sh "qs -c noctalia-shell ipc call brightness decrease"; }
// ─── Window Movement and Focus ───
Mod+Q { close-window; }
Mod+Left { focus-column-left; }
Mod+H { focus-column-left; }
Mod+Right { focus-column-right; }
Mod+L { focus-column-right; }
Mod+Up { focus-window-up; }
Mod+K { focus-window-up; }
Mod+Down { focus-window-down; }
Mod+J { focus-window-down; }
Mod+CTRL+Left { move-column-left; }
Mod+CTRL+H { move-column-left; }
Mod+CTRL+Right { move-column-right; }
Mod+CTRL+L { move-column-right; }
Mod+CTRL+UP { move-window-up; }
Mod+CTRL+K { move-window-up; }
Mod+CTRL+Down { move-window-down; }
Mod+CTRL+J { move-window-down; }
Mod+Home { focus-column-first; }
Mod+End { focus-column-last; }
Mod+CTRL+Home { move-column-to-first; }
Mod+CTRL+End { move-column-to-last; }
Mod+Shift+Left { focus-monitor-left; }
Mod+Shift+Right { focus-monitor-right; }
Mod+Shift+UP { focus-monitor-up; }
Mod+Shift+Down { focus-monitor-down; }
Mod+Shift+CTRL+Left { move-column-to-monitor-left; }
Mod+Shift+CTRL+Right { move-column-to-monitor-right; }
Mod+Shift+CTRL+UP { move-column-to-monitor-up; }
Mod+Shift+CTRL+Down { move-column-to-monitor-down; }
// ─── Workspace Switching ───
Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
Mod+CTRL+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; }
Mod+CTRL+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; }
Mod+WheelScrollRight { focus-column-right; }
Mod+WheelScrollLeft { focus-column-left; }
Mod+CTRL+WheelScrollRight { move-column-right; }
Mod+CTRL+WheelScrollLeft { move-column-left; }
Mod+Shift+WheelScrollDown { focus-column-right; }
Mod+Shift+WheelScrollUp { focus-column-left; }
Mod+CTRL+Shift+WheelScrollDown { move-column-right; }
Mod+CTRL+Shift+WheelScrollUp { move-column-left; }
Alt+1 { focus-workspace 1; }
Alt+2 { focus-workspace 2; }
Alt+3 { focus-workspace 3; }
Alt+4 { focus-workspace 4; }
Alt+5 { focus-workspace 5; }
Alt+6 { focus-workspace 6; }
Alt+7 { focus-workspace 7; }
Alt+8 { focus-workspace 8; }
Alt+9 { focus-workspace 9; }
Alt+Shift+1 { move-column-to-workspace 1; }
Alt+Shift+2 { move-column-to-workspace 2; }
Alt+Shift+3 { move-column-to-workspace 3; }
Alt+Shift+4 { move-column-to-workspace 4; }
Alt+Shift+5 { move-column-to-workspace 5; }
Alt+Shift+6 { move-column-to-workspace 6; }
Alt+Shift+7 { move-column-to-workspace 7; }
Alt+Shift+8 { move-column-to-workspace 8; }
Alt+Shift+9 { move-column-to-workspace 9; }
Mod+TAB { focus-workspace-previous; }
// ─── Layout Controls ───
Mod+CTRL+F { expand-column-to-available-width; }
Mod+C { center-column; }
Mod+CTRL+C { center-visible-columns; }
Mod+Minus { set-column-width "-10%"; }
Mod+Equal { set-column-width "+10%"; }
Mod+Shift+Minus { set-window-height "-10%"; }
Mod+Shift+Equal { set-window-height "+10%"; }
// ─── Modes ───
Mod+T { toggle-window-floating; }
Mod+F { fullscreen-window; }
Mod+W { toggle-column-tabbed-display; }
// ─── Screenshots ───
CTRL+Shift+1 { screenshot; }
CTRL+Shift+2 { screenshot-screen; }
CTRL+Shift+3 { screenshot-window; }
// ─── Emergency Escape Key ───
// Use this when a fullscreen app blocks your keybinds.
// It disables any active keyboard shortcut inhibitor, restoring control.
Mod+ESCAPE allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
// ─── Exit / Power ───
CTRL+ALT+Delete { quit; } // Also quits Niri
Mod+Shift+P { power-off-monitors; } // Turn off screens (useful for OLED or privacy)
Mod+O repeat=false { toggle-overview; }
}
+17
View File
@@ -0,0 +1,17 @@
layout {
gaps 16 // Gap between windows
center-focused-column "always" // Dont auto-center focused column
background-color "transparent" // <- needed for noctalia-shell to set wallpaper
//default-column-width { proportion 0.95; }
default-column-width { proportion 0.40; }
preset-column-widths {
proportion 0.33333
proportion 0.5
proportion 0.66667
}
struts {}
}
+25
View File
@@ -0,0 +1,25 @@
prefer-no-csd
screenshot-path null
environment {
ELECTRON_OZONE_PLATFORM_HINT "auto"
QT_QPA_PLATFORM "wayland"
QT_QPA_PLATFORMTHEME "gtk3"
QT_WAYLAND_DISABLE_WINDOWDECORATION "1"
XDG_CURRENT_DESKTOP "niri"
XDG_SESSION_TYPE "wayland"
}
cursor {
xcursor-theme "capitaine-cursors"
xcursor-size 24
}
debug {
// Allows notification actions and window activation from Noctalia.
honor-xdg-activation-with-invalid-serial
}
hotkey-overlay {
skip-at-startup
}
+22
View File
@@ -0,0 +1,22 @@
window-rule {
geometry-corner-radius 5 // Set every window radius to 20
clip-to-geometry true
}
// if you use steam you will probably like these
window-rule {
match app-id="steam"
exclude title=r#"^[Ss]team$"#
open-floating true
}
window-rule {
match app-id="steam" title=r#"^notificationtoasts_\d+_desktop$"#
default-floating-position x=10 y=10 relative-to="bottom-right"
open-focused false
}
layer-rule {
match namespace="^noctalia-wallpaper*"
place-within-backdrop true
}
+8
View File
@@ -0,0 +1,8 @@
include "./cfg/animation.kdl"
include "./cfg/autostart.kdl"
include "./cfg/keybinds.kdl"
include "./cfg/input.kdl"
include "./cfg/display.kdl"
include "./cfg/layout.kdl"
include "./cfg/rules.kdl"
include "./cfg/misc.kdl"
+18
View File
@@ -0,0 +1,18 @@
{
"mError": "#f38ba8",
"mHover": "#94e2d5",
"mOnError": "#11111b",
"mOnHover": "#11111b",
"mOnPrimary": "#11111b",
"mOnSecondary": "#11111b",
"mOnSurface": "#cdd6f4",
"mOnSurfaceVariant": "#a3b4eb",
"mOnTertiary": "#11111b",
"mOutline": "#4c4f69",
"mPrimary": "#cba6f7",
"mSecondary": "#fab387",
"mShadow": "#11111b",
"mSurface": "#1e1e2e",
"mSurfaceVariant": "#313244",
"mTertiary": "#94e2d5"
}
+16
View File
@@ -0,0 +1,16 @@
{
"sources": [
{
"enabled": true,
"name": "Noctalia Plugins",
"url": "https://github.com/noctalia-dev/noctalia-plugins"
}
],
"states": {
"polkit-agent": {
"enabled": true,
"sourceUrl": "https://github.com/noctalia-dev/noctalia-plugins"
}
},
"version": 2
}
+50
View File
@@ -0,0 +1,50 @@
import QtQuick.Layouts
import QtQuick.Controls
import QtQuick.Effects
import QtQuick
import Quickshell
import Quickshell.Services.Polkit
import Quickshell.Wayland
import qs.Commons
import qs.Widgets
import qs.Services.UI
Item {
id: root
property var pluginApi: null
PolkitAgent {
id: agent
onIsActiveChanged: {
if (isActive) {
openWindow()
} else {
closeWindow()
}
}
}
property var window: null
function openWindow() {
if (window === null) {
window = Qt.createComponent("PolkitWindow.qml").createObject(root, {
flow: agent.flow,
pluginApi: Qt.binding(function() { return root.pluginApi })
});
window.visible = true;
} else {
window.flow = agent.flow
window.pluginApi = root.pluginApi
window.visible = true
}
}
function closeWindow() {
if (window !== null) {
window.destroy();
window = null;
}
}
}
@@ -0,0 +1,211 @@
import QtQuick.Layouts
import QtQuick.Controls
import QtQuick.Effects
import QtQuick
import Quickshell
import Quickshell.Services.Polkit
import Quickshell.Wayland
import qs.Commons
import qs.Widgets
import qs.Services.UI
PanelWindow {
id: polkitWindow
property AuthFlow flow
property var pluginApi
Connections {
target: flow
function onFailedChanged() {
if (flow && flow.failed) {
ToastService.showError(
pluginApi ? pluginApi.tr("error.failed.title") : "Authentication Failed",
pluginApi ? pluginApi.tr("error.failed.message") : "The password you entered was incorrect."
)
}
}
}
// Layer above everything else (critical system prompt)
WlrLayershell.layer: WlrLayer.Overlay
WlrLayershell.keyboardFocus: WlrKeyboardFocus.Exclusive
readonly property real shadowPadding: Style.shadowBlurMax + Style.marginL
// Explicit size - include shadowPadding so the shadow isn't clipped at window corners
implicitWidth: 400 * Style.uiScaleRatio + shadowPadding * 2
implicitHeight: contentLayout.implicitHeight + (Style.marginL * 2) + shadowPadding * 2
color: "transparent"
Item {
id: contentContainer
anchors.fill: parent
anchors.margins: shadowPadding
focus: true
Keys.onPressed: function(event) {
if (!flow) return;
if (Keybinds.checkKey(event, "escape", Settings)) {
flow.cancelAuthenticationRequest();
event.accepted = true;
} else if (Keybinds.checkKey(event, "enter", Settings)) {
if (passwordInput.text !== "") {
flow.submit(passwordInput.text);
passwordInput.text = "";
}
event.accepted = true;
}
}
transform: Translate {
id: shakeTranslate
x: 0
}
// Error animation
SequentialAnimation {
id: errorShake
running: flow && flow.failed
loops: 1
NumberAnimation { target: shakeTranslate; property: "x"; from: 0; to: -10; duration: 50; easing.type: Easing.InOutQuad }
NumberAnimation { target: shakeTranslate; property: "x"; from: -10; to: 10; duration: 50; easing.type: Easing.InOutQuad }
NumberAnimation { target: shakeTranslate; property: "x"; from: 10; to: -10; duration: 50; easing.type: Easing.InOutQuad }
NumberAnimation { target: shakeTranslate; property: "x"; from: -10; to: 10; duration: 50; easing.type: Easing.InOutQuad }
NumberAnimation { target: shakeTranslate; property: "x"; from: 10; to: 0; duration: 50; easing.type: Easing.InOutQuad }
}
// Shadow effect (behind background)
NDropShadow {
anchors.fill: customBackground
source: customBackground
autoPaddingEnabled: true
z: -1
}
Rectangle {
id: customBackground
anchors.fill: parent
radius: Style.radiusL
color: Qt.alpha(Color.mSurface, 0.95)
border.color: (flow && (flow.failed || flow.supplementaryIsError)) ? Color.mError : Color.mOutline
border.width: Style.borderS
Behavior on border.color {
ColorAnimation { duration: Style.animationFast }
}
}
ColumnLayout {
id: contentLayout
anchors.centerIn: parent
width: parent.width - (Style.marginL * 2)
spacing: Style.marginM
// Header with Icon
RowLayout {
Layout.fillWidth: true
spacing: Style.marginM
NImageRounded {
Layout.preferredWidth: Style.fontSizeXXL * 2
Layout.preferredHeight: Style.fontSizeXXL * 2
imagePath: (flow && flow.iconName) ? Quickshell.iconPath(flow.iconName) : ""
fallbackIcon: "lock"
borderWidth: 0
}
ColumnLayout {
Layout.fillWidth: true
spacing: Style.marginXS
NText {
text: flow ? flow.message : (pluginApi ? pluginApi.tr("window.title") : "Authentication Required")
pointSize: Style.fontSizeL
font.weight: Style.fontWeightBold
color: Color.mOnSurface
wrapMode: Text.Wrap
Layout.fillWidth: true
}
NText {
text: flow ? flow.actionId : ""
pointSize: Style.fontSizeXS
color: Color.mOnSurfaceVariant
wrapMode: Text.Wrap
Layout.fillWidth: true
visible: text !== ""
}
}
}
// Supplementary Message (Error or prompt)
NText {
visible: flow && flow.supplementaryMessage !== ""
text: flow ? flow.supplementaryMessage : ""
pointSize: Style.fontSizeS
color: (flow && flow.supplementaryIsError) ? Color.mError : Color.mOnSurfaceVariant
wrapMode: Text.Wrap
Layout.fillWidth: true
}
// Input Field
NTextInput {
id: passwordInput
Layout.fillWidth: true
placeholderText: flow ? flow.inputPrompt : (pluginApi ? pluginApi.tr("prompt.password") : "Password")
label: (flow && flow.isResponseRequired) ? (pluginApi ? pluginApi.tr("prompt.password") : "Password") : ""
inputItem.echoMode: (flow && !flow.responseVisible) ? TextInput.Password : TextInput.Normal
visible: flow && flow.isResponseRequired
onAccepted: {
if (flow) {
flow.submit(passwordInput.text)
passwordInput.text = ""
}
}
}
// Actions
RowLayout {
Layout.fillWidth: true
Layout.topMargin: Style.marginS
spacing: Style.marginM
Item { Layout.fillWidth: true } // Spacer
NButton {
text: pluginApi ? pluginApi.tr("action.cancel") : "Cancel"
backgroundColor: Color.mSurfaceVariant
textColor: Color.mOnSurfaceVariant
outlined: false
onClicked: {
if (flow) flow.cancelAuthenticationRequest()
}
}
NButton {
text: pluginApi ? pluginApi.tr("action.authenticate") : "Authenticate"
backgroundColor: Color.mPrimary
textColor: Color.mOnPrimary
enabled: flow && flow.isResponseRequired
onClicked: {
if (flow) {
flow.submit(passwordInput.text)
passwordInput.text = ""
}
}
}
}
}
}
// Focus handling
Component.onCompleted: {
passwordInput.inputItem.forceActiveFocus()
}
}
+13
View File
@@ -0,0 +1,13 @@
# Polkit Agent
This plugin provides a Polkit authentication agent for Noctalia. It allows you to authenticate actions that require elevated privileges directly within the shell.
![Preview](preview.png)
## Important
To use this plugin, you **must disable or uninstall your existing polkit authentication agent** (e.g., `polkit-gnome`, `polkit-kde-agent`, `lxpolkit`, etc).
Having multiple polkit agents running simultaneously will cause conflicts and prevent this plugin from working correctly.
> You may need to **restart your session or computer** after enabling this plugin for the changes to take effect and for the new agent to be registered properly.
@@ -0,0 +1,18 @@
{
"window": {
"title": "Authentifizierung erforderlich"
},
"prompt": {
"password": "Passwort"
},
"action": {
"cancel": "Abbrechen",
"authenticate": "Authentifizieren"
},
"error": {
"failed": {
"title": "Authentifizierung fehlgeschlagen",
"message": "Das eingegebene Passwort war falsch."
}
}
}
@@ -0,0 +1,18 @@
{
"window": {
"title": "Authentication Required"
},
"prompt": {
"password": "Password"
},
"action": {
"cancel": "Cancel",
"authenticate": "Authenticate"
},
"error": {
"failed": {
"title": "Authentication Failed",
"message": "The password you entered was incorrect."
}
}
}
@@ -0,0 +1,18 @@
{
"window": {
"title": "Autenticación requerida"
},
"prompt": {
"password": "Contraseña"
},
"action": {
"cancel": "Cancelar",
"authenticate": "Autenticar"
},
"error": {
"failed": {
"title": "Autenticación fallida",
"message": "La contraseña introducida es incorrecta."
}
}
}
@@ -0,0 +1,18 @@
{
"window": {
"title": "Authentification requise"
},
"prompt": {
"password": "Mot de passe"
},
"action": {
"cancel": "Annuler",
"authenticate": "S'authentifier"
},
"error": {
"failed": {
"title": "Authentification échouée",
"message": "Le mot de passe saisi est incorrect."
}
}
}
@@ -0,0 +1,18 @@
{
"window": {
"title": "Hitelesítés szükséges"
},
"prompt": {
"password": "Jelszó"
},
"action": {
"cancel": "Mégse",
"authenticate": "Hitelesítés"
},
"error": {
"failed": {
"title": "Hitelesítés sikertelen",
"message": "A megadott jelszó helytelen volt."
}
}
}
@@ -0,0 +1,18 @@
{
"window": {
"title": "認証が必要です"
},
"prompt": {
"password": "パスワード"
},
"action": {
"cancel": "キャンセル",
"authenticate": "認証"
},
"error": {
"failed": {
"title": "認証に失敗しました",
"message": "入力されたパスワードが正しくありません。"
}
}
}
@@ -0,0 +1,18 @@
{
"window": {
"title": "인증 필요"
},
"prompt": {
"password": "비밀번호"
},
"action": {
"cancel": "취소",
"authenticate": "인증"
},
"error": {
"failed": {
"title": "인증 실패",
"message": "입력한 비밀번호가 올바르지 않습니다."
}
}
}
@@ -0,0 +1,18 @@
{
"window": {
"title": "Nasname pêwîst e"
},
"prompt": {
"password": "Şîfre"
},
"action": {
"cancel": "Betal bike",
"authenticate": "Nasnameyê bipesend bike"
},
"error": {
"failed": {
"title": "Nasname têk çû",
"message": "Şîfreya ku hûn nivîsandin şaş e."
}
}
}
@@ -0,0 +1,18 @@
{
"window": {
"title": "Authenticatie vereist"
},
"prompt": {
"password": "Wachtwoord"
},
"action": {
"cancel": "Annuleren",
"authenticate": "Authenticeren"
},
"error": {
"failed": {
"title": "Authenticatie mislukt",
"message": "Het ingevoerde wachtwoord was onjuist."
}
}
}
@@ -0,0 +1,18 @@
{
"window": {
"title": "Autentisering kreves"
},
"prompt": {
"password": "Passord"
},
"action": {
"cancel": "Avbryt",
"authenticate": "Autentiser"
},
"error": {
"failed": {
"title": "Autentisering mislyktes",
"message": "Passordet du skrev inn var feil."
}
}
}
@@ -0,0 +1,18 @@
{
"window": {
"title": "Autentisering krevst"
},
"prompt": {
"password": "Passord"
},
"action": {
"cancel": "Avbryt",
"authenticate": "Autentiser"
},
"error": {
"failed": {
"title": "Autentisering mislukkast",
"message": "Passordet du skreiv inn var feil."
}
}
}
@@ -0,0 +1,18 @@
{
"window": {
"title": "Wymagane uwierzytelnienie"
},
"prompt": {
"password": "Hasło"
},
"action": {
"cancel": "Anuluj",
"authenticate": "Uwierzytelnij"
},
"error": {
"failed": {
"title": "Uwierzytelnienie nie powiodło się",
"message": "Wprowadzone hasło jest nieprawidłowe."
}
}
}
@@ -0,0 +1,18 @@
{
"window": {
"title": "Autenticação Necessária"
},
"prompt": {
"password": "Senha"
},
"action": {
"cancel": "Cancelar",
"authenticate": "Autenticar"
},
"error": {
"failed": {
"title": "Autenticação Falhou",
"message": "A senha introduzida está incorreta."
}
}
}
@@ -0,0 +1,18 @@
{
"window": {
"title": "Требуется аутентификация"
},
"prompt": {
"password": "Пароль"
},
"action": {
"cancel": "Отмена",
"authenticate": "Аутентифицировать"
},
"error": {
"failed": {
"title": "Ошибка аутентификации",
"message": "Введен неверный пароль."
}
}
}
@@ -0,0 +1,18 @@
{
"window": {
"title": "Autentisering krävs"
},
"prompt": {
"password": "Lösenord"
},
"action": {
"cancel": "Avbryt",
"authenticate": "Autentisera"
},
"error": {
"failed": {
"title": "Autentisering misslyckades",
"message": "Det angivna lösenordet var felaktigt."
}
}
}
@@ -0,0 +1,18 @@
{
"window": {
"title": "Kimlik Doğrulaması Gerekli"
},
"prompt": {
"password": "Parola"
},
"action": {
"cancel": "İptal",
"authenticate": "Doğrula"
},
"error": {
"failed": {
"title": "Kimlik Doğrulama Başarısız",
"message": "Girdiğiniz parola yanlış."
}
}
}
@@ -0,0 +1,18 @@
{
"window": {
"title": "Потрібна аутентифікація"
},
"prompt": {
"password": "Пароль"
},
"action": {
"cancel": "Скасувати",
"authenticate": "Аутентифікувати"
},
"error": {
"failed": {
"title": "Помилка аутентифікації",
"message": "Введений пароль неправильний."
}
}
}
@@ -0,0 +1,18 @@
{
"window": {
"title": "Yêu cầu xác thực"
},
"prompt": {
"password": "Mật khẩu"
},
"action": {
"cancel": "Hủy",
"authenticate": "Xác thực"
},
"error": {
"failed": {
"title": "Xác thực thất bại",
"message": "Mật khẩu bạn nhập không đúng."
}
}
}
@@ -0,0 +1,18 @@
{
"window": {
"title": "需要身份验证"
},
"prompt": {
"password": "密码"
},
"action": {
"cancel": "取消",
"authenticate": "验证"
},
"error": {
"failed": {
"title": "身份验证失败",
"message": "您输入的密码不正确。"
}
}
}
@@ -0,0 +1,18 @@
{
"window": {
"title": "需要身份驗證"
},
"prompt": {
"password": "密碼"
},
"action": {
"cancel": "取消",
"authenticate": "驗證"
},
"error": {
"failed": {
"title": "身份驗證失敗",
"message": "您輸入的密碼不正確。"
}
}
}
@@ -0,0 +1,24 @@
{
"id": "polkit-agent",
"name": "Polkit Agent",
"version": "1.0.6",
"minNoctaliaVersion": "4.4.3",
"author": "Noctalia Team <team@noctalia.dev>",
"official": true,
"license": "MIT",
"repository": "https://github.com/noctalia-dev/noctalia-plugins",
"description": "Provides a Polkit authentication agent.",
"tags": [
"System",
"Security"
],
"entryPoints": {
"main": "Main.qml"
},
"dependencies": {
"plugins": []
},
"metadata": {
"defaultSettings": {}
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

+703
View File
@@ -0,0 +1,703 @@
{
"appLauncher": {
"autoPasteClipboard": false,
"clipboardWatchImageCommand": "wl-paste --type image --watch cliphist store",
"clipboardWatchTextCommand": "wl-paste --type text --watch cliphist store",
"clipboardWrapText": true,
"customLaunchPrefix": "",
"customLaunchPrefixEnabled": false,
"density": "default",
"enableClipPreview": true,
"enableClipboardChips": true,
"enableClipboardHistory": true,
"enableClipboardSmartIcons": true,
"enableSessionSearch": true,
"enableSettingsSearch": true,
"enableWindowsSearch": true,
"iconMode": "tabler",
"ignoreMouseInput": false,
"overviewLayer": false,
"pinnedApps": [
],
"position": "center",
"screenshotAnnotationTool": "",
"showCategories": true,
"showIconBackground": false,
"sortByMostUsed": true,
"terminalCommand": "alacritty -e",
"viewMode": "list"
},
"audio": {
"mprisBlacklist": [
],
"preferredPlayer": "",
"spectrumFrameRate": 30,
"spectrumMirrored": true,
"visualizerType": "linear",
"volumeFeedback": false,
"volumeFeedbackSoundFile": "",
"volumeOverdrive": false,
"volumeStep": 5
},
"bar": {
"autoHideDelay": 500,
"autoShowDelay": 150,
"backgroundOpacity": 0.93,
"barType": "simple",
"capsuleColorKey": "none",
"capsuleOpacity": 1,
"contentPadding": 2,
"density": "comfortable",
"displayMode": "always_visible",
"enableExclusionZoneInset": true,
"fontScale": 1,
"frameRadius": 12,
"frameThickness": 8,
"hideOnOverview": false,
"marginHorizontal": 4,
"marginVertical": 4,
"middleClickAction": "none",
"middleClickCommand": "",
"middleClickFollowMouse": false,
"monitors": [
],
"mouseWheelAction": "none",
"mouseWheelWrap": true,
"outerCorners": false,
"position": "top",
"reverseScroll": false,
"rightClickAction": "controlCenter",
"rightClickCommand": "",
"rightClickFollowMouse": true,
"screenOverrides": [
],
"showCapsule": true,
"showOnWorkspaceSwitch": true,
"showOutline": false,
"useSeparateOpacity": false,
"widgetSpacing": 6,
"widgets": {
"center": [
{
"clockColor": "none",
"customFont": "",
"formatHorizontal": "HH:mm ddd, MMM dd",
"formatVertical": "HH mm - dd MM",
"id": "Clock",
"tooltipFormat": "HH:mm ddd, MMM dd",
"useCustomFont": false
}
],
"left": [
{
"colorizeSystemIcon": "none",
"colorizeSystemText": "none",
"customIconPath": "",
"enableColorization": false,
"icon": "rocket",
"iconColor": "none",
"id": "Launcher",
"useDistroLogo": false
},
{
"compactMode": true,
"diskPath": "/",
"iconColor": "none",
"id": "SystemMonitor",
"showCpuCores": false,
"showCpuFreq": false,
"showCpuTemp": true,
"showCpuUsage": true,
"showDiskAvailable": false,
"showDiskUsage": false,
"showDiskUsageAsPercent": false,
"showGpuTemp": false,
"showLoadAverage": false,
"showMemoryAsPercent": false,
"showMemoryUsage": true,
"showNetworkStats": false,
"showSwapUsage": false,
"textColor": "none",
"useMonospaceFont": true,
"usePadding": false
},
{
"compactMode": false,
"hideMode": "hidden",
"hideWhenIdle": false,
"id": "MediaMini",
"maxWidth": 145,
"panelShowAlbumArt": true,
"scrollingMode": "hover",
"showAlbumArt": true,
"showArtistFirst": true,
"showProgressRing": true,
"showVisualizer": false,
"textColor": "none",
"useFixedWidth": false,
"visualizerType": "linear"
},
{
"characterCount": 2,
"colorizeIcons": false,
"emptyColor": "secondary",
"enableScrollWheel": true,
"focusedColor": "primary",
"followFocusedScreen": false,
"fontWeight": "bold",
"groupedBorderOpacity": 1,
"hideUnoccupied": false,
"iconScale": 0.8,
"id": "Workspace",
"labelMode": "index",
"occupiedColor": "secondary",
"pillSize": 0.6,
"showApplications": false,
"showApplicationsHover": false,
"showBadge": true,
"showLabelsOnlyWhenOccupied": true,
"unfocusedIconsOpacity": 1
},
{
"colorizeIcons": false,
"hideMode": "visible",
"id": "ActiveWindow",
"maxWidth": 350,
"scrollingMode": "hover",
"showIcon": true,
"showText": true,
"textColor": "none",
"useFixedWidth": true
}
],
"right": [
{
"blacklist": [
],
"chevronColor": "none",
"colorizeIcons": false,
"drawerEnabled": false,
"hidePassive": false,
"id": "Tray",
"pinned": [
]
},
{
"hideWhenZero": false,
"hideWhenZeroUnread": false,
"iconColor": "none",
"id": "NotificationHistory",
"showUnreadBadge": true,
"unreadBadgeColor": "primary"
},
{
"deviceNativePath": "__default__",
"displayMode": "graphic-clean",
"hideIfIdle": false,
"hideIfNotDetected": true,
"id": "Battery",
"showNoctaliaPerformance": false,
"showPowerProfiles": false
},
{
"displayMode": "onhover",
"iconColor": "none",
"id": "Volume",
"middleClickCommand": "pwvucontrol || pavucontrol",
"textColor": "none"
},
{
"applyToAllMonitors": false,
"displayMode": "onhover",
"iconColor": "none",
"id": "Brightness",
"textColor": "none"
},
{
"colorizeDistroLogo": false,
"colorizeSystemIcon": "none",
"colorizeSystemText": "none",
"customIconPath": "",
"enableColorization": false,
"icon": "noctalia",
"id": "ControlCenter",
"useDistroLogo": false
}
]
}
},
"brightness": {
"backlightDeviceMappings": [
],
"brightnessStep": 5,
"enableDdcSupport": false,
"enforceMinimum": true
},
"calendar": {
"cards": [
{
"enabled": true,
"id": "calendar-header-card"
},
{
"enabled": true,
"id": "calendar-month-card"
},
{
"enabled": true,
"id": "weather-card"
}
]
},
"colorSchemes": {
"darkMode": true,
"generationMethod": "tonal-spot",
"manualSunrise": "06:30",
"manualSunset": "18:30",
"monitorForColors": "",
"predefinedScheme": "Catppuccin",
"schedulingMode": "off",
"syncGsettings": true,
"useWallpaperColors": false
},
"controlCenter": {
"cards": [
{
"enabled": true,
"id": "profile-card"
},
{
"enabled": true,
"id": "shortcuts-card"
},
{
"enabled": true,
"id": "audio-card"
},
{
"enabled": false,
"id": "brightness-card"
},
{
"enabled": true,
"id": "weather-card"
},
{
"enabled": true,
"id": "media-sysmon-card"
}
],
"diskPath": "/",
"position": "close_to_bar_button",
"shortcuts": {
"left": [
{
"id": "Network"
},
{
"id": "Bluetooth"
},
{
"id": "WallpaperSelector"
},
{
"id": "NoctaliaPerformance"
}
],
"right": [
{
"id": "Notifications"
},
{
"id": "PowerProfile"
},
{
"id": "KeepAwake"
},
{
"id": "NightLight"
}
]
}
},
"desktopWidgets": {
"enabled": false,
"gridSnap": false,
"gridSnapScale": false,
"monitorWidgets": [
],
"overviewEnabled": true
},
"dock": {
"animationSpeed": 1,
"backgroundOpacity": 1,
"colorizeIcons": false,
"deadOpacity": 0.6,
"displayMode": "auto_hide",
"dockType": "attached",
"enabled": true,
"floatingRatio": 1,
"groupApps": false,
"groupClickAction": "cycle",
"groupContextMenuMode": "extended",
"groupIndicatorStyle": "dots",
"inactiveIndicators": false,
"indicatorColor": "primary",
"indicatorOpacity": 0.6,
"indicatorThickness": 3,
"launcherIcon": "",
"launcherIconColor": "none",
"launcherPosition": "end",
"launcherUseDistroLogo": false,
"monitors": [
],
"onlySameOutput": true,
"pinnedApps": [
],
"pinnedStatic": false,
"position": "bottom",
"showDockIndicator": true,
"showLauncherIcon": false,
"sitOnFrame": false,
"size": 1
},
"general": {
"allowPanelsOnScreenWithoutBar": true,
"allowPasswordWithFprintd": false,
"animationDisabled": false,
"animationSpeed": 1,
"autoStartAuth": false,
"avatarImage": "/home/bgrolleman/.face",
"boxRadiusRatio": 1,
"clockFormat": "hh\\nmm",
"clockStyle": "custom",
"compactLockScreen": false,
"dimmerOpacity": 0.2,
"enableBlurBehind": true,
"enableLockScreenCountdown": true,
"enableLockScreenMediaControls": false,
"enableShadows": true,
"forceBlackScreenCorners": false,
"iRadiusRatio": 1,
"keybinds": {
"keyDown": [
"Down"
],
"keyEnter": [
"Return",
"Enter"
],
"keyEscape": [
"Esc"
],
"keyLeft": [
"Left"
],
"keyRemove": [
"Del"
],
"keyRight": [
"Right"
],
"keyUp": [
"Up"
]
},
"language": "",
"lockOnSuspend": true,
"lockScreenAnimations": false,
"lockScreenBlur": 0,
"lockScreenCountdownDuration": 10000,
"lockScreenMonitors": [
],
"lockScreenTint": 0,
"passwordChars": false,
"radiusRatio": 1,
"reverseScroll": false,
"scaleRatio": 1,
"screenRadiusRatio": 1,
"shadowDirection": "bottom_right",
"shadowOffsetX": 2,
"shadowOffsetY": 3,
"showChangelogOnStartup": true,
"showHibernateOnLockScreen": false,
"showScreenCorners": false,
"showSessionButtonsOnLockScreen": true,
"smoothScrollEnabled": true,
"telemetryEnabled": true
},
"hooks": {
"colorGeneration": "",
"darkModeChange": "",
"enabled": false,
"performanceModeDisabled": "",
"performanceModeEnabled": "",
"screenLock": "",
"screenUnlock": "",
"session": "",
"startup": "",
"wallpaperChange": ""
},
"idle": {
"customCommands": "[]",
"enabled": false,
"fadeDuration": 5,
"lockCommand": "",
"lockTimeout": 660,
"resumeLockCommand": "",
"resumeScreenOffCommand": "",
"resumeSuspendCommand": "",
"screenOffCommand": "",
"screenOffTimeout": 600,
"suspendCommand": "",
"suspendTimeout": 1800
},
"location": {
"analogClockInCalendar": false,
"autoLocate": false,
"firstDayOfWeek": 1,
"hideWeatherCityName": false,
"hideWeatherTimezone": false,
"name": "Amersfoort, The Netherlandsk",
"showCalendarEvents": true,
"showCalendarWeather": true,
"showWeekNumberInCalendar": false,
"use12hourFormat": false,
"useFahrenheit": false,
"weatherEnabled": true,
"weatherShowEffects": true,
"weatherTaliaMascotAlways": false
},
"network": {
"bluetoothAutoConnect": true,
"bluetoothDetailsViewMode": "grid",
"bluetoothHideUnnamedDevices": false,
"bluetoothRssiPollIntervalMs": 60000,
"bluetoothRssiPollingEnabled": false,
"disableDiscoverability": false,
"networkPanelView": "wifi",
"wifiDetailsViewMode": "grid"
},
"nightLight": {
"autoSchedule": true,
"dayTemp": "6500",
"enabled": false,
"forced": false,
"manualSunrise": "06:30",
"manualSunset": "18:30",
"nightTemp": "4000"
},
"noctaliaPerformance": {
"disableDesktopWidgets": true,
"disableWallpaper": true
},
"notifications": {
"backgroundOpacity": 1,
"clearDismissed": true,
"criticalUrgencyDuration": 15,
"density": "default",
"enableBatteryToast": true,
"enableKeyboardLayoutToast": true,
"enableMarkdown": false,
"enableMediaToast": false,
"enabled": true,
"location": "top_right",
"lowUrgencyDuration": 3,
"monitors": [
],
"normalUrgencyDuration": 8,
"overlayLayer": true,
"respectExpireTimeout": false,
"saveToHistory": {
"critical": true,
"low": false,
"normal": true
},
"sounds": {
"criticalSoundFile": "",
"enabled": false,
"excludedApps": "discord,firefox,chrome,chromium,edge",
"lowSoundFile": "",
"normalSoundFile": "",
"separateSounds": false,
"volume": 0.5
}
},
"osd": {
"autoHideMs": 2000,
"backgroundOpacity": 1,
"enabled": true,
"enabledTypes": [
0,
1,
2
],
"location": "top_right",
"monitors": [
],
"overlayLayer": true
},
"plugins": {
"autoUpdate": false,
"notifyUpdates": true
},
"sessionMenu": {
"countdownDuration": 10000,
"enableCountdown": true,
"largeButtonsLayout": "single-row",
"largeButtonsStyle": true,
"position": "center",
"powerOptions": [
{
"action": "lock",
"command": "",
"countdownEnabled": true,
"enabled": true,
"keybind": "1"
},
{
"action": "suspend",
"command": "",
"countdownEnabled": true,
"enabled": true,
"keybind": "2"
},
{
"action": "hibernate",
"command": "",
"countdownEnabled": true,
"enabled": true,
"keybind": "3"
},
{
"action": "reboot",
"command": "",
"countdownEnabled": true,
"enabled": true,
"keybind": "4"
},
{
"action": "logout",
"command": "",
"countdownEnabled": true,
"enabled": true,
"keybind": "5"
},
{
"action": "shutdown",
"command": "",
"countdownEnabled": true,
"enabled": true,
"keybind": "6"
},
{
"action": "rebootToUefi",
"command": "",
"countdownEnabled": true,
"enabled": true,
"keybind": "7"
},
{
"action": "userspaceReboot",
"command": "",
"countdownEnabled": true,
"enabled": false,
"keybind": ""
}
],
"showHeader": true,
"showKeybinds": true
},
"settingsVersion": 59,
"systemMonitor": {
"batteryCriticalThreshold": 5,
"batteryWarningThreshold": 20,
"cpuCriticalThreshold": 90,
"cpuWarningThreshold": 80,
"criticalColor": "",
"diskAvailCriticalThreshold": 10,
"diskAvailWarningThreshold": 20,
"diskCriticalThreshold": 90,
"diskWarningThreshold": 80,
"enableDgpuMonitoring": false,
"externalMonitor": "resources || missioncenter || jdsystemmonitor || corestats || system-monitoring-center || gnome-system-monitor || plasma-systemmonitor || mate-system-monitor || ukui-system-monitor || deepin-system-monitor || pantheon-system-monitor",
"gpuCriticalThreshold": 90,
"gpuWarningThreshold": 80,
"memCriticalThreshold": 90,
"memWarningThreshold": 80,
"swapCriticalThreshold": 90,
"swapWarningThreshold": 80,
"tempCriticalThreshold": 90,
"tempWarningThreshold": 80,
"useCustomColors": false,
"warningColor": ""
},
"templates": {
"activeTemplates": [
],
"enableUserTheming": false
},
"ui": {
"boxBorderEnabled": false,
"fontDefault": "Adwaita Sans",
"fontDefaultScale": 1,
"fontFixed": "monospace",
"fontFixedScale": 1,
"panelBackgroundOpacity": 0.93,
"panelsAttachedToBar": true,
"scrollbarAlwaysVisible": true,
"settingsPanelMode": "attached",
"settingsPanelSideBarCardStyle": false,
"tooltipsEnabled": true,
"translucentWidgets": false
},
"wallpaper": {
"automationEnabled": false,
"directory": "/home/bgrolleman/Documents/Resources/Backgrounds",
"enableMultiMonitorDirectories": false,
"enabled": true,
"favorites": [
],
"fillColor": "#000000",
"fillMode": "crop",
"hideWallpaperFilenames": false,
"linkLightAndDarkWallpapers": true,
"monitorDirectories": [
],
"overviewBlur": 0.4,
"overviewEnabled": false,
"overviewTint": 0.6,
"panelPosition": "follow_bar",
"randomIntervalSec": 300,
"setWallpaperOnAllMonitors": true,
"showHiddenFiles": false,
"skipStartupTransition": false,
"solidColor": "#1a1a2e",
"sortOrder": "name",
"transitionDuration": 1500,
"transitionEdgeSmoothness": 0.05,
"transitionType": [
"fade",
"disc",
"stripes",
"wipe",
"pixelate",
"honeycomb"
],
"useOriginalImages": false,
"useSolidColor": false,
"useWallhaven": false,
"viewMode": "single",
"wallhavenApiKey": "",
"wallhavenCategories": "111",
"wallhavenOrder": "desc",
"wallhavenPurity": "100",
"wallhavenQuery": "",
"wallhavenRatios": "",
"wallhavenResolutionHeight": "",
"wallhavenResolutionMode": "atleast",
"wallhavenResolutionWidth": "",
"wallhavenSorting": "relevance",
"wallpaperChangeMode": "random"
}
}
+65
View File
@@ -0,0 +1,65 @@
shadow = false;
shadow-radius = 7;
shadow-offset-x = -7;
shadow-offset-y = -7;
shadow-exclude = [ "name = 'Notification'", "class_g = 'Conky'", "class_g ?= 'Notify-osd'", "class_g = 'Cairo-clock'", "_GTK_FRAME_EXTENTS@:c" ];
fading = true;
fade-in-step = 0.03;
fade-out-step = 0.03;
inactive-opacity = 0.95;
frame-opacity = 0.7;
inactive-opacity-override = false;
focus-exclude = [ "class_g = 'Cairo-clock'" ];
corner-radius = 10.0;
rounded-corners-exclude = [ "window_type = 'dock'", "window_type = 'desktop'" ];
blur-kern = "3x3box";
blur-background-exclude = [ "window_type = 'dock'", "window_type = 'desktop'", "_GTK_FRAME_EXTENTS@:c" ];
backend = "glx";
vsync = true;
mark-wmwin-focused = true;
mark-ovredir-focused = true;
detect-rounded-corners = true;
detect-client-opacity = true;
detect-transient = true;
use-damage = true;
log-level = "warn";
wintypes :
{
tooltip :
{
fade = true;
shadow = true;
opacity = 0.75;
focus = true;
full-shadow = false;
};
dock :
{
shadow = false;
clip-shadow-above = false;
full-shadow = false;
opacity = 1.0;
focus = true;
};
dnd :
{
shadow = false;
};
popup_menu :
{
opacity = 0.8;
};
dropdown_menu :
{
opacity = 0.8;
};
menu :
{
shadow = false;
};
};
blur-background = true;
shadow-opacity = 0.1;
blur-background-frame = false;
inactive-dim = 0.2;
+3 -1
View File
@@ -3,7 +3,7 @@ monitor = DP-0
width = 100% width = 100%
height = 34 height = 34
background = #00000000 background = #cc000000
foreground = #ccffffff foreground = #ccffffff
line-color = ${bar/bottom.background} line-color = ${bar/bottom.background}
@@ -241,6 +241,8 @@ label-connected = WIFI %essid% %local_ip%
label-disconnected = WIFI DISCONNECTED label-disconnected = WIFI DISCONNECTED
label-disconnected-foreground = #66 label-disconnected-foreground = #66
click-left = nm-connection-editor
[module/wired-network] [module/wired-network]
type = internal/network type = internal/network
interface = eno2 interface = eno2
+7 -4
View File
@@ -15,14 +15,17 @@ link() {
fi fi
} }
configlink() { configlink() {
link ~/.config/$1 ~/dotfiles/$1 link ~/.config/$1 ~/.dotfiles/$1
} }
checkdir ~/.config checkdir ~/.config
link ~/.dotfiles ~/dotfiles link ~/.profile ~/.dotfiles/profile
link ~/.profile ~/dotfiles/profile
link ~/.config/i3 ~/dotfiles/i3
configlink i3
configlink tmux configlink tmux
configlink nvim configlink nvim
configlink kitty configlink kitty
configlink polybar
configlink picom.conf
configlink niri
configlink noctalia