From f47da72b9c8796c33152397560c523f4d93a662e Mon Sep 17 00:00:00 2001 From: Kopatz <7265381+Kropatz@users.noreply.github.com> Date: Sat, 14 Oct 2023 13:33:14 +0200 Subject: [PATCH] ic --- .config/hypr/hyprland.conf | 172 +++++++++++++++++++++++++++++++++++ .config/hypr/start.sh | 10 +++ .config/rofi/config.rasi | 156 ++++++++++++++++++++++++++++++++ .config/rofi/nord.rasi | 105 ++++++++++++++++++++++ .gitconfig | 34 +++++++ .gitconfig-gitea | 21 +++++ .gitconfig-github | 18 ++++ .gitconfig-gitlabfh | 21 +++++ gnome.nix | 53 +++++++++++ hyperland.nix | 60 +++++++++++++ main.nix | 178 +++++++++++++++++++++++++++++++++++++ plasma.nix | 17 ++++ 12 files changed, 845 insertions(+) create mode 100644 .config/hypr/hyprland.conf create mode 100755 .config/hypr/start.sh create mode 100644 .config/rofi/config.rasi create mode 100644 .config/rofi/nord.rasi create mode 100644 .gitconfig create mode 100644 .gitconfig-gitea create mode 100644 .gitconfig-github create mode 100644 .gitconfig-gitlabfh create mode 100644 gnome.nix create mode 100644 hyperland.nix create mode 100644 main.nix create mode 100644 plasma.nix diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf new file mode 100644 index 0000000..036f9cd --- /dev/null +++ b/.config/hypr/hyprland.conf @@ -0,0 +1,172 @@ + +######################################################################################## +AUTOGENERATED HYPR CONFIG. +PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT, +OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS. +######################################################################################## + +# +# Please note not all available settings / options are set here. +# For a full list, see the wiki +# + +# See https://wiki.hyprland.org/Configuring/Monitors/ +monitor=,preferred,auto,auto + + + +# See https://wiki.hyprland.org/Configuring/Keywords/ for more + +# Execute your favorite apps at launch +# exec-once = waybar & hyprpaper & firefox + +# Source a file (multi-file configs) +# source = ~/.config/hypr/myColors.conf + +# Some default env vars. +env = XCURSOR_SIZE,24 + +# For all categories, see https://wiki.hyprland.org/Configuring/Variables/ +input { + kb_layout = de + kb_variant = + kb_model = + kb_options = + kb_rules = + + follow_mouse = 1 + + touchpad { + natural_scroll = yes + } + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. +} + +general { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + gaps_in = 5 + gaps_out = 20 + border_size = 2 + col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg + col.inactive_border = rgba(595959aa) + + layout = dwindle +} + +decoration { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + rounding = 10 + blur = yes + blur_size = 3 + blur_passes = 1 + blur_new_optimizations = on + + drop_shadow = yes + shadow_range = 4 + shadow_render_power = 3 + col.shadow = rgba(1a1a1aee) +} + +animations { + enabled = no + + # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + + bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + + animation = windows, 1, 7, myBezier + animation = windowsOut, 1, 7, default, popin 80% + animation = border, 1, 10, default + animation = borderangle, 1, 8, default + animation = fade, 1, 7, default + animation = workspaces, 1, 6, default +} + +dwindle { + # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more + pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = yes # you probably want this +} + +master { + # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more + new_is_master = true +} + +gestures { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + workspace_swipe = on +} + +# Example per-device config +# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more +device:epic-mouse-v1 { + sensitivity = -0.5 +} + +# Example windowrule v1 +# windowrule = float, ^(kitty)$ +# Example windowrule v2 +# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more + + +# See https://wiki.hyprland.org/Configuring/Keywords/ for more +$mainMod = SUPER + +# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more +bind = $mainMod, Q, exec, kitty +bind = $mainMod, C, killactive, +bind = $mainMod, M, exit, +bind = $mainMod, E, exec, dolphin +bind = $mainMod, V, togglefloating, +bind = $mainMod, R, exec, wofi --show drun +bind = $mainMod, S, exec, rofi -show drun -show-icons +bind = $mainMod, P, pseudo, # dwindle +bind = $mainMod, J, togglesplit, # dwindle + +# Move focus with mainMod + arrow keys +bind = $mainMod, left, movefocus, l +bind = $mainMod, right, movefocus, r +bind = $mainMod, up, movefocus, u +bind = $mainMod, down, movefocus, d + +# 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 + +# Scroll through existing workspaces with mainMod + scroll +bind = $mainMod, mouse_down, workspace, e+1 +bind = $mainMod, mouse_up, workspace, e-1 + +# Move/resize windows with mainMod + LMB/RMB and dragging +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow + +bind = ALT, Tab, cyclenext, +bind = ALT, Tab, bringactivetotop, + +exec-once= bash ~/.config/hypr/start.sh diff --git a/.config/hypr/start.sh b/.config/hypr/start.sh new file mode 100755 index 0000000..6e19fbe --- /dev/null +++ b/.config/hypr/start.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +# wallpaper daemon +swww init & + +nm-applet --indicator & + +waybar & + +dunst & diff --git a/.config/rofi/config.rasi b/.config/rofi/config.rasi new file mode 100644 index 0000000..b528f72 --- /dev/null +++ b/.config/rofi/config.rasi @@ -0,0 +1,156 @@ +configuration { + modes: [ combi, window, drun ]; + combi-modes: [ window, drun ]; + combi-display-format: "{text}"; + //modes: "window,drun,run,ssh"; + font: "mono 20"; +/* location: 0;*/ +/* yoffset: 0;*/ +/* xoffset: 0;*/ +/* fixed-num-lines: true;*/ + show-icons: true; +/* terminal: "rofi-sensible-terminal";*/ +/* ssh-client: "ssh";*/ +/* ssh-command: "{terminal} -e {ssh-client} {host} [-p {port}]";*/ +/* run-command: "{cmd}";*/ +/* run-list-command: "";*/ +/* run-shell-command: "{terminal} -e {cmd}";*/ + window-command: "wmctrl -i -R {window}"; + window-match-fields: "all"; +/* icon-theme: ;*/ +/* drun-match-fields: "name,generic,exec,categories,keywords";*/ +/* drun-categories: ;*/ +/* drun-show-actions: false;*/ +/* drun-display-format: "{name} [({generic})]";*/ +/* drun-url-launcher: "xdg-open";*/ +/* disable-history: false;*/ +/* ignored-prefixes: "";*/ + sort: true; +/* sorting-method: "normal";*/ +/* case-sensitive: false;*/ +/* cycle: true;*/ +/* sidebar-mode: false;*/ +/* hover-select: false;*/ +/* eh: 1;*/ +/* auto-select: false;*/ +/* parse-hosts: false;*/ +/* parse-known-hosts: true;*/ +/* combi-modes: "window,run";*/ +/* matching: "normal";*/ +/* tokenize: true;*/ +/* m: "-5";*/ +/* filter: ;*/ +/* dpi: -1;*/ +/* threads: 0;*/ +/* scroll-method: 0;*/ +/* window-format: "{w} {c} {t}";*/ + click-to-exit: true; +/* max-history-size: 25;*/ +/* combi-hide-mode-prefix: false;*/ +/* combi-display-format: "{mode} {text}";*/ +/* matching-negate-char: '-' /* unsupported */;*/ +/* cache-dir: ;*/ +/* window-thumbnail: false;*/ +/* drun-use-desktop-cache: false;*/ +/* drun-reload-desktop-cache: false;*/ +/* normalize-match: false;*/ + steal-focus: false; +/* application-fallback-icon: ;*/ +/* refilter-timeout-limit: 8192;*/ + xserver-i300-workaround: false; +/* pid: "/run/user/1000/rofi.pid";*/ +/* display-window: ;*/ +/* display-windowcd: ;*/ +/* display-run: ;*/ +/* display-ssh: ;*/ +/* display-drun: ;*/ +/* display-combi: ;*/ +/* display-keys: ;*/ +/* display-filebrowser: ;*/ +/* kb-primary-paste: "Control+V,Shift+Insert";*/ +/* kb-secondary-paste: "Control+v,Insert";*/ +/* kb-clear-line: "Control+w";*/ +/* kb-move-front: "Control+a";*/ +/* kb-move-end: "Control+e";*/ +/* kb-move-word-back: "Alt+b,Control+Left";*/ +/* kb-move-word-forward: "Alt+f,Control+Right";*/ +/* kb-move-char-back: "Left,Control+b";*/ +/* kb-move-char-forward: "Right,Control+f";*/ +/* kb-remove-word-back: "Control+Alt+h,Control+BackSpace";*/ +/* kb-remove-word-forward: "Control+Alt+d";*/ +/* kb-remove-char-forward: "Delete,Control+d";*/ +/* kb-remove-char-back: "BackSpace,Shift+BackSpace,Control+h";*/ +/* kb-remove-to-eol: "Control+k";*/ +/* kb-remove-to-sol: "Control+u";*/ +/* kb-accept-entry: "Control+j,Control+m,Return,KP_Enter";*/ +/* kb-accept-custom: "Control+Return";*/ +/* kb-accept-custom-alt: "Control+Shift+Return";*/ +/* kb-accept-alt: "Shift+Return";*/ +/* kb-delete-entry: "Shift+Delete";*/ +/* kb-mode-next: "Shift+Right,Control+Tab";*/ +/* kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab";*/ +/* kb-mode-complete: "Control+l";*/ +/* kb-row-left: "Control+Page_Up";*/ +/* kb-row-right: "Control+Page_Down";*/ +/* kb-row-up: "Up,Control+p";*/ +/* kb-row-down: "Down,Control+n";*/ +/* kb-row-tab: "";*/ +/* kb-element-next: "Tab";*/ +/* kb-element-prev: "ISO_Left_Tab";*/ +/* kb-page-prev: "Page_Up";*/ +/* kb-page-next: "Page_Down";*/ +/* kb-row-first: "Home,KP_Home";*/ +/* kb-row-last: "End,KP_End";*/ +/* kb-row-select: "Control+space";*/ +/* kb-screenshot: "Alt+S";*/ +/* kb-ellipsize: "Alt+period";*/ +/* kb-toggle-case-sensitivity: "grave,dead_grave";*/ +/* kb-toggle-sort: "Alt+grave";*/ +/* kb-cancel: "Escape,Control+g,Control+bracketleft";*/ +/* kb-custom-1: "Alt+1";*/ +/* kb-custom-2: "Alt+2";*/ +/* kb-custom-3: "Alt+3";*/ +/* kb-custom-4: "Alt+4";*/ +/* kb-custom-5: "Alt+5";*/ +/* kb-custom-6: "Alt+6";*/ +/* kb-custom-7: "Alt+7";*/ +/* kb-custom-8: "Alt+8";*/ +/* kb-custom-9: "Alt+9";*/ +/* kb-custom-10: "Alt+0";*/ +/* kb-custom-11: "Alt+exclam";*/ +/* kb-custom-12: "Alt+at";*/ +/* kb-custom-13: "Alt+numbersign";*/ +/* kb-custom-14: "Alt+dollar";*/ +/* kb-custom-15: "Alt+percent";*/ +/* kb-custom-16: "Alt+dead_circumflex";*/ +/* kb-custom-17: "Alt+ampersand";*/ +/* kb-custom-18: "Alt+asterisk";*/ +/* kb-custom-19: "Alt+parenleft";*/ +/* kb-select-1: "Super+1";*/ +/* kb-select-2: "Super+2";*/ +/* kb-select-3: "Super+3";*/ +/* kb-select-4: "Super+4";*/ +/* kb-select-5: "Super+5";*/ +/* kb-select-6: "Super+6";*/ +/* kb-select-7: "Super+7";*/ +/* kb-select-8: "Super+8";*/ +/* kb-select-9: "Super+9";*/ +/* kb-select-10: "Super+0";*/ +/* ml-row-left: "ScrollLeft";*/ +/* ml-row-right: "ScrollRight";*/ +/* ml-row-up: "ScrollUp";*/ +/* ml-row-down: "ScrollDown";*/ +/* me-select-entry: "MousePrimary";*/ +/* me-accept-entry: "MouseDPrimary";*/ +/* me-accept-custom: "Control+MouseDPrimary";*/ + timeout { + action: "kb-cancel"; + delay: 0; + } + filebrowser { + directories-first: true; + sorting-method: "name"; + } +} + +@theme "nord" diff --git a/.config/rofi/nord.rasi b/.config/rofi/nord.rasi new file mode 100644 index 0000000..4e96467 --- /dev/null +++ b/.config/rofi/nord.rasi @@ -0,0 +1,105 @@ +/******************************************************************************* + * ROFI VERTICAL THEME USING THE NORD COLOR PALETTE + * User : LR-Tech + * Theme Repo : https://github.com/lr-tech/rofi-themes-collection + * Nord Project Repo : https://github.com/arcticicestudio/nord + *******************************************************************************/ + +* { + font: "IBM Plex Mono 12"; + + nord0: #2e3440; + nord1: #3b4252; + nord2: #434c5e; + nord3: #4c566a; + + nord4: #d8dee9; + nord5: #e5e9f0; + nord6: #eceff4; + + nord7: #8fbcbb; + nord8: #88c0d0; + nord9: #81a1c1; + nord10: #5e81ac; + nord11: #bf616a; + + nord12: #d08770; + nord13: #ebcb8b; + nord14: #a3be8c; + nord15: #b48ead; + + background-color: transparent; + text-color: @nord4; + accent-color: @nord8; + + margin: 0px; + padding: 0px; + spacing: 0px; +} + +window { + background-color: @nord0; + border-color: @accent-color; + + location: center; + width: 480px; + border: 1px; +} + +inputbar { + padding: 8px 12px; + spacing: 12px; + children: [ prompt, entry ]; +} + +prompt, entry, element-text, element-icon { + vertical-align: 0.5; +} + +prompt { + text-color: @accent-color; +} + +listview { + lines: 8; + columns: 1; + + fixed-height: false; +} + +element { + padding: 8px; + spacing: 8px; +} + +element normal urgent { + text-color: @nord13; +} + +element normal active { + text-color: @accent-color; +} + +element selected { + text-color: @nord0; +} + +element selected normal { + background-color: @accent-color; +} + +element selected urgent { + background-color: @nord13; +} + +element selected active { + background-color: @nord8; +} + +element-icon { + size: 0.75em; +} + +element-text { + text-color: inherit; +} diff --git a/.gitconfig b/.gitconfig new file mode 100644 index 0000000..6a72e35 --- /dev/null +++ b/.gitconfig @@ -0,0 +1,34 @@ +[user] + name = Lukas + email = lukas.kopatz11@gmail.com +[alias] + pushfwl = push --force-with-lease + last = log -1 --stat + now = commit --amend --date="now" --no-edit + cp = cherry-pick + co = checkout + cl = clone + ci = commit + st = status -sb + br = branch + unstage = reset HEAD -- + dc = diff --cached + lg1 = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all + lg2 = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n'' %C(white)%s%C(reset) %C(dim white)- %an%C(reset)' --all + lg = !"git lg1" +[color] + ui = true + +[includeIf "gitdir/i:~/projects/github/**"] + path = .gitconfig-github +[includeIf "gitdir/i:~/projects/gitea/**"] + path = .gitconfig-gitea +[includeIf "gitdir/i:~/projects/fh/**"] + path = .gitconfig-gitlabfh +[core] + editor = kate +[gui] + recentrepo = D:/Stuff/work/evolit/TIS2020 + +[credential "http://server.home:3000"] + provider = generic diff --git a/.gitconfig-gitea b/.gitconfig-gitea new file mode 100644 index 0000000..74afcc6 --- /dev/null +++ b/.gitconfig-gitea @@ -0,0 +1,21 @@ + +[push] + default = upstream +[core] + repositoryformatversion = 0 + filemode = false + bare = false + logallrefupdates = true + symlinks = false + ignorecase = true +[mergetool] + keeptemporaries = false + keepbackups = false + prompt = false + trustexitcode = false +[user] + name = Kopatz + email = lukas.kopatz111@gmail.com + signingkey = 1702133BD8033AFE +[commit] + gpgsign = false \ No newline at end of file diff --git a/.gitconfig-github b/.gitconfig-github new file mode 100644 index 0000000..bebae03 --- /dev/null +++ b/.gitconfig-github @@ -0,0 +1,18 @@ + +[push] + default = upstream +[core] + repositoryformatversion = 0 + filemode = false + bare = false + logallrefupdates = true + symlinks = false + ignorecase = true +[mergetool] + keeptemporaries = false + keepbackups = false + prompt = false + trustexitcode = false +[user] + name = Kopatz + email = 7265381+Kropatz@users.noreply.github.com diff --git a/.gitconfig-gitlabfh b/.gitconfig-gitlabfh new file mode 100644 index 0000000..e601776 --- /dev/null +++ b/.gitconfig-gitlabfh @@ -0,0 +1,21 @@ + +[push] + default = upstream +[core] + repositoryformatversion = 0 + filemode = false + bare = false + logallrefupdates = true + symlinks = false + ignorecase = true +[mergetool] + keeptemporaries = false + keepbackups = false + prompt = false + trustexitcode = false +[user] + name = Kopatz + email = is221015@fhstp.ac.at + signingkey = C9FE26C362DB772E +[commit] + gpgsign = true \ No newline at end of file diff --git a/gnome.nix b/gnome.nix new file mode 100644 index 0000000..00ca6be --- /dev/null +++ b/gnome.nix @@ -0,0 +1,53 @@ +{ config, pkgs, ... }: + +{ + + imports = + [ + ./main.nix + ]; + + services.xserver = { + layout = "at"; + xkbVariant = ""; + enable = true; + displayManager.gdm.enable = true; + desktopManager.gnome.enable = true; + }; + + environment.gnome.excludePackages = (with pkgs; [ + gnome-photos + gnome-tour + ]) ++ (with pkgs.gnome; [ + cheese # webcam tool + gnome-music + gnome-terminal + gedit # text editor + epiphany # web browser + #geary # email reader + evince # document viewer + gnome-characters + totem # video player + tali # poker game + iagno # go game + hitori # sudoku game + atomix # puzzle game + ]); + + environment.systemPackages = with pkgs; [ + wmctrl + gnome.mutter + gnome.adwaita-icon-theme + gnomeExtensions.appindicator + gnome.gnome-settings-daemon + gnome.gnome-tweaks + gruvbox-gtk-theme + colloid-icon-theme + gnomeExtensions.just-perfection + gnomeExtensions.system-monitor + gnomeExtensions.dash2dock-lite + gnomeExtensions.dash-to-dock + gnomeExtensions.vitals + rofi + ]; +} diff --git a/hyperland.nix b/hyperland.nix new file mode 100644 index 0000000..ab3a4c8 --- /dev/null +++ b/hyperland.nix @@ -0,0 +1,60 @@ +{ config, pkgs, ... }: + +let + patchedWaybar = pkgs.waybar.overrideAttrs (oldAttrs: { + mesonFlags = oldAttrs.mesonFlags ++ [ "-Dexperimental=true" ]; + }); +in + +{ + imports = + [ # Include the results of the hardware scan. + ./main.nix + ]; + + services.xserver = { + layout = "at"; + xkbVariant = ""; + enable = true; + displayManager.sddm.enable = true; + }; + + programs.hyprland = { + enable = true; + nvidiaPatches = true; + xwayland.enable = true; + }; + + environment.sessionVariables = { + # If your cursor becomes invisible + #WLR_NO_HARDWARE_CURSORS = "1"; + # Hint electron apps to use wayland + NIXOS_OZONE_WL = "1"; + WLR_DRM_DEVICES = "/dev/dri/card0"; + }; + + hardware = { + # Opengl + opengl.enable = true; + + # Most wayland compositors need this + nvidia.modesetting.enable = true; + }; + + # XDG portal + xdg.portal.enable = true; + xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; + + # List packages installed in system profile. To search, run: + # $ nix search wget + environment.systemPackages = with pkgs; [ + # hyprland stuff + patchedWaybar + dunst + swww + kitty + rofi-wayland + libnotify + networkmanagerapplet + ]; +} diff --git a/main.nix b/main.nix new file mode 100644 index 0000000..06a297e --- /dev/null +++ b/main.nix @@ -0,0 +1,178 @@ +# Edit this configuration file to define what should be installed on +# your system. Help is available in the configuration.nix(5) man page +# and in the NixOS manual (accessible by running ‘nixos-help’). + +{ config, pkgs, ... }: + +let + keepassWithPlugins = pkgs.keepass.override { + plugins = [ + pkgs.keepass-keepassrpc + ]; + }; + +in + +{ + imports = + [ # Include the results of the hardware scan. + + ./hardware-configuration.nix + ]; + + # Bootloader. + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + networking.hostName = "nix-laptop"; # Define your hostname. + # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. + + # Configure network proxy if necessary + # networking.proxy.default = "http://user:password@proxy:port/"; + # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; + + # Enable networking + networking.networkmanager.enable = true; + + # Set your time zone. + time.timeZone = "Europe/Vienna"; + + # Select internationalisation properties. + i18n.defaultLocale = "en_US.UTF-8"; + + i18n.extraLocaleSettings = { + LC_ADDRESS = "de_AT.UTF-8"; + LC_IDENTIFICATION = "de_AT.UTF-8"; + LC_MEASUREMENT = "de_AT.UTF-8"; + LC_MONETARY = "de_AT.UTF-8"; + LC_NAME = "de_AT.UTF-8"; + LC_NUMERIC = "de_AT.UTF-8"; + LC_PAPER = "de_AT.UTF-8"; + LC_TELEPHONE = "de_AT.UTF-8"; + LC_TIME = "de_AT.UTF-8"; + }; + + # Enable CUPS to print documents. + services.printing.enable = true; + + # Enable sound with pipewire. + sound.enable = true; + hardware.pulseaudio.enable = false; + security.rtkit.enable = true; + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + # If you want to use JACK applications, uncomment this + #jack.enable = true; + + # use the example session manager (no others are packaged yet so this is enabled by default, + # no need to redefine it in your config for now) + #media-session.enable = true; + }; + + # Enable touchpad support (enabled default in most desktopManager). + services.xserver.libinput.enable = true; + + #users.mutableUsers=false; + # Define a user account. Don't forget to set a password with ‘passwd’. + users.users.kopatz = { + isNormalUser = true; + description = "kopatz"; + extraGroups = [ "networkmanager" "wheel" ]; + #password = "test"; + packages = with pkgs; [ + #firefox + # thunderbird + discord + librewolf + ]; + }; + + programs.steam = { + enable = true; + remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play + dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server + }; + + programs.kdeconnect.enable = true; + + fonts.fontDir.enable = true; + fonts.fonts = with pkgs; [ + nerdfonts + font-awesome + ]; + + networking.firewall = { + enable = true; + allowedTCPPortRanges = [ + { from = 1714; to = 1764; } # KDE Connect + ]; + allowedUDPPortRanges = [ + { from = 1714; to = 1764; } # KDE Connect + ]; + }; + + # Allow unfree packages + nixpkgs.config.allowUnfree = true; + nix.settings.experimental-features = [ "nix-command" "flakes" ]; + + # List packages installed in system profile. To search, run: + # $ nix search wget + environment.systemPackages = with pkgs; [ + # vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. + # wget + wget + nixos-option + kate + keepassWithPlugins + jetbrains.idea-ultimate + neovim + htop + busybox + git + #hyprland + #hyprpaper + #hyprpicker + #gtk3 + neofetch + #qt5.qtwayland + #qt6.qmake + #qt6.qtwayland + #waybar + #xdg-desktop-portal-hyprland + #xdg-desktop-portal-gtk + #xdg-utils + #xwayland + ]; + + + # Some programs need SUID wrappers, can be configured further or are + # started in user sessions. + # programs.mtr.enable = true; + # programs.gnupg.agent = { + # enable = true; + # enableSSHSupport = true; + # }; + + # List services that you want to enable: + + # Enable the OpenSSH daemon. + # services.openssh.enable = true; + + # Open ports in the firewall. + # networking.firewall.allowedTCPPorts = [ ... ]; + # networking.firewall.allowedUDPPorts = [ ... ]; + # Or disable the firewall altogether. + # networking.firewall.enable = false; + + # This value determines the NixOS release from which the default + # settings for stateful data, like file locations and database versions + # on your system were taken. It‘s perfectly fine and recommended to leave + # this value at the release version of the first install of this system. + # Before changing this value read the documentation for this option + # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). + system.stateVersion = "23.05"; # Did you read the comment? + +} diff --git a/plasma.nix b/plasma.nix new file mode 100644 index 0000000..21266eb --- /dev/null +++ b/plasma.nix @@ -0,0 +1,17 @@ +{ config, pkgs, ... }: + +{ + + imports = + [ + ./main.nix + ]; + + services.xserver = { + layout = "at"; + xkbVariant = ""; + enable = true; + displayManager.sddm.enable = true; + desktopManager.plasma5.enable = true; + }; +}